基于单片机的多点温度检测系统论文完整电路图源程序执行结果内容摘要:

入 0,不能改变;R0、R1:温度计分辨率设置位,其对应四种分辨率如下表所列,出厂时 R0、R1 置为缺省值:R0=1,R1=1(即12 位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。 配置寄存器与分辨率关系表 :R0 R1 温度计分辨率/bit 最大转换时间/us0 0 9 0 1 10 1 0 11 3751 1 12 750(2) 高速暂存存储器高速暂存存储器由 9 个字节组成,其分配如下图所示。 当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0 和第 1 个字节。 单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图所示。 对应的温度计算:当符号位 S=0 时,直接将二进制位转换为十进制;当 S=1 时,先将补码变为原码,再计算十进制值。 温度低位 温度高位 TH TL 配置 保留 保留 保留 8 位 CRCLSB DS18B20 存储器映像图 MSB温度值格式图 DS18B20 温度数据表:23 22 21 20 21 22 23 24MSB LSBS S S S S 26 25 24典型对应的温度值表:温度/℃ 二进制表示 十六进制表示+125 +++000000111 1101000000000001 1001000100000000 1010001000000000 0000100000000000 0000000011111111 1111100007D0H0191H00A2H0008H0000HFFF8H5511111111 0101111011111110 0110111111111100 10010000FF5EHFE6FHFC90HDS18B20 最大的特点是单总线数据传输方式,DS18B20 的数据 I/O 均由同一条线来完成。 硬件连接电路如下图:AT89C51DS18B201DS18B202DS18B203DS18B2020VCC=5V1—WIRE本系统为多点温度测试。 DS18B20 采用外部供电方式,理论上可以在一根数据总线上挂 256 个 DS18B20,但时间应用中发现,如果挂接 25 个以上的 DS18B20 仍旧有可能产生功耗问题。 另外单总线长度也不宜超过 80M,否则也会影响到数据的传输。 在这种情况下我们可以采用分组的方式,用单片机的多个 I/O 来驱动多路 DS18B20。 在实际应用中还可以使用一个 MOSFET 将 I/O 口线直接和电源相连,起到上拉的作用。 对 DS18B20 的设计,需要注意以下问题(1)对硬件结构简单的单线数字温度传感器DS18B20 进行操作,需要用较为复杂的程序完成。 编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。 尤其在使用DS18B20 的高测温分辨力时,对时序及电气特性参数要求更高。 (2)有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动DS18B20 序列号和自动排序,以减少调试和维护工作量。 (3)测温电缆线建议采用屏蔽4 芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。 DS18B20 在三线制应用时,应将其三线焊接牢固;在两线应用时,应将VCC与GND接在一起,焊接牢固。 若VCC脱开未接,传感器只送 ℃的温度值。 (4)实际应用时,要注意单线的驱动能力,不能挂接过多的DS18B20,同时还应注意最远接线距离。 另外还应根据实际情况选择其接线拓扑结构。 167。 串口通讯电路AT89C51 有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。 进行串行通讯时要满足一定的条件,比如电脑的串口是 RS232 电平的,而单片机的串口是 TTL 电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232 进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。 具体电路如下:C25C2+4R2O9 T2IN10T1O 14R1IN13C13C1+1GND 15VS 6R2IN 8T2O 7T1IN11 R1O12VS+ 2VCC 16U18MAX232VCCC321u/25VC331u/25VC341u/25VC351u/25VC361u/25V162738495J15DB9RXDTXD我们采用了三线制连接串口,也就是说和电脑的 9 针串口只连接其中的 3 根线:第5 脚的 GND、第 2 脚的 RXD、第 3 脚的 TXD。 这是最简单的连接方法,但是对本设计来说已经足够使用了,电路如上图所示。 通信线采用交叉接法,即两者信号线对应成为 R—T,T—R。 具体连接电路如下:162738495J1DB9 AT89C51162738495J2DB9 PCRXD RXDTXD TXD167。 整体电路 见附件二(电路原理图)第四章软件设计167。 概述 整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。 从软件的功能不同可分为两大类:一是监控软件(主程序) ,它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。 二是执行软件(子程序) ,它是用来完成各种实质性的功能如测量、计算、显示、通讯等。 每一个执行软件也就是一个小的功能执行模块。 这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。 各执行模块规划好后,就可以规划监控程序了。 首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。 167。 主程序方案主程序调用了 4 个子程序,分别是数码管显示程序、键盘扫描以及按键处理程序、温度测试程序、中断控制程序、单片机与 PC 机串口通讯程序。 键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及相关处理。 温度测试程序:对温度芯片送过来的数据进行处理,进行判断和显示。 数码管显示程序:向数码的显示送数,控制系统的显示部分。 中断控制程序:实现循环显示功能。 串口通讯程序:实现 PC 机与单片机通讯,将温度数据传送给 PC 机。 将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和 I/O 冲突即可。 程序应该尽可能多的使用调用指令代替跳转指令。 因为跳转指令使得程序难以看懂各程序段之间的结构关系。 而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便。 将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块。 程 序 结 构LED显 示数 码 管显 示 程序 键 盘扫 描程 序 中 断控 制程 序 温 度 芯 片传 数 据 程 序继 电 器 控 制 程 序与 当 前 温 度 相 比 较 程 序串 口 通讯 程 序程 序 结 构显 示数 码 管显 示 程序 键 盘扫 描程 序 中 断控 制程 序 温 度 芯 片传 数 据 程 序继 电 器 控 制 程 序与 当 前 温 度 相 比 较 程 序串 口 通讯 程 序开 始系 统 初 始 化系 统 硬 件 测 试 程 序串 口 通 讯 子 程 序温 度 显 示 子 程 序拨 码 开 关 扫 描 子 程 序温 度 测 试 及 处 理。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。