- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2、读取温度值 读取RAM内的温度数据 ds18b20_reset(); ds18b20_write_byte(SKIP_ROM); ds18b20_write_byte(READ_SCRATCHPAD); 五、实时温度采集(读温度)程序设计 初始设置,没有,按缺省 Ds18b20_read_byte() 2次 Ds18b20_write_byte(0xcc) Ds18b20_reset() Ds18b20_write_byte(0x44) Ds18b20_reset() Ds18b20_write_byte(0xcc) Ds18b20_write_byte(0xbe) Delay_nms(800) Ds18b20_reset() Write_byte(0xcc) Ds18b20初始化 从ds18b20读温度 定义int型变量wenduzhi放温度值的高、低8位共16位 2、在LCD上进行显示 void main() { unsigned char xdata str[10]; ds18b20_init(); LCM_Init(); while(1) { ds18b20_read_temp(); sprintf(str,%d.%d,(int)disp_eger,(int)disp_temp.decimal); Write_Command_LCM(0x01); //clear Display_List_Char(0,0,Temperature:); Display_List_Char(1,3,str); } } 任务6 在LCD上显示 画面1:开机画面 画面2: temperature is: × × .× ℃ 画面3: TH is: × × ℃ TL is:× × ℃ 画面2、3通过按键切换 TH、TL分别是程序设定的温度上、下限值,如果低于下限或高于上限,发出扬声器1s周期报警 拓展训练1: 在任务6的基础上,用户可以通过按键调整TH、TL的值 拓展训练2: 在拓展训练2基础上,增加画面4显示时间,并且可以通过按键调节时间 画面2、3、4通过按键切换 * 对DS18B20进行初始化复位操作 DS18B20在检测到t1时刻的上升沿之后,等待60μs,即t1~t2时长。 并在随后的240微秒时间内对总线进行检测,如果有低电平出现说明总线上有器件已做出应答。若无低电平出现一直都是高电平说明总线上无器件应答。在图3-2中为虚线所示。 while(DQ) ; //接收到存在脉冲信号,跳出循环 delay_nus(200); 复位过程:要求主机将数据线下拉480~960us,然后释放,ds18b20在总线释放后16~60us内发送一个存在脉冲,主机收到此信号表示复位成功. 初始化程序 void ds18b20_reset() { DQ = 1; DQ = 0;//拉低总线 delay_nus(600); //精确延时在480-960us DQ = 1;//总线释放 while(DQ); //等待存在脉冲,若为高电平,则一直等待 delay_nus(200); } 为了完成一次温度转换功能,我们接着需要分别对ROM、RAM 进行读取操作。 以命令44H为例:执行一次温度转换指令,要向RAM内写入44H=0100 0100 ,命令芯片开始工作。 单线型芯片通信属于串行通信方式,也即是说,在一根数据线上单片机根据时序向芯片写入0100 0100 这一组二进制数,实现转换功能。 既然我们的指令是转换成二进制代码进行读写的,那么我只需知道如何向芯片写入“0”和“1” 即可实现所有命令功能。 2、写时序图 (2)写时间隙 图3-4 a为写“0”时序 b为写“1”时序 a b 时序图分析 从图3-4中,可以看出写时序开始时DQ都为高电平 ,t0时刻为高电平,此时主机认为开始写入数据。 从t0到t1时刻,共计60μs,时间分为2段。 第一个15μs之内应将所需写的位送到总线上。 此时,写入数据“0” DQ = 1; DQ = 0; DSl8B20在t0后15-60us间对总线采样,若低电平写入的位是0,见图3-4 a;若高电平写入的位是1,见图3-3 b 连续写2位数据,间隙应大于1us delay_nus(60); DQ = 1; _nop_(); _nop_(); 写0 void ds18b20_write_bit0() {
您可能关注的文档
最近下载
- 国家安全教育大学生读本高教2024版课件-第九章筑牢其他各领域国家安全屏障-.pptx VIP
- TCSGPC-水库库岸边坡变形监测技术规程.pdf VIP
- 雅思基础入学测试题(参考).pdf VIP
- 遗体防腐整容之遗体消毒——化学法消毒遗体.pptx VIP
- 中国古代文学史魏晋南北朝文学教学优质课件.pptx VIP
- 2025年北京银行招聘考试(行政能力测验)历年参考题库含答案详解(5卷).docx VIP
- 昭和ロマンス(昭和罗曼史,岸部真明)吉他弹奏图曲谱.pdf VIP
- 【2025秋】人教版三年级数学上册教学计划(及进度表).docx
- 2025年杭州银行招聘考试(行政能力测验)历年参考题库含答案详解(5卷).docx VIP
- 第十一章 遗体防腐常用器械.ppt VIP
文档评论(0)