- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于单片机的数字温度表设计课件
基于单片机的数字温度表设计 实验目的: 通过制作数字温度表,了解单片机开发流程,掌握多位数码管动态显示原理,并学会数字温度传感器DS18B20的使用及编程。 实验要求: 用DS18B20测室内温度,并在数码管上显示。其中,实验板上前2位分别显示温度值的十位和个位(即只取温度值的整数部分),第三位显示字母C 80C51内部有一个用于构成震荡器的高增益反相放大器. 单片机引脚的XTAL1和XTAL2分别是此放大器的输入和输出端.与作为反馈元件的晶体或陶瓷谐振器一起构成了一个自激震荡器。 二 复位电路 单片机复位电路包括片内、片外两部分。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的。C51单片机通常采用上电自动(加电)复位和按键手动复位两种方式。 三 EA控制线连接电路 1.选取片内程序存储器时,该引脚接VCC 2.选取片外程序存储器时,该引脚接GND 初学者学习电路时,最小系统往往忽略此控制线而出错!!! 2.LED显示器显示原理 1)段选 位选 2) LED显示器动态显示方式 温度传感器DS18B20 DS18B20是DALLAS公司生产的数字式温度传感器。提供9~12位的数字值读数方式,可以分别在93.75ms和750ms内完成9和12位的数字量读取。 其读出和写入只要一根口线,总线本身向18B20供电,无需外接电源,电压范围为3.0~5.5V。测温范围可以达到-55~+125oC。 特点:具有负压特性,即当电源极性接反时,虽然不能正常工作,但不会因为发热而烧毁器件。 实物图及引脚图 内部结构(简单了解) 64b光刻ROM(内容在出厂时已经被光刻好): 最高8位:循环冗余校验码(CRC),用来判断ROM中的数据是否正确。 中间48位:该DS18B20自身的序列号,每一个都是不同的。 最低8位:工厂代码,也叫产品类型标号。 高速暂存RAM还有9个字节: 3个保留字节未用,全部置1。 配置表示配置寄存器。 TL为温度下限。 TH为温度上限。 温度高位为测出的温度的高8位。 温度低位为测出的温度的低8位。 高速暂存RAM:其中第5个字节为配置寄存器,用于确定温度值的数字转换分辨率。 TM:测试模式位,用于确定是在工作模式下还是测试模式下,出厂时被置0,用户不要去修改它。 R1、R0:分辨率设置位。 当DS18B20接收到温度转换命令后,开始启动转换,转换完成后的温度值以十六进制带符号扩展的二进制补码形式存储。读取时,低位在前,高位在后,数据以0.0625oC/LSB的形式表示。 温度转换计算举例 如果测出的温度值为07D0H,则表示的实际温度值为多少? 解:07D0H=(0000011111010000)B=2000 2000×0.0625=125oC 说明:读出的二进制数转换成十进制数再乘以0.0625即为实际温度(注意,这个转换过程是DS18B20自动完成的,不需要用户进行计算,DQ读出来的温度值已经是转换完成的结果的二进制表示)。 完成温度转换后,DS18B20就自动把测得的温度值与TH、TL进行比较,如果温度值大于TH或者小于TL,则DS18B20内的警告标志位被置1。 DS18B20的操作控制(重要) DS18B20是单线通信的,所以各功能需要分时完成,而且要遵照严格的时序。 DS18B20的操作步骤: 初始化DS18B20。 发送ROM功能指令。 发送RAM操作指令。 根据需要处理数据。 第一步:初始化DS18B20 首先将DQ下拉480~960微秒,然后将DQ拉高。 等待16~60微秒,让DS18B20接收复位信号。 等待60~240微秒,让DS18B20向系统发出存在低脉冲。 如果CPU收到该存在低脉冲信号,则表示复位成功。 注意:上述2、3步的信号是由DS18B20和系统之间自动完成的。 第二步:发送ROM功能指令 DS18B20共有5条ROM指令。 第三步:发送RAM操作指令 DS18B20有6条RAM操作指令。 读一个字节(一位一位读) 将DQ从1拉低至0,再拉高为1,从而产生读信号。 最先读入的数据是该字节中的最低位,最后读入的数据是该字节中的最高位。要读入一个字节,应该重复8次第1步操作,并分别对8个数据进行处理。 写一个字节(一位一位写) 将DQ从1拉低至0,产生写起始信号。 在15微秒内将所需写的数送到数据线上。 等待15~60微秒,使DS18B20将数据采集进去。 处理数据。 在开始写另一个数之前,DQ必须有1微秒以上的高电平恢复期。 注意:最先写入的是最低位,最后写入的是最高位 实验板上的电路连接 流程图 DS18B20控制实验 提示:如果延时函数
文档评论(0)