基于单片机的温度控制系统的设计_毕业论文.doc

上传人:哈尼dd 文档编号:3922578 上传时间:2019-10-10 格式:DOC 页数:34 大小:425.50KB
返回 下载 相关 举报
基于单片机的温度控制系统的设计_毕业论文.doc_第1页
第1页 / 共34页
基于单片机的温度控制系统的设计_毕业论文.doc_第2页
第2页 / 共34页
基于单片机的温度控制系统的设计_毕业论文.doc_第3页
第3页 / 共34页
基于单片机的温度控制系统的设计_毕业论文.doc_第4页
第4页 / 共34页
基于单片机的温度控制系统的设计_毕业论文.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《基于单片机的温度控制系统的设计_毕业论文.doc》由会员分享,可在线阅读,更多相关《基于单片机的温度控制系统的设计_毕业论文.doc(34页珍藏版)》请在三一文库上搜索。

1、 编号 淮安信息淮安信息职业职业技技术术学院学院 毕毕业业论论文文 题 目基于单片机的温度控制系统的设计基于单片机的温度控制系统的设计 学生姓名 学 号 系 部电气工程 专 业电气自动化 班 级 指导教师 顾问教师 摘要 I 摘摘 要要 温度是一种最基本的环境参数,人们生活与环境温度息息相关,在工业生 产过程中需要实时测量温度,在工业生产中也离不开温度的测量,因此研究温 度的测量方法和控制具有重要的意义。 本论文介绍了一种以单片机为主要控制器件,以 DS18B20 为温度传感器的 新型数字温度计。主要包括硬件电路的设计和系统程序的设计。硬件电路主要 包括主控制器,测温控制电路和显示电路等,主控

2、制器采用单片机 AT89C52, 温度传感器采用美国 DALLAS 半导体公司生产的 DS18B20,显示电路采用 8 位 共阴极 LED 数码管,ULN2803A 为驱动的动态扫描直读显示。测温控制电路由 温度传感器和预置温度值比较报警电路组成,当实际测量温度值大于预置温度 值时,发出报警信号,即发光二极管亮。系统程序主要包括主程序,测温子程 序和显示子程序等。DS18B20 新型单总线数字温度传感器是 DALLAS 公司生产 的单线数字温度传感器, 集温度测量和 A /D 转换于一体 ,直接输出数字量,具有 接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。 由于采用了改进型智能温度传感

3、器 DS18B20 作为检测元件,与传统的温度 计相比,本数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。 DS18B20 温度计还可以在高温报警、远距离多点测温控制等方面进行应用开发, 具有很好的发展前景。此外,还介绍了系统的调试和性能分析。 关键词:显示电路,单片机,AT89C52,温度传感器,DS18B20 ,单总线 目录 II 目目 录录 摘摘 要要I 第一章第一章 绪论绪论.1 第二章设计任务及方案分析第二章设计任务及方案分析.2 2.1 设计任务及要求设计任务及要求.2 2.2 设计总体方案及方案论证设计总体方案及方案论证2 2.3 温度测量的方案与分析温度测量的方案与分

4、析2 第三章芯片功能简介第三章芯片功能简介.4 3.1 AT89C52 芯片简介芯片简介.4 3.2 DS18B20 的功能简介的功能简介 .6 第四章系统硬件电路的设计第四章系统硬件电路的设计.12 4.1 主控制电路和测温控制电路原理图主控制电路和测温控制电路原理图12 4.2 驱动电路模块原理图驱动电路模块原理图12 4.3 显示模块原理图显示模块原理图13 第五章软件编程调试及性能分析第五章软件编程调试及性能分析.15 5.1 主程序流程图主程序流程图15 5.2 主程序主程序15 5.3 温度子程序温度子程序17 5.4 显示子程序显示子程序.22 5.5 调试性能分析和注意事项调试

5、性能分析和注意事项.23 第六章第六章 总结与展望总结与展望.25 致致 谢谢.26 参考文献参考文献.27 附录附录.29 第一章 绪论 1 第一章第一章 绪论绪论 日常生活及工农业生产中经常要用到温度的检测及控制,在冶金、食品加 工、化工等工业生产过程中,广泛使用的各种加热炉、热处理炉、反应炉等, 都要求对温度进行严格控制。在日常生活中,电烤箱、微波炉、电热水器、烘 干箱等电器也需要进行温度检测与控制。传统的测温元件有热电偶和热电阻。 而热电偶和热电阻测出的一般是电压,再转换成对应的温度,需要比较多的外 部硬件支持,硬件电路复杂,软件调试复杂,制作成本高。而采用单片机对温 度进行控制,不仅

6、具有控制方便,简单和灵活等优点,而且可以大幅度提高温 度控制的技术指标。 测量温度的关键是温度传感器,温度传感器正从模拟式向数字式、从集成 化向智能化、网络化的方向发展。在测温电路中,可以使用热敏电阻之类的器 件利用其感温效应,将随被测温度变化的电压或电流采集过来,先进行 A/D 转 换,然后用单片机进行数据的处理,再在显示电路上,将被测温度显示出来。 这种设计需要用到 A/D 转换电路,因此感温电路的设计比较复杂。 进而想到采用智能温度传感器来设计数字温度计。本数字温度计的设计采 用美国 DALLAS 半导体公司继 DS1820 之后推出的一种改进型智能温度传感器 DS18B20 作为检测元

7、件,其温度值可以直接被读出来,通过核心器件单片机 AT89C52 控制温度的读写和显示,用 LED 数码管显示。测温范围为 55125,最大分辨率可达 0.0625。而且采用 3 线制与单片机相连, 减少了外部的硬件电路,具有低成本和易使用的特点。 按照系统设计功能的要求,确定系统有 5 个模块组成:主控制器、温度传 感器 DS18B20、报警电路、按键预置温度值电路及显示电路。控制器使用 AT89C52,温度传感器使用 DS18B20,用 8 位共阴极 LED 数码管以动态扫描法 实现温度显示。系统程序主要包括主程序、温度控制子程序及显示子程序等等。 综上所述,本设计以智能集成温度传感器 D

8、S18B20 为例,介绍基于 DS18B20 传感器的数字温度计的设计,该设计适用于人们的日常生活及工农业 生产中用于温度的检测及控制。 淮安信息职业技术学院毕业设计论文 2 第二章第二章. .设计任务及方案分析设计任务及方案分析 2.1 设计任务及要求设计任务及要求 设计一个以单片机为核心的温度测量系统,可实现的功能为: (1)测量温度值精度为1。 (2)系统允许的误差范围为 1以内。 (3)系统可由用户预设温度值,测温范围为55125。 (4)超出预置值时系统会自动报警,即发光二极管亮。 (5)系统具有数码显示功能,能实时显示设定温度值和测得的实际温度值。 2.2 设计总体方案及方案论证设

9、计总体方案及方案论证 在日常生活及工农业生产中经常要用到温度的检测及控制,传统的测温元 件有热电偶和热点阻。而热电偶和热电阻测出的一般都是电压,再转换成对应 的温度,需要比较多的外部硬件支持,硬件电路复杂,软件调试复杂,制作成 本高。 本数字温度计设计采用美国 DALLAS 半导体公司继 DS1820 之后推出的一 种改进智能温度传感器 DS18B20 作为检测元件,测温范围为55125, 最大分辨率可达 0.0625。DS18B20 可以直接读出被测量的温度值,而采用 3 线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。 按照系统设计功能的要求,确定系统由 5 个模块组成:

10、主控制器 AT89C52,温度传感器 DS18B20,报警电路,按键电路及驱动显示电路。数字 温度计总体电路框图如图 1-1 所示。 2.3 温度测量的方案与分析温度测量的方案与分析 1芯片选择 本设计的测温系统采用芯片 DS18B20, DS18B20 是 DALLAS 公司的最 新单线数字温度传感器,它的体积更小、适用电压更宽、更经济,DS18B20 是 世界上第一片支持“一线总线”接口的温度传感器,具有一线总线独特而且经济的 特点。采用智能温度传感器 DS18B20 作为检测元件,测温范围为 55125,最大分辨率可达 0.0625。DS18B20 可以直接读出被测量的 温度值,而且采用

11、 3 线制与单片机相连,减少了外部的硬件电路,具有低成本 和易使用的特点。 2实现方法简介: DS18B20 采用外接电源方式工作,一线测温的一线与 AT89C52 的 P3.7 连 接并加上上拉电阻使其工作,测出的数据存放在寄存器 10H-12H 中,将数据经 过 BCD 码转换后送 LED 显示。具体实现步骤见软件设计章节。 第二章 设计任务与方案分析 3 图 1-1 总体电路框图 3测温流程图: 图 1-2 测温流程图 主控制器 AT89C52 驱动显示电路按键电路 报警电路 DS18B20 初始化跳过 ROM 匹 配 数码管显示 温度变换 读暂存器 转换成显示码 延时 1S 跳过 RO

12、M 匹 配 淮安信息职业技术学院毕业设计论文 4 第三章第三章. .芯片功能简介芯片功能简介 3.1 AT89C52 芯片简介芯片简介 AT89C52 是美国 ATMEL 公司生产的低电平,高性能 CMOS 8 位单片机, 片内含 8k bytes 的可反复擦写的只读程序存储器(PEROM)和 256 bytes 的随机存 取数据存储器(RAM ),器件采用 ATMEL 公司的高密度、非易失性存储技术生产, 与标准 MCS-51 指令系统及 8052 产品引脚兼容,片内置通用 8 位中央处理器 (CPU)和 Flash 存储单元,32 个可编程 I/O 口线, 3 个 16 位定时/计数器,

13、低功耗 空闲和掉电模式。功能强大的 AT89C52 单片机适合于许多较为复杂控制应用场 合。 引脚功能说明如下: (1)VCC:电源电压 (2)GND:地 (3) P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口,也即地址/数据总线 复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路, 对端口 P0 写“1”时可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和 数据总线复位,在访问期间激活内部上拉电阻。 (4)P1 口:P1 是一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级 可驱动(吸收或输出电

14、流)4 个 TTE 逻辑门电路。对端口写“1” ,通过内部的上拉 电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上 拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。 与 AT89C51 不同之处是,P1.0 和 P1.1 还可分别作为定时/计数器 2 的外部 计数输入(P 1.0/T2)和输入(P 1.1/T2EX ),参见表 2-1。 Flash 编程和程序校验期间,P1 接收低 8 位地址。 表 2-1 P1.0 和 P1.1 的第二功能 引 脚 号 功能特性 P1.0T2(定时/计数器 2 外部计数脉冲输入) ,时钟输出 P1.1T2EX(定时/计数 2 捕

15、获/重装载触发和方向控制) (5)P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲 级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口 P2 写“1” ,通过内部 的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部 存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(ILL)。 在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX DPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储 器(如执行 MOVX RI 指令)时,P2 口输出 P2 锁存器的内容。 第三章 芯片功能简介

16、5 (6)P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓 冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们 被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉电 阻输出电流(ILL)。 P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能,如表 2-2 所示。 (7)RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高 电平将使单片机复位。 表 2-2 P3 口的第二功能 端口引脚第二功能 P3.0RXD(串行输入口) P3.1TXD(串行输出口) P3.2 (外中断

17、0)INT0 P3.3 (外中断 1)INT1 P3.4T0(定时/计数 0) P3.5T1(定时/计数 1) P3.6 (外部数据存储器写选通)WR P3.7 (外部数据存储器读选通)RD (8)/VPP:外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为EA 0000H-FFFFH ) 。端必须保持低电平(接地)。需注意的是:如果加密位 LB1EA 被编程,复位时内部会锁存端状态。EA 如端为高电平(接 VCC 端),CPU 则执行内部程序存储器中的指令。EA Flash 存储器编程时,该引脚加上+12V 的编程允许电源 VPP,当然这必须 是该器件是使用 12V 编程电压 VCC

18、。 (9)XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 (10)XTAL2:振荡器反相放大器的输出端。 (11)数据存储器: AT89C52 有 256 个字节的内部 RAM,80H-FFH 高 128 个字节与特殊功能寄 存器(SFR)地址是重叠的,也就是高 128。 字节的 RAM 和特殊功能寄存器的地址是相同的,但在物理上它们是分开 的。 当一条指令访问 7FH 以上的内部地址单元时,指令中使用的寻址方式是不 同的,也即寻址方式决定是访问高 128 字节。 RAM 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功 能寄存器。 (12)中断: 淮安信息职业技术学院毕

19、业设计论文 6 AT89C52 共有 6 个中断向量:两个外中断(INT0 和 INT1) ,3 个定时器中断 (定时器 0, 1, 2)和串行口中断。 (13)时钟振荡器: AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振 荡器,振荡电路参见图 2-1(a)图所示。 外接石英晶体(或陶瓷谐振器)及电容 C1、C2 接在放大器的反馈回路中 构成并联振荡电路,对外接电容 C1、C2 虽然没有十分严格的要求,但电容容量 的大小会轻微影响振荡频率的高低、振

20、荡器工作的稳定性、起振的难易程度及 温度稳定性,如果使用石英晶体,我们推荐电容使用 30pF 士 10pF,而如果使用 陶瓷谐振器,建议选择 40pF 士 l0pF。 用户也可以采用外部时钟。采用外部时钟的电路如图 2-1(b)图所示。这 种情况下,外部时钟脉冲接到 XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。 (a)内部振荡电路 (b)外部振荡电路 图 2-1 振荡电路 由于外部时钟信号是通过一个 2 分频触发器后作为内部时钟信号的,所以 对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电 平持续时间应符合产品技术条件的要求。 3.2 DS18B20 的功

21、能简介的功能简介 1芯片简介 (1) 适应电压范围更宽,电压范围:3.0 V5.5V,在寄生电源方式下可由数 据线供电。 第三章 芯片功能简介 7 (2) 独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即 可实现微处理器与 DS18B20 的双向通讯。 (3) DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成 在形如一只三极管的集成电路内。 (4) 测温范围55125,在-10+85时精度为0.5。 (5) 可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、 0.125和 0.0625,可实现高精度测温。 (6) 在 9 位分辨

22、率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最 多在 750ms 内把温度值转换为数字,速度更快。 (7) 测量结果直接输出数字温度信号,以“一线总线”串行传送给 CPU,同 时可传送 CRC 校验码,具有极强的抗干扰纠错能力。 (8) 负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 . 2DS18B20外形和内部结构 DS18B20内部结构如图2-2所示,主要由4部分组成:64位ROM、温度传感 器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的外形及管脚排 列如图2-3和表2-3所示。 I/O C 图2- 64 位 ROM 和单线 接

23、口 高速缓存 存储器 存储器和控制器 8 位 CRC 生成器 温度传感器 低温触发器 TL 高温触发器 TH 配置寄存器 电 源 检 测 淮安信息职业技术学院毕业设计论文 8 图2-2 DS18B20的内部结构 表2-3 DS18B20引脚定义: 序号名称引脚功能描述 1GND地信号 2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生 电源下,也可以向器件提供电源。 3VDD可选择的 VDD 引脚。当工作于寄生电源时,此引脚必须接 地。 (1) 64 位 ROM ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地 址序列码,每个DS18B20的64位序列号均不

24、相同。64位ROM的循环冗余校验码 (CRC=X8X5X41)。ROM的作用是使每一个DS18B20都各不相同,这 样就可以实现一根总线上挂接多个DS18B20的目的。 DS18B20中的温度传感器完成对温度的测量,用16位符号扩展的二进制补码读 数形式提供,以0.0625/LSB形式表达,其中S为符号位。DS18B20温度值格式 表2-4如下所示。 2 这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二 进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的 数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需 要取反

25、加1再乘于0.0625即可得到实际温度。例如25.0625的数字输出为 0191H,25.0625的数字输出为FF6FH。 第三章 芯片功能简介 9 表2-4 DS18B20温度值格式表 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LS Byte 2 3 2 2 212 0 2 1 2 2 2 3 2 4 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MS ByteSSSSS 2 6 2 5 2 4 (2)高低温报警触发器TH和TL DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失 性

26、的可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存 器。 (3)配置寄存器 该字节各位的意义如下表 2-5 所示。 表2-5:配置寄存器结构 TMR1R011111 低五位一直都是“1”,TM 是测试模式位,用于设置 DS18B20 在工作模式 还是在测试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动。R1 和 R0 用来设置分辨率,如下表 2-6 所示(DS18B20 出厂时被设置为 12 位)。 (4)高速暂存器是一个9字节的存储器。开始两个字节包含被测温度的数字量 信息;第3、4、5字节分别是TH、TL、配置寄存器的临时拷贝,每一次上电复

27、位时被刷新;第6、7、8字节未用,表现为全逻辑1;第9字节读出的是前面所有 8个字节的CRC码,可用来保证通信正确。高速暂存器RAM结构图如下表2-7所 示。 表2-6 温度分辨率设置表 R1R0分辨率温度最大转换时间 009 位93.75ms 0110 位187.5ms 1011 位375ms 1112 位750ms 3. DS18B20的工作时序 DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指 令数据传输。其工作时序包括初始化时序、写时序和读时序,如图4-4 3 (a)(b)(c)所示。 表2-7 DS18B20暂存寄存器分布 寄存器内容 字节地址 温度值低位 (LS

28、 Byte)0 温度值高位 (MS Byte)1 高温限值(TH)2 淮安信息职业技术学院毕业设计论文 10 低温限值(TL)3 配置寄存器4 保留5 保留6 保留7 CRC 校验值8 DS18B20等待 DS18B20Tx产生 15us16us 脉冲60-240 主机复位脉冲 VCC 480us1us DS18B20 采样 15us MIN TYP MAX MIN TYP MAX 15us 30us 15us 15us 30us 图2-4(b)写时序 VCC 主机读“0”时隙 主机读“1”时隙 1-Wire Bus GND 主机采样 1us 15us 15us 30us 主机采样 15us

29、第三章 芯片功能简介 11 图2-4(c)读时序 4. DS18B20与单片机的典型接口设计 图 2-5 以 MCS51 系列单片机为例,画出了 DS18B20 与微处理器的典型连 接。图 2-5(a)中 DS18B20 采用寄生电源方式,其 VDD 和 GND 端均接地, 4 图 2-5(b)中 DS18B20 采用外接电源方式,其 VDD 端用 3V5.5V 电源供电。 (a) 寄生电源工作方式 (b) 外接电源工作方式 图2-5 电源工作方式图 5DS18B20的各个ROM命令 (1) Read ROM 33H 这个命令允许总线控制器读到DS18B20的8位系列编码,惟一的序列号的8位

30、CRC码。只有在总线上存在单只DS18B20的时候才能用这个命令。如果总线上 有不止一个从机,当所有从机试图同时传送信号时就会发生数据冲突(漏极开 路连在一起形成“与”的效果)。 (2)Match ROM 55H 这是个匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定 位一只特定的DS18B20。只有和64位ROM序列完全匹配的DS18B20才能响应随 后的存储器操作。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这条 命令在总线上有单个或多个器件时都可以使用。 (3) Skip ROM 0CCH 这个命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令, 在单

31、点总线情况下,可以节省时间。如果总线上不止一个从机,在命令之后紧 跟着发一条读命令,由于多个从机同时传信号。总线上发生数据冲突(漏极开 路连在一起形成“与”的效果)。 (4) Search ROM 0F0H 当一个系统初次启动时,总线控制器并不知道单线总线上有多少个器件或 它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所 有从机的64位编码。 (5) Alarm Search 0ECH 这条命令的流程和Search ROM相同。然而,只有在最近一次测温后遇到符 合报警条件的情况,DS18B20才会响应这条命令。报警条件定义为温度高于TH 或低于TL。只要DS18B20

32、不掉电,报警状态将一直保持,直到再一次测得的温 淮安信息职业技术学院毕业设计论文 12 度值达不到报警条件。 (6) Write Scratchpad4EH 这个命令向DS18B20的暂存器TH和TL中写入数据。可以在任何时刻发出复 位命令来中止写入。 (7) Read Scratchpad0BEH 这个命令读取暂存器的内容。读取将从第1字节开始,一直进行下去,直到 第9(CRC)字节读完。如果不想读完所有字节,控制器可以在任何时刻发出复 位命令来中止读取。 (8) Copy Scratchpad48H 这个命令把暂存器的内容拷贝到DS18B20的E ROM存储器里,即把温度报 2 警触发器字

33、节存入非易失性存储器里。如果控制器在这条命令之后跟着发出读 时间隙,而DS18B20又忙于把暂存器拷贝到E存储器,DS18B20就会输出一个 0,如果拷贝结束的话,DS18B20输出1。如果使用寄生电源,总线控制器必须 在这条命令后立即启动强上拉,并最少保持10ms。 (9) Convert T44H 这个命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后 DS18B20保持等待状态。如果控制器在这条命令之后跟着发出时间隙,而 DS18B20有忙于做时间转换的话,DS18B20将在总线上输出一个0,若温度转换 完,则输出1。如果使用寄生电源,总线控制器必须在发出这条命令后立即启动 强

34、上拉,并最少保持500ms以上时间。 (10)Read E 0B8H 2 这条命令把 触发器里的值拷贝回暂存器。这种拷贝操作在DS18B20上电时 自动执行,这样一上电暂存器里马上存在有效的数据了。若在这条命令之后发 出读数据隙,器件会输出温度转换忙的标识:0为忙,1为完成。 (11)Read Power Supply0B4H 若把这条命令发给DS18B20后发出读时间隙,器件会返回它的电源模式:0 为寄生电源,1为外部电源。 第四章 系统硬件电路的设计 13 第四章第四章. .系统硬件电路的设计系统硬件电路的设计 4.1 主控制电路和测温控制电路原理图主控制电路和测温控制电路原理图 主控制电

35、路由 AT89C52 及外围元件构成,测温电路由 DS18B20、预置数 电路和报警电路组成。AT89C52 是此硬件电路设计的核心,通过 AT89C52 的管 脚 P3.7 与 DS18B20 相连,控制温度的读出和显示。预置数电路由两个按键和两 个数码管组成,两个按键分别与 AT89C52 的管脚 P3.2 和 P3.6 相连。报警电路 很简单,只有一个发光二极管,与 AT89C52 的 P3.0 管脚相连,若实际测量的温 度值大于预置温度值,则发光二极管亮,即为报警标志。硬件电路的功能都是 与软件编程相结合而实现的。具体电路原理图如下图 3-1 所示。 图3-1主控制电路和测温控制电路原

36、理图 4.2 驱动电路模块原理图驱动电路模块原理图 驱动电路由 ULN2803A 组成,通过网络标号 P20-P27 与单片机相连,通 过网络标号 C0-C7 与显示电路数码管相连,实现位控制功能。具体电路如下图 2-2 所示。 淮安信息职业技术学院毕业设计论文 14 图3-2 驱动电路原理图 图3-3 显示电路原理图 4.3 显示模块原理图显示模块原理图 采用动态显示方案,设计中使用八个共阴极数码管作为显示载体,通过八 路并口传输,共使用了十六个I/O口。显示时采用循环移位法,即八位数码管依 次循环点亮,利用人眼睛的视觉暂留效果达到连续显示,主程序每运行一遍便 调用一次显示子程序,将数据显示

37、出来。 显示电路由八位共阴极的数码管组成,通过网络标号 A、B、C、D、E、F、G、DP等与AT89C52的P1口相连,由八个136欧的电阻驱 第四章 系统硬件电路的设计 15 动,实现段控制功能。通过网络标号C0-C7与驱动芯片ULN2803A相连,以此为 桥梁与AT89C52相连,实现位控制功能。 淮安信息职业技术学院毕业设计论文 16 第五章第五章. .软件编程调试及性能分析软件编程调试及性能分析 5.1 主程序流程图主程序流程图 图 4-1 主程序流程图 5.2 主程序主程序 ORG 0000H LJMP START START: MOV DISBUF4,#00H ;开始,初始化 MO

38、V DISBUF5, #00H MAIN: ;主程序 LCAAL KEY ;调按键预置数子程序 开始 调复位子程序 发 SKIP ROM 命令 CCH 调 WRITE DS18B20 子程序 发出温度转换命令 调 WRITE DS18B20 子程序 调复位子程序 调 READ DS18B20 子程序 调 WRITE DS18B20 子程序 发命令 BEH 读暂存器内容 调 WRITE DS18B20 子程序发 SKIP ROM 命令 CCH 对读出的温度值进行转换 转换后的数存于缓冲区 调用比较报警子程序 调显示子程序 调按键子程序 第五章 软件编程调试及性能分析 17 CLR RS1 CLR

39、 RS0 LCALL RESET ;调复位子程序 MOV A,#0CCH ;跳过 ROM 匹配-0CCH LCALL WRITE ;调 DS18B20 写子程序 MOV A,#44H ;发出温度转换命令 LCALL WRITE ;调 DS18B20 写子程序 LCALL RESET ;调复位子程序 MOV A,#0CCH ;跳过 ROM 匹配 LCALL WRITE ;调 DS18B20 写子程序 MOV A,#0BEH ;发出读取温度值命令 LCALL WRITE ;调 DS18B20 写子程序 LCALL READ ;调 DS18B20 读子程序 MOV A, 3DH MOV 29H,A

40、LCALL READ MOV A, 3DH MOV 28H, A MOV R0, #34H MOV A, 28H RLC A MOV 47H, C JNB 47H, BTOD1 ;28H 中的最高位是否为 1(温度0) ;小于 0 的温度值不处理,大于 0 顺序执行 BTOD1: MOV A, 28H RRC A MOV 40H, C RRC A MOV 41H, C RRC A MOV 42H, C RRC A MOV 43H, C MOV A, 29H MOV 27H, A MOV C,40H ;将 28H 中的最低位移入 C,40H41H42H ;43H 为 28H 中的位地址 RRC

41、A ;将 28H 中的低 4 位移到 A 的高 4 位 淮安信息职业技术学院毕业设计论文 18 MOV C, 41H RRC A MOV C, 42H RRC A MOV C, 43H RRC A MOV 29H,A ;将 28H 中的低 4 位放入 29H 中 MOV A, 29H ;将 29H 中的十六进制数转换成 10 进制 MOV B, #100 DIV AB MOV R0, A ;百位存于 34H MOV R0, #11H ;百位不显示 DEC R0 MOV A, #10 XCH A, B DIV AB MOV R0, A ;十位存于 33H DEC R0 MOV R0, B ;个位

42、存于 32H DEC R0 ANL 27H, #0FH ;小数点后一位进制转换 MOV A, 27H MOV B, #06H MUL AB MOV B, #10 DIV AB MOV R0, A ;小数点后一位存于 31H MOV DISBUF0,33H ;十位 MOV DISBUF1,32H ;个位 MOV DISBUF2,31H ;小数位 MOV DISBUF3, #0H ;置 0 MOV DISBUF6, #0H MOV DISBUF7, #0H LCALL CMP ;调比较报警子程序 LCALL DISPLAY ;调用显示子程序 LJMP MAIN ;转到 MAIN 5.3 温度子程序

43、温度子程序 由于 DS18B20 单线通信功能是分时完成的,它有严格的时隙概念,因此读 写时序很重要。系统对 DS18B20 的各种操作都是按时序进行的。DS18B20 的一 线工作协议流程是:初始化ROM 操作指令存储器操作指令数据传输。 第五章 软件编程调试及性能分析 19 1. DS18B20 复位子程序 DS18B20 复位时序图参看后面芯片功能部分有详细的介绍。在这一部分只 给出程序流程图,然后给出根据流程图所编写的 DS18B20 复位子程序。 Y 程序如下: RESET: NOP L0: CLR P3.7 ;拉低数据线 MOV R2,#200 ;发出 600us 的复位脉冲 L1

44、: NOP DJNZ R2, L1 开始 拉低数据线 P3.7=0 发 600us 复位脉冲 P3.7 送给 CY 延时 500us DS18B20 等待 60us 主机释放数据线 P3.7=1 DS18B20 的 P3.7=1? 延时 1us 以上 返回 DS18B20 的 P3.7=1? Y N 延时 240us Y N 图 4-2 DS18B20 复位子程序流程图 淮安信息职业技术学院毕业设计论文 20 SETB P3.7 ;主机释放数据线 MOV R2,#30 ;DS18B20 等待 60us L4: DJNZ R2, L4 CLR C ORL C,P3.7 ;DS18B20 数据变低

45、(存在脉冲)吗? JC L3 ;DS18B20 准备好,结束 MOV R6, #80 L5: ORL C, P3.7 JC L3 ;DS18B20 数据变高,初始化成功 DJNZ R6,L5 ;数据线低电平可持续 3us*80=240us SJMP L0 ;初始化失败,重新初始化 L3: MOV R2, #250 L2: DJNZ R2,L2 ;DS18B20 应答 500us RET 2. 读 DS18B20 子程序 READ: MOV R6,#8 ;循环 8 次,读一个字节 RE1: CLR P3.7 MOV R4, #6 NOP NOP SETB P3.7 RE2: DJNZ R4,RE

46、2 ;等待 8US MOV C,P3.7 ;读 DS18B20 的数据 RRC A ;读取的数据移入 A MOV R5, #30 DJNZ R6,RE1 ;读完一个字节的数据 MOV 3DH,A ;数据存入 3DH 中 SETB P3.7 ;把数据线拉高 RET 开始 返回 设循环次数为 8 延时 600us P3.7=0 延时 1us 以上 P3.7=1 等待 8us 存入 3DH 中 P3.7=1 读 DS18B20 的数据 读完? Y N 图 4-3 读 DS18B20 子程序流程图 第五章 软件编程调试及性能分析 21 3. 写 DS18B20 子程序 ;写 DS18B20 的子程序,

47、 从 DS18B20 中写出一个字节的数据 WRITE: MOV R3,#8 ;循环 8 次,写一个字节 WR1: SETB P3.7 ;拉高数据线 MOV R4, #8 RRC A ;写入位从 A 中移到 CY CLR P3.7 WR2: DJNZ R4,WR2 ;等待 16US MOV P3.7,C ;命令字按位依次送给 DS18B20 MOV R4, #20 WR3: DJNZ R4,WR3 ;保证写过程持续 40US 开始 返回 设置循环次数为 8 拉高数据线 P3.7=1 循环移位,P3.7=0 延时 写完一个 字节? 拉高数据线,P3.7=1 Y 图 4-4 写 DS18B20 子程序流程图 N 淮安信息职业技术学院毕业设计论文 22 DJNZ R3,WR1 ;未写完一个字节转 WR1 继续 SETB P3.7 ;写完一个字节,数据线置高 RET 4. 比较报警子程序 CMP: MOV A,DISBUF0 ;实际测量温度值放在 DISBUF8 中 SWAP A MOV DISBUF8, A MOV A, DISBUF1 ORL A, DISBUF8 MOV DISBUF8, A MOV A,DISBUF4 ;预置温度值放在 DISBUF9 中 SWAP A MOV DISBUF9, A MOV A, DISBUF5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1