[信息与通信]多功能数字温度计设计.doc

上传人:音乐台 文档编号:1971298 上传时间:2019-01-27 格式:DOC 页数:45 大小:1.07MB
返回 下载 相关 举报
[信息与通信]多功能数字温度计设计.doc_第1页
第1页 / 共45页
[信息与通信]多功能数字温度计设计.doc_第2页
第2页 / 共45页
[信息与通信]多功能数字温度计设计.doc_第3页
第3页 / 共45页
亲,该文档总共45页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[信息与通信]多功能数字温度计设计.doc》由会员分享,可在线阅读,更多相关《[信息与通信]多功能数字温度计设计.doc(45页珍藏版)》请在三一文库上搜索。

1、编编 号号 本本科科生生毕毕业业设设计计( 论论文文 ) 题目:题目: 多功能 数字温度计设计 物联网工程 学院 自动化 专业 学 号 0704070122 学生姓名 吴曙光 指导教师 赵芝璞 讲师 II 二一一年六月 摘要 I 摘摘 要要 本课题设计了一种基于单片机控制的数字式多功能温度计.该温度计以51单片机为主 控器,通过温度传感器DS18B20来检测温度,并通过四位共阴极LED数码管来进行数据的 显示,可以方便的实现温度采集和显示.同时可以根据需要设置上下限报警温度,当温度 不在设置范围内时可以报警.同时还具有时钟显示的功能,当需要进行时间显示的时候可 以进行快速切换显示.具有使用方便

2、,精度高、量程宽、灵敏度高、体积小、功耗低等优 点.适用于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块嵌入其 它系统中作为其他主系统的辅助扩展.DS18B20与AT89C51结合实现最简温度检测系统, 该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用 前景. 关键词:关键词:单片机;温度检测;AT89C51;DS18B20 Abstract II ABSTRACT This project is a digital multi-function thermometer based on MCU. This system can easily ach

3、ieve temperature acquisition and display, This thermometer uses at89c51 as microcontroller- based controller, detect temperature through the temperature sensor DS18B20, and realize the temperature display by four common cathode LED and it can set upper and lower limits of temperature according to fe

4、ed the need, when the temperature is not set range it will ring. It also has the function of the clock display. It can switch the display fast when it is need. It is easy to use, with high precision, wide range, high sensitivity, small size and low power consumption. It is suitable for our daily liv

5、es and industrial and agricultural production in the temperature measurement, temperature processing module can also be embedded as other systems, the main system as the other auxiliary expansion. DS18B20 combined with the realization of the simplest AT89C51 temperature detection system, the system

6、is simple, anti-interference ability, suitable for harsh environments spot temperature measurement, a wide range of applications. Keywords: MCU; Temperature Measurement; AT89C51; DS18B20 目录 i 目目 录录 第 1 章 绪论.1 1.1 课题意义及发展前景 .1 1.2 设计内容及性能指标 .1 第 2 章 系统方案论证.3 第 3 章 系统器件选择.5 3.1 主控芯片介绍 .5 3.2 温度传感器的选择

7、.7 3.2.1 DS18B20 简单介绍和性能特点:7 3.2.3 DS18B20 内部结构和测温原理8 3.2.5 DS18B20 使用中的注意事项和控制方法.9 3.3 显示元件的选择 .10 第 4 章 硬件设计.13 4.1 复位电路 .13 4.2 时钟电路 .13 4.3 显示电路 .14 4.4 测温电路 .14 4.5 控制电路 .15 4.6 报警电路 .15 4.7 整机电路及工作原理 .16 第 5 章 软件设计.17 5.1 主程序模块 .17 5.2 温度相关模块 .18 5.3 时间相关模块 .24 5.4 中断相关程序25 5.5 其他相关程序26 第 6 章

8、总结与体会.27 参考文献.29 致 谢.30 附录 A:源程序.31 基于单片机的多功能数字温度计设计 1 第第 1 章章 绪论绪论 1.1 课题意义及发展前景课题意义及发展前景 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几 何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水 平.在信息采集、信息传输和信息处理中,传感器属于信息技术的前沿尖端产品,尤其是 温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领 域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业 生产中也离不开温度的测量,因此

9、研究温度的测量方法和装置具有重要的意义. 测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段: 传统的分立式温度传感器 模拟集成温度传感器 智能集成温度传感器. 计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制 量,适配各种微控制器(MCU).社会的发展使人们对传感器的要求也越来越高,现在的温 度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方 向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感 器和网络传感器、研制单片测温系统等高科技的方向迅速发展,基于单片机的数字温度 计设计与传统的温度计相比,其

10、具有读数方便,测温范围广,测温准确,输出温度采用 数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用. 温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生 活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得 到更快的开发.本设计为基于DS18B20和AT89C51单片机的温度测量及控制系统的硬件结 构以及C语言程序设计,系统设计和布线简单,结构紧凑,体积小,重量轻,抗干扰能力 强,性价比高,扩展方便,在大型仓库,工厂,智能化建筑等领域的多点温度检测中有 广阔的应用前景. 1.2 设计内容及性能指标设计内容及性能指标 本设计主要是介绍了单

11、片机控制下的温度检测系统,详细介绍了其硬件和软件设计, 并对其各功能模块做了详细介绍,其主要功能和指标如下: 1、利用温度传感器(DS18B20)测量某一点环境温度 2、测量范围为-5599 3、用数码管进行实际温度值显示和时间显示 4、能够根据需要方便设定上下限报警温度 江南大学学士学位论文 2 基于单片机的多功能数字温度计设计 3 第第 2 章章 系统方案论证系统方案论证 本次设计采用如图所示系统原理结构框图 图2-1 系统原理结构框图 通过数字温度芯片对外界温度进行读取,并通过单片机进行转换,再由数码管进行 直观的数字显示.同时设定温度比较程序,由单片机进行测量温度与设定温度的比较,若

12、不在设定温度范围内,则令蜂鸣器报警. 单片机选用AT89C51作为温度测试系统设计的核心器件.它是具有高性能的8位单片机, 属于标准的MCS51的CMOS产品.不仅结合了HMOS的高速和高密度技术及CHMOS的低 功耗特征,而且继承和扩展了MCS48单片机的体系结构和指令系统.1 数字温度芯片采用DS18B20测量温度,输出信号全数字化.便于单片机处理及控制, 省去传统的测温方法的很多外围电路.且该芯片的物理化学性很稳定,它能用做工业测温 元件,此元件线形较好.在0100摄氏度时,最大线形偏差小于1摄氏度.采用51单片机控 制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而

13、且体积 小,硬件实现简单,安装方便.既可以单独对多DS18B20控制工作,还可以与PC机通信上 传数据. 利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速 测量环境温度,并可以根据需要设定上下限报警温度.利用按键来进行调时和温度查询. 可以看出此方案测温装置电路简单、精确度较高、实现方便、软件设计也比较简单. 江南大学学士学位论文 4 基于单片机的多功能数字温度计设计 5 第第 3 章章 系统器件选择系统器件选择 3.1 主控芯片介绍主控芯片介绍 主控芯片选择单片机 AT89C51,该单片机具有低电压供电和体积小等特点,很适合 便携手持式产品的设计使用系统

14、可用二节电池供电.2 AT89C51 是一个低电压,高性能 CMOS 8 位单片机,片内含 4k bytes 的可反复擦写 的 Flash 只读程序存储器和 128 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通 用 8 位中央处理器和 Flash 存储单元,内置功能强大的微型计算机的 AT89C51 提供了高 性价比的解决方案. AT89C51 是一个低功耗高性能单片机,40 个引脚,32 个外部双向输入/输出(I/O) 端口,同时内含 2 个外中断口,2 个 16 位可编程定时计数器,2 个全

15、双工串行通信口, AT89C51 可以按照常规方法进行编程,也可以在线编程.其将通用的微处理器和 Flash 存 储器结合在一起,特别是可反复擦写的 Flash 存储器可有效地降低开发成本.3 T89C51主要功能特性: 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 4 各引脚功能简单介绍如下: VCC:供电电压. GND:接地. P0口:P0口为一个8

16、位漏级开路双向I/O口,每脚可吸收8TTL门电流.当P0口的管脚第 一次写1时,被定义为高阻输入.P0能够用于外部程序数据存储器,它可以被定义为数据/ 地址的第八位.在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原 码,此时P0外部必须被拉高. P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 江南大学学士学位论文 6 门电流.P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时, 将输出电流,这是由于内部上拉的缘故.在FLASH编程和校验时,P1口作为第八位地址接 收. P2口:P2口为一个内部上拉电阻

17、的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入.并因此作为输入时, P2口的管脚被外部拉低,将输出电流.这是由于内部上拉的缘故.P2口当用于外部程序存储 器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位.在给出地址“1”时,它 利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄 存器的内容.P2口在FLASH编程和校验时接收高八位地址信号和控制信号. P3口:P3口是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流.当P3口写 入“1”后,它们被内部上拉为高电平,并

18、用作输入.作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故. P3口也可作为AT89C51的一些特殊功能口,如下所示: P3口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(计时器0外部输入) P3.5 T1(计时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号. RST:复位输入.当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间. 5 A

19、LE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字 节.在FLASH编程期间,此引脚用于输入编程脉冲.在平时,ALE端以不变的频率周期输出 正脉冲信号,此频率为振荡器频率的1/6.因此它可用作对外部输出的脉冲或用于定时目的. 然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲.如想禁止ALE的输 出可在SFR8EH地址上置0.此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用. 另外,该引脚被略微拉高.如果微处理器在外部执行状态ALE禁止,置位无效.6 /PSEN:外部程序存储器的选通信号.在由外部程序存储器取指期间,每个机器周期两 次/PS

20、EN有效.但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现. /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不 管是否有内部程序存储器.注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高 电平时,此间内部程序存储器.在FLASH编程期间,此引脚也用于施加12V编程电源 (VPP). XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入. 基于单片机的多功能数字温度计设计 7 XTAL2:来自反向振荡器的输出. 7 3.2 温度传感器的选择温度传感器的选择 由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度

21、,需要比 较多的外部元件支持,且硬件电路复杂,制作成本相对较高.这里采用 DALLAS 公司的数 字温度传感器 DS18B20 作为测温元件. 3.2.1 DS18B20 简单介绍和性能特点简单介绍和性能特点: DALLAS 最新单线数字温度传感器 DS18B20 是一种新型的“一线器件”,其体积更 小、更适用于多种场合、且适用电压更宽、更经济.DALLAS 半导体公司的数字化温度传 感器 DS18B20 是世界上第一片支持“一线总线”接口的温度传感器.温度测量范围为- 55+125 摄氏度,可编程为 9 位12 位转换精度,测温分辨率可达 0.0625 摄氏度,分 辨率设定参数以及用户设定的

22、报警温度存储在 EEPROM 中,掉电后依然保存.被测温度用 符号扩展的 16 位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生 电源方式产生;多个 DS18B20 可以并联到 3 根或 2 根线上,CPU 只需一根端口线就能 与诸多 DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路.因此用 它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计, 十分方便. 8 DS18B20 的性能特点: 独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理 器与 DS18B20 的双向通讯 DS18B20 支持多

23、点组网功能,多个 DS18B20 可以并联在唯一的三线上,实现组网多点 测温 DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三 极管的集成电路内 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电 温范围55125,在-10+85时精度为0.5 零待机功耗 可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、0.125和 0.0625,可实现高精度测温 在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在 750ms 内 把温度值转换为数字,速度更快 用户可定义报警设置 报警搜索命令识

24、别并标志超过程序限定温度(温度报警条件)的器件 测量结果直接输出数字温度信号,以“一线总线“串行传送给 CPU,同时可传送 CRC 校 验码,具有极强的抗干扰纠错能力 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作 以上特点使 DS18B20 非常适用与多点、远距离温度检测系统. 江南大学学士学位论文 8 3.2.3 DS18B20 内部结构和测温原理内部结构和测温原理 DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度 报警触发器 TH 和 TL、配置寄存器.DQ 为数据输入/输出引脚.开漏单总线接口引脚.当被 用着在寄生电源下,也可

25、以向器件提供电源;GND 为地信号;VDD 为可选择的 VDD 引 脚.当工作于寄生电源时,此引脚必须接地.DS18B20 采用 3 脚 PR-35 封装或 8 脚 SOIC 封 装,其内部结构框图如图所示 图 3-2 DS18B20 内部结构框图 闪速 ROM 开始 8 位是产品类型的编号,接着是每个器件的惟一的序号,共有 48 位, 最后 8 位是前面 56 位的 CRC 检验码,这也是多个 DS18B20 可以采用一线进行通信的 原因.温度报警触发器 TH 和 TL,可通过软件写入户报警上下限.主机操作 ROM 的命令有 五种,如表所列9 表3-1 ROM的命令 DS18B20 温度传感

26、器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电 擦除的EPROM.前2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的, 指 令说 明 读ROM(33H)读DS1820的序列号 匹配ROM(55H)继读完64位序列号的一个命令,用于多个DS1820时定位 跳过ROM(CCH)此命令执行后的存储器操作将针对在线的所有DS1820 搜ROM(F0H)识别总线上各器件的编码,为操作各器件作好准备 报警搜索(ECH)仅温度越限的器件对此命令做出响应 基于单片机的多功能数字温度计设计 9 每次上电复位时被刷新.第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换 分辨

27、率.DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值. 温度低位温度高位THTL配置保留保留保留8位CRC LSB MSB DS18B20测温原理 当DS18B20接收到温度转换命令后,开始启动转换.转换完成后的温度值就以16位带符 号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节.单片机可通过单线接口读 到该数据,读取时低位在前,高位在后,数据格式以0.062 5 /LSB形式表示.温度值格式 如下: 232221202-12-22-32-4 LSB MSB SSSSS262524 LSB MSB 这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM

28、中,二进制中 的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即 可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可 得到实际温度.图中,S表示位.对应的温度计算:当符号位S=0时,表示测得的温度植为正 值,直接将二进制位转换为十进制;当S=1时,表示测得的温度植为负值,先将补码变换 为原码,再计算十进制值.例如+125的数字输出为07D0H,+25.0625的数字输出为 0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H. 另外,由于 DS18B20 单线通信功能是分时完成的,他有严格的

29、时隙概念,因此读写 时 序很重要.系统对 DS18B20 的各种操作必须按协议进行.操作协议为:初始化 DS18B20 (发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据. 在正常测温情况下,DS1820 的测温分辨力为 0.5,可采用下述方法获得高分辨率的 温度测量结果:首先用 DS1820 提供的读暂存器指令(BEH)读出以 0.5为分辨率的温 度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分 Tz,然后再用 BEH 指令取计数器 1 的计数剩余值 Cs 和每度计数值 CD.考虑到 DS1820 测 量温度的整数部分以 0.25、0.75为进位界限的

30、关系,实际温度 Ts 可用下式计算: Ts=(Tz-0.25)+(CD-Cs)/CD 3.2.5 DS18B20 使用中的注意事项使用中的注意事项和控制方法和控制方法 DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但 在实际应用中也应注意以下几方面的问题: DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保 江南大学学士学位论文 10 证的,不然会出现转换错误的现象,使温度输出总是显示85. 在实际使用中发现,应使电源电压保持在5V 左右,若电源电压过低,会使所测得 的温度精度降低. 较小的硬件开销需要相对复杂的软件进行补偿,由于DS

31、1820与微处理器间采用串 行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无 法读取测温结果.在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最 好采用汇编语言实现. 在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题,容易使人误 认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以 注意. 在DS18B20测温程序设计中,向DS18B20 发出温度转换命令后,程序总要等待 DS18B20的返回信号,

32、一旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将 没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予 一定的重视. 在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地, I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片 机I/O.无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻.此次设计选 择的是前面一种控制. CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才 能对存储器操作,数据操作.DS18B20每一

33、步操作都要遵循严格的工作时序和通信协议.如 主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每 一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM 指令,这样才能对DS18B20进行预定的操做. 3.3 显示元件的选择显示元件的选择 显示元件本设计选择四位一体的八段共阴极数码管. 数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二 极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管; 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管.共阳数码管是指将所有发

34、光二极管的阳极接到一起形成公共阳极(COM)的数码管.共阳数码管在应用时应将公共极 COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮.当某一字段 的阴极为高电平时,相应字段就不亮共阴数码管是指将所有发光二极管的阴极接到一起 形成公共阴极(COM)的数码管.共阴数码管在应用时应将公共极COM接到地线GND上,当 某一字段发光二极管的阳极为高电平时,相应字段就点亮.当某一字段的阳极为低电平时, 相应字段就不亮. 基于单片机的多功能数字温度计设计 11 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出需要的数 字,因此根据数码管的驱动方式的不同,可以分为静态式

35、和动态式两类. 静态显示驱动 静态驱动也称直流驱动.静态驱动是指每个数码管的每一个段码都由一个单片机的 I/O 端口进行驱动,或者使用如 BCD 码二-十进制译码器译码进行驱动.静态驱动的优点是编 程简单,显示亮度高,缺点是占用 I/O 端口多,如驱动 5 个数码管静态显示则需要 5840 根 I/O 端口来驱动,要知道一个 89S51 单片机可用的 I/O 端口才 32 个呢,实际 应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性. 动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将 所有数码管的 8 个显示笔划“a,b,c,d,e,f,g,dp“

36、的同名端连在一起,另外为每个数码管的公共 极 COM 增加位选通控制电路,位选通由各自独立的 I/O 线控制,当单片机输出字形码时, 所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机 对位选通 COM 端电路的控制,所以只要将需要显示的数码管的选通控制打开,该位就显 示出字形,没有选通的数码管就不会亮.通过分时轮流控制各个数码管的的 COM 端,就 使各个数码管轮流受控显示,这就是动态驱动.在轮流显示过程中,每位数码管的点亮时 间为 12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管 并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳

37、定的显示数据,不会 有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的 I/O 端口,而且功耗更 低. 江南大学学士学位论文 12 基于单片机的多功能数字温度计设计 13 第第 4 章章 硬件设计硬件设计 4.1 复位电路复位电路 为确保两点间温度控制系统中电路稳定可靠工作,复位电路是必不可少的一部分, 复位电路的第一功能是上电复位.一般电路正常工作需要供电电源为 5V5%,即 4.755.25V. 复位是单片机的初始化操作,其目的是使 CPU 及各专用寄存器处于一个确定的初始 状态.如:把 PC 的内容初始化为 0000H,使单片机从 0000H 单元开始执行程序.除了进入 系统的正

38、常初始化之外,当单片机系统在运行出错或操作错误使系统处于死锁状态时, 为摆脱困境,也需要复位以使其恢复正常工作状态. RST 端的外部复位电路有两种操作方式:上电自动复位和按键手动复位.按键手动复 位有电平方式和脉冲方式两种,本系统设计采用上电复位,如图 4-1 所示.上电复位是直 接将 RST 端通过电阻接高电平来实现单片机的复位. 4.2 时钟电路时钟电路 单片机的时钟信号用来提供单片机内各种微操作的时间基准,时钟电路用于产生单 片机工作所需要的时钟信号. 时钟信号通常用两种电路形式得到:内部振荡和外部振荡.本系统设计采用内部振荡方 式,如图 4-2 所示.MCS-51 单片机内部有一个用

39、于构成振荡器的高增益反向放大器,引脚 XTALl 和 XTAL2 分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单, 所得的时钟信号比较稳定,实际使用中常采用这种方式.本设计中晶振取 12MHz.10 江南大学学士学位论文 14 图4-2 时钟电路 4.3 显示电路显示电路 正如前面所说显示电路采用的元器件为四位一体的八段共阴极数码管.采用动态显示 驱动形式,电路图如下.P0.0-P0.7 为数据输入端,根据所要显示的不同数据从数组里进行 调取.由于 P0 口本身不含有驱动能力,所以需要在 P0 口接上拉电阻,以保证有足够的电 流来驱动数码管进行显示.P2.0-P2.3 为位选择

40、端口,分别控制四位数码管的显示与否. 本设计通过选择位的不同对四位数码管进行分别显示,利用人的眼睛残留视觉以达 到显示数据的目的.此电路的优点的电路简单控制方便.可以实现四位数码管的分别控制, 以便于实现多方面的显示需求. 图4-3 显示电路 4.4 测温电路测温电路 测温电路采用的元件即为 DS18B20.测温电路采用外部供电方式.VCC 接外部电源,GND 接地,I/O 与单片机的 P2.6 口相连, I/O 口线接 4.7K 左右的上拉电阻.单片机的数据读取 和输出都通过 P2.6 口与 DS18B20 的 I/O 口进行.采用单串口进行数据通信,电路设计简单.但 对软件有更多的要求.

41、基于单片机的多功能数字温度计设计 15 图4-4 测温电路 4.5 控制电路控制电路 本电路摒弃了复杂的矩阵键盘电路,而仅仅采用了四个按键组成简单电路来实现需 要的控制.不仅降低了硬件的成本,也使编程变的简单.电路图如下.四个按键分别连接单片 机的 P3.1,P3.0,P3.2 和 P3.3 端.P32 和 P33 为外部中断端口,通过他们来进行相应的控 制操作.而 P31 和 P30 端口则分别实现了数据的减和增的操作.操作起来简单易懂,硬件开 发的消耗也大为减少. 图4-5 控制电路 4.6 报警电路报警电路 本设计采用软件处理报警,利用有源蜂鸣器进行报警输出,采用直流供电.当所测温 度超

42、过或者低于所预设的温度时,数据口相应拉高电平,报警输出.(也可采用发光二级 管报警电路,如过需要报警,则只需将相应位置 1,当参数判断完毕后,再看报警模型单 元 ALARM 的内容是否与预设一样,如不一样,则发光报警).并在电路中添加开关按键, 只有当开关闭合时才会报警,否则仅仅显示温度,通过开关键控制报警,非常方便和容 易操作.报警电路硬件连接见图.蜂鸣器通过 NPN 管连接到单片机的 P17 口,采用外部电 源进行连接,NPN 起到了电流放大的作用,以保证有足够的电流去驱动蜂鸣器进行报警. 江南大学学士学位论文 16 图4-6 报警电路 4.7 整机电路及工作原理整机电路及工作原理 当接通

43、电源以后,温度传感器正常工作,温度传感器将根据被测温度的不同来采集 不同的数据,然后通过计算把数据转化成相应的字库代码,通过调用字库数组的数据进 行数字的显示.通过外部中断 1 可以进行时间显示与温度显示的切换.当处于不同的显示状 态时可以通过外部中断 0 来实现时间的调整和温度上下限的调整.P30 口实现了数据的增 加,每按一下数据增加一位,为 P31 口则实现的数据的递减.在程序中设定数据上下限以 防止数据的溢出.11 基于单片机的多功能数字温度计设计 17 图4-7 整机电路 第第 5 章章 软件设计软件设计 从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的 核心

44、,专门用来协调各执行模块和操作者的关系.二是执行软件(子程序),它是用来完 成各种实质性的功能如测量、计算、显示、通讯等.每一个执行软件也就是一个小的功能 执行模块.这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义.各 执行模块规划好后,就可以规划监控程序了.首先要根据系统的总体功能选择一种最合适 的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调 度关系. 5.1 主程序模块主程序模块 主程序主要完成硬件初始化,显示切换等功能 主程序如下: 图 5-1 主程序流程图 void main() Speak=0;/蜂鸣器关闭 江南大学学士学位论文 18

45、TMOD=0x11;/定时器 0 初始化 IE=0x8f; TCON=0x05; TH0=0X3C; TL0=0XB0; TR0=1; Recall();/获取温度限值 while(1) switch(disp) case 0:temp();break; /温度显示 case 1:time();break; /时间显示 case 2:tempset();break; /温度上下限调整 case 3:timeset();break; /时间调整 5.2 温度相关模块温度相关模块 DS18B20 初始化 图5-2-1 DS18B20初始化流程图 程序如下: reset() char presenc

46、e=1; while(presence) 基于单片机的多功能数字温度计设计 19 while(presence) DQ=1;_nop_();_nop_(); DQ=0; delay(50); / 550us DQ=1; delay(6); / 66us presence=DQ; delay(45); presence = DQ; DQ=1; DS18B20 取数据 图5-2-2 DS18B20读数据流程图 程序如下: uchar readbyte(void) uchar i; uchar value = 0; for (i=8;i0;i-) 江南大学学士学位论文 20 DQ=1; _nop_(

47、);_nop_(); value=1; DQ = 0; / _nop_();_nop_();_nop_();_nop_(); /4us DQ = 1; _nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0x80; delay(6); /66us DQ=1; return(value); DS18B20 写数据 图5-2-3 DS18B20读取数据流程图 程序如下: void writebyte(uchar val) uchar i; for (i=8; i0; i-) / 基于单片机的多功能数字温度计设计 21 DQ=1; _nop_();_

48、nop_(); DQ=0; _nop_();_nop_();_nop_();_nop_();_nop_();/5us DQ = val delay(6); /66us val=val/2; DQ = 1; delay(1); 4、温度读取与转化及报警程序 程序如下: void GetTemp() uchar n=0,temp; reset(); /DS18B20 复位 writebyte(0xCC); / Skip ROM writebyte(0xBE); / 发送读取命令 TL=readbyte(); /读取温度低 8 位 TH=readbyte(); /读取温度高 8 位 reset();/复位 writebyte(0xCC); / Skip ROM writebyte(0x44); /发送转换命令 if(TH TL=(TL)+1; n=1; /负温度求补码 if(TL255) TH+; /数值转换 temp=TL shifen=ditabtemp; temp=(TL else Speak=0; 本设计将温度获取转换程序与报警程序融合在一起,简化了程序的复杂度,并且通 过硬件开关来控制报警系统的开通

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

当前位置:首页 > 其他


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