综合实训1 实时温度测量2.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
综合实训1 实时温度测量2

综合实训 基于AT89C51单片机的 实时温度测量系统的设计;实时温度测量系统的设计;实时温度测量系统的设计;(一)、数字温度传感器DS18B20 DS18B20数字温度传感器是美国Dallas半导体公司生产的总线式智能数字温度传感器。;(一)、数字温度传感器DS18B20;四、硬件设计;(三)、温度传感器DS18B20通信协议和时序图 DS18B20是可编程器件,它是利用一根I/O口线读写数据,因此,对读写的数据位有着严格的时序要求。 DS18B20采用一根数据线实现数据双向传输的1-Wire单总线协议方式,该协议有三种通信时序,即初始化时序、读时序和写时序。;1、初始化时序 DS18B20在每一次读写操作之前,都要先将DS18B20初始化复位,复位成功后才能对DS18B20进行预定的操作。 复位要求:主CPU将数据线下拉480~960微秒,然后释放,DS18B20收到信号后等待15~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 ; 复位要求:主CPU将数据线下拉480~960微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 ;2、执行某一指令(单片机向测量元件发信号,写入)---写时序 (1)将指令的约定代码输送到累加器A; (2)将A中的代码按位(低位到高位)写到DS18B20中。 在写数据时,写0时单总线至少被拉低60μs,写1时, 15μs内就得释放总线。;2、写时序: 在写数据时,写0时单总线至少被拉低60μs,写1时, 15μs内就得释放总线。;3、单片机向测量元件发读温度命令(将温度值读入单片机)--读时序 (1)将读温度指令的约定代码输送到累加器A; (2)将A中的代码按位(低位到高位)写到DS18B20中。 (3)将温度数据读到单片机的某二个单元(低位29H,高位28H)中。 ;3、读时序要求 (1)发出启动读时序脉冲,即在DQ总线保持高电平1μs以上的情况下,将DQ总线设置为低电平,并保持1μs以上; (2)将其设置为高电平。启动后等待15μs,以便DS18B20能可靠地将测试结果送至DQ总线上; (3)单片机读取DQ总线上的结果。单片机要在发出启动脉冲后的60μs时间之内,完成取数操作。读完每位数据后至少要保持1μs以上的恢复时间。;3、读时序:;4.温度测量值转换 从传感器中获得到的16位(高8位字节存储在29H和低8位字节存储在28H)。但表示温度值是高字节的低四位和低字节的高三位,通过移位在29H单元中保留所需的7位,前面添0后组成8位温度值,即得到实际温度值。;18B20复位;五、软件设计 ;单片机内存分配申明! ORG 0000H TEMPER_L EQU 29H ;用于保存读出温度的低8位 TEMPER_H EQU 28H ;用于保存读出温度的高8位 FLAG1 EQU 38H ;是否检测到DS18B20标志位 A_BIT EQU 20H ;数码管个位数存放内存位置 B_BIT EQU 21H ;数码管十位数存放内存位置 TJ EQU 70H ;闪灯标志位 DQ EQU P2.7 ;DQ为DS18B20数据位;五、软件设计 MAIN1:LCALL GET_TEMPER ;调用读温度子程序;五、软件设计 ;调用温度值读取子程序 TSS2: MOV A,#0CCH ;DS18B20已经被检测到! 跳过ROM匹配 LCALL WRITE_1820 ;命令字写入 MOV A,#44H ;发出温度转换命令 LCALL WRITE_1820 LCALL DISPLAY ;这里通过调用显示子程序实现延时一段时间, ;等待AD转换结束,2位的话750微秒 LCALL INIT_1820 ;准备读温度前先复位 MOV A,#0CCH ;跳过ROM匹配 LCALL WRITE_1820 MOV A,#0BEH ;发出读温度命令 LCALL WRITE_1820 LCALL READ_18200 ;将读出的温度数据保存到35H/36H RET;五、软件设计 MAIN1:LCALL GET_TEMPER ;调用读温度子程序 温度测量值转换 ;置闪光标志 MOV A,TJ ;TJ为闪光标注位 CJNE A,#0,MAIN2; TJ不为0,去判定是否为1 CLR P1.7 ; TJ为0表示正在读数据,工作

文档评论(0)

djdjix + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档