资源目录
压缩包内文档预览:
编号:79723506
类型:共享资源
大小:2.19MB
格式:RAR
上传时间:2020-05-18
上传人:加Q294****549海量...
认证信息
个人认证
乐**(实名认证)
湖南
IP属地:湖南
39
积分
- 关 键 词:
-
1928
基于
单片机
温度
检测
控制
- 资源描述:
-
1928_基于单片机的温度检测控制,1928,基于,单片机,温度,检测,控制
- 内容简介:
-
黄河科技学院本科毕业设计(论文)任务书 工 学院 机械 系 机械设计制造及其自动化 专业 2008 级 3班学号 080105503 学生 马楚 指导教师 牛月兰 毕业设计(论文)题目 基于单片机的温度检测控制 毕业设计(论文)工作内容与基本要求(目标、任务、途径、方法,应掌握的原始资料(数据)、参考资料(文献)以及设计技术要求、注意事项等)本课题的主要任务是通过单片机控制系统,实现对温度的智能控制。具体设计要求如下:温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快的开发。本设计为基于DS18B20和AT89C51单片机的温度测量及控制系统的硬件结构以及C语言程序设计,系统设计和布线简单,结构紧凑,体积小,重量轻,抗干扰能力强,性价比高,扩展方便,在大型仓库,工厂,智能化建筑等领域的多点温度检测中有广阔的应用前景。设计内容包括硬件和软件两个部分。硬件电路以AT89C51单片机为微处理器,详细设计复位电路,键盘及显示电路,温度控制电路,报警电路,时钟信号电路。软件部分主要对PID算法进行数学建模和编程。主要内容:1、电路原理图设计;2、程序设计;3、通过PROTEUS软件进行仿真调试;4、图纸:画出系统方框图、电路原理图、程序流程图、系统仿真图各一张;5、撰写毕业设计说明书、写出文献综述、翻译外文资料; 时间及任务安排: 1、1-2周:考察调研,实习参观,收集资料,完成开题报告; 2、3-4周:完成文献翻译,文献综述,初步拟定总体设计方案(查阅文献资料不少于12篇,其中外文资料不少于2篇;文献综述不少于3000字;文献翻译不少于3000字); 3、5-9周:完成设计说明书初稿,基本完成课题设计、计算绘图等工作(毕业论文1篇不少于10000字,理工科类论文或设计说明书不少于8000字); 4、10-11周: 完成设计说明书、设计图纸,整理完成所有设计文件; 5、第12 周:做好答辩前的所有准备工作。毕业设计(论文)时间: 2012 年 2 月 13 日至 2012 年 5 月 15 日计 划 答 辩 时 间: 2012 年 5 月 20 日专业(教研室)审批意见:审批人(签字):黄河科技学院毕业设计(论文)开题报告表课题名称基于单片机的温度检测控制课题来源教师拟订课题类型AX指导教师牛月兰学生姓名马楚专 业机械设计制造及其自动化学 号080105503一、 调研资料的准备1、通过图书馆、互联网搜集若干单片机温度检测控制系统电路图,初步了解单片机控制系统;2、查阅并参阅 MCS-51单片机原理、接口及应用、单片机课程设计指导书等书籍;3、在参阅大量的资料、网络资源和参观实习的基础上进行知识整合,具备了单片机控制系统的创新设计。二、设计的目的和要求1、了解单片机的基本结构、工作原理、发展的动态;2、综合所学的基础知识和专业技能,设计出单片机的温度检测控制系统;3、所设计的产品性价比高、工作可靠、检修方便并符合实际生产。三、设计的思路与预期成果1、通过实物的参观、资料的搜集和信息的整合,进行温度检测控制系统的创新设计;2、培养独立设计能力和创新思维能力,提高知识的灵活运用能力;3、完成文献综述、文献翻译、设计说明书一份,设计单片机控制系统电路原理图及系统方框图;4、通过本次设计和大学所学知识的综合运用,进一步加深对单片机控制系统设计的运用,并且所设计的装置具有一定的使用价值。四、任务完成的阶段内容及时间安排 1、 1 2 周:考察调研,实习参观,搜集资料,完成开题报告; 2、 3 4 周:完成文献翻译、文献综述及初步拟定总体方案设计; 3、 5 9 周:完成设计说明书初稿,基本完成课题设计、计算机绘图与仿真等工作; 4、 1011 周:完成设计说明书、设计图纸,整理完成所有设计文件; 5、 第 12 周:做好答辩前的所有准备工作。五、完成设计所具备的条件因素1、大学四年学习的知识为毕业设计提供了理论基础;2、四年学习过程中的课程设计、生产实习为此次毕业设计提供了实践基础;3、学校较好的硬件设施,图书资源以及高度发达的校园网络为资料的查询提供了便利;4、良好的设计环境,指导老师的精心指导,同学们无私的帮助是完成本次设计的重要条件。指导教师签名: 日期:课题来源:(1)教师拟订;(2)学生建议;(3)企业和社会征集;(4)科研单位提供课题类型:(1)A工程设计(艺术设计);B技术开发;C软件工程;D理论研究;E调研报告 (2)X真实课题;Y模拟课题;Z虚拟课题要求(1)、(2)均要填,如AY、BX等 黄河科技学院毕业设计说明书第IV 页基于单片机的温度检测控制摘要随着温度检测系统的广泛运用,不同行业和领域对温度检测有着不同要求和标准。该设计主要用于普通室内温度测量。采用DS18B20集成芯片作为温度传感器。文中分析了温度测量的工作原理及过程,提出了温度检测系统设计的整体方案,对各个子模块设计进行了方案的论证与比较。硬件设计采用protel 99se软件,完成了单片机最小系统,LCD显示电路,传感器的原理图和PCB图。软件设计采用Keil uVision2 ,完成了程序模块各个模块的设计编程,实现了对温度信号处理过程的编程和调试。温度测量范围-40+125,分辨率0.5。能达到日常生活温度测量要求。关键字:AT89C51,DS18B20,LCD,数据采集,数据处理Based on SCM temperature detection and controlAuthor:Ma ChuTutor:NiuYueLanAbstractAlong with the humiture examination systems widespread utilization, the different profession and the domain have the various requirement and the standard to the humiture examination. This design mainly uses in the ordinary indoor humiture survey. Uses the DS18B20 integration chip to take the humiture sensor. In the article has analyzed the humiture survey principle of work and the process, proposed the humiture examination system designs overall plan, has carried on the plan proof to each submodule design and compares. The hardware design uses protel the 99se software, has completed the monolithic integrated circuit smallest system, the LCD display circuit, sensors schematic diagram and the PCB chart. The software design uses Keil uVision2, has completed the program module each module design programming, has realized to the humiture signal processing process programming and the debugging. Temperature survey scope - 40+125, resolution 0.5. Can meet the daily life humiture survey requirements. key words: AT89C51,DS18B20,LCD,Data acquisition,Data processing目录第1章 绪论11.1 课题意义及发展前景11.2 设计内容及性能指标2第2章 系统器件选择42.1 主控芯片介绍42.2 温度传感器的选择52.2.1 DS18B20性能特点52.2.2 DS18B20内部结构和测温原理62.2.3 DS18B20使用中的注意事项和控制方法82.3 显示元件的选择9第3章 硬件设计123.1 复位电路123.2 时钟电路123.3 显示电路133.4 测温电路143.5 控制电路143.6 报警电路153.7 整机电路及工作原理15第4章 软件设计174.1 主程序模块174.2 温度相关模块184.3 时间相关模块264.4 中断相关程序274.5 其他相关程序28第5章 PROTEUS进行仿真315.1 PROTEUS简介315.2 PROTEUS仿真图31总结34致谢35参考文献36单位代码 02 学号 080105503 分 类 号 密 级 毕业设计说明书基于单片机的温度检测控制 院(系)名称工学院机械系 专业名称机械设计制造及其自动化 学生姓名马楚 指导教师牛月兰 20012 年 5 月 6 日黄河科技学院毕业设计说明书 第 37 页 第1章 绪论1.1 课题意义及发展前景随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在信息采集、信息传输和信息处理中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,基于单片机的数字温度计设计与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快的开发。本设计为基于DS18B20和AT89C51单片机的温度测量及控制系统的硬件结构以及C语言程序设计,系统设计和布线简单,结构紧凑,体积小,重量轻,抗干扰能力强,性价比高,扩展方便,在大型仓库,工厂,智能化建筑等领域的多点温度检测中有广阔的应用前景。1.2 设计内容及性能指标本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下:1、利用温度传感器(DS18B20)测量某一点环境温度2、用数码管进行实际温度值显示和时间显示3、能够根据需要方便设定上下限报警温度1.3 本次设计采用如图所示系统原理结构框图图1.1 系统原理结构框图通过数字温度芯片对外界温度进行读取,并通过单片机进行转换,再由数码管进行直观的数字显示。同时设定温度比较程序,由单片机进行测量温度与设定温度的比较,若不在设定温度范围内,则令蜂鸣器报警。单片机选用AT89C51作为温度测试系统设计的核心器件。它是具有高性能的8位单片机,属于标准的MCS51的CMOS产品。不仅结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,而且继承和扩展了MCS48单片机的体系结构和指令系统。数字温度芯片采用DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性能很稳定,它能用作工业测温元件,此元件线性较好。在0100时,最大线性偏差小于1。采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术运算和逻辑控制,而且体积小,硬件实现简单,安装方便,既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据.利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度,利用按键来进行调时和温度查询。可以看出此方案测温装置电路简单、精确度较高、实现方便、软件设计也比较简单。第2章 系统器件选择2.1 主控芯片介绍主控芯片选择单片机AT89C51,该单片机具有低电压供电和体积小等特点,很适合便携手持式产品的设计使用系统可用二节电池供电。AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程.其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89C51主要功能特性:与MCS-51 兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32条可编程I/O线两个16位定时器/计数器5个中断源可编程串行口低功耗的闲置和掉电模式片内振荡器和时钟电路 图2.1 AT89C51单片机的管脚图2.2 温度传感器的选择由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高。这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件。2.2.1 DS18B20性能特点: 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电。温范围55125,在1085时精度为0.5。零待机功耗。可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快。用户可定义报警设置。报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。以上特点使DS18B20非常适用与多点、远距离温度检测系统。图2.2 DS18B20内部结构框图2.2.2 DS18B20内部结构和测温原理DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DQ 为数据输入/输出引脚;开漏单总线接口引脚。当被用在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚;当工作于寄生电源时,此引脚必须接地.DS18B20采用3脚PR-35 封装或8脚SOIC封装,其内部结构框图如上图所示。闪速ROM开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48 位,最后8位是前面56 位的CRC 检验码,这也是多个DS18B20 可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限.主机操作ROM的命令有五种,如下表所示:指 令说 明读ROM(33H)读DS1820的序列号匹配ROM(55H)继读完64位序列号的一个命令,用于多个DS1820时定位跳过ROM(CCH)此命令执行后的存储器操作将针对在线的所有DS1820搜ROM(F0H)识别总线上各器件的编码,为操作各器件作好准备报警搜索(ECH)仅温度超越极限的器件对此命令做出响应表2.1 ROM的命令DS18B20 温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EPROM.前2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率.DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。温度低位温度高位THTL配置保留保留保留8位CRCLSB MSBDS18B20测温原理当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.062 5 /LSB形式表示。温度值格式如下:232221202-12-22-32-4LSB MSBSSSSS262524LSB MSB这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。图中,S表示位。对应的温度计算:当符号位S=0时,表示测得的温度值为正值,直接将二进制位转换为十进制;当S=1时,表示测得的温度值为负值,先将补码变换为原码,再计算十进制值。例如+125的数字输出为07D0H,55的数字输出为FC90H。另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时程序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。在正常测温情况下,DS1820的测温分辨力为0.5,可采用下述方法获得高分辨率的温度测量结果:首先用DS1820提供的读暂存器指令(BEH)读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。考虑到DS1820测量温度的整数部分以0.25、0.75为进位界限的关系,实际温度Ts可用下式计算:Ts =(Tz0.25)+(CDCs)/CD2.2.3 DS18B20 使用中的注意事项和控制方法DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85。在实际使用中发现,应使电源电压保持在5V 左右,若电源电压过低,会使所测得的温度精度降低。较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20 超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。此次设计选择的是前面一种控制。CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。2.3 显示元件的选择显示元件本设计选择四位一体的八段共阴极数码管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管; 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮.当某一字段的阳极为低电平时,相应字段就不亮。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出需要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。静态显示驱动静态驱动也称直流驱动.静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码的二十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。第3章 硬件设计3.1 复位电路为确保两点间温度控制系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般电路正常工作需要供电电源为5V5%,即4.755.25V复位是单片机的初始化操作,其目的是使CPU及各专用寄存器处于一个确定的初始状态。如:把PC的内容初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当单片机系统在运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要复位以使其恢复正常工作状态。RST端的外部复位电路有两种操作方式:上电自动复位和按键手动复位。按键手动复位有电平方式和脉冲方式两种,本系统设计采用上电复位,如图3.1所示。上电复位是直接将RST端通过电阻接高电平来实现单片机的复位。图3.1 复位电路3.2 时钟电路单片机的时钟信号用来提供单片机内各种微操作的时间基准,时钟电路用于产生单片机工作所需要的时钟信号。时钟信号通常用两种电路形式得到:内部振荡和外部振荡。本系统设计采用内部振荡方式,如图3.2所示。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式.本设计中晶振取12MHz。图3.2 时钟电路3.3 显示电路图3.3 显示电路正如前面所说显示电路采用的元器件为四位一体的八段共阴极数码管。采用动态显示驱动形式,电路图如下。P0.0P0.7为数据输入端,根据所要显示的不同数据从数组里进行调取。由于P0口本身驱动能力有限,所以需要在P0口接上拉电阻,以保证有合适的电流来驱动数码管进行显示。P2.0P2.3为位选择端口,分别控制四位数码管的显示与否。本设计通过选择位的不同对四位数码管进行分别显示,利用人眼的视觉暂留以达到显示数据的目的。此电路的优点的电路简单控制方便。可以实现四位数码管的分别控制,以便于实现多方面的显示需求。3.4 测温电路测温电路采用的元件即为DS18B20。测温电路采用外部供电方式。VCC接外部电源,GND接地,I/O与单片机的P2.6口相连, I/O口线接4.7K左右的上拉电阻。单片机的数据读取和输出都通过P2.6口与DS18B20的I/O口进行。采用单串口进行数据通信,电路设计简单.但对软件有更多的要求。图3.4 测温电路3.5 控制电路图3.5 控制电路本电路摒弃了复杂的矩阵键盘电路,而仅仅采用了四个按键组成简单电路来实现需要的控制。不仅降低了硬件的成本,也使编程变的简单.电路图如下。四个按键分别连接单片机的P3.1,P3.0,P3.2和P3.3端。P3.2和P3.3为外部中断端口,通过他们来进行相应的控制操作。而P3.1和P3.0端口则分别实现了数据的减和增的操作。操作起来简单易懂,硬件开发的消耗也大为减少。3.6 报警电路本设计采用软件处理报警,利用有源蜂鸣器进行报警输出,采用直流供电。当所测温度超过或者低于所预设的温度时,数据口相应位拉高电平,报警输出。(也可采用发光二级管报警电路,如果需要报警,则只需将相应位置1,当参数判断完毕后,再看报警模型单元ALARM 的内容是否与预设一样,如不一样,则发光报警)。并在电路中添加开关按键,只有当开关闭合时才会报警,否则仅仅显示温度,通过开关键控制报警,非常方便和容易操作。报警电路硬件连接见图。蜂鸣器通过NPN管连接到单片机的P1.7口,采用外部电源进行连接,NPN起到了电流放大的作用,以保证有足够的电流去驱动蜂鸣器进行报警。图3.6 报警电路3.7 整机电路及工作原理当接通电源以后,温度传感器正常工作,温度传感器将根据被测温度的不同来采集不同的数据,然后通过计算把数据转化成相应的字库代码,通过调用字库数组的数据进行数字的显示。通过外部中断1可以进行时间显示与温度显示的切换。当处于不同的显示状态时可以通过外部中断0来实现时间的调整和温度上下限的调整。P3.0口实现了数据的增加,每按一下按钮数据会增加一个,为P3.1口则实现的数据的递减。在程序中设定数据上下限以防止数据的溢出。图3.7 原理图第4章 软件设计从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。每一个执行软件也就是一个小的功能执行模块。这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。4.1 主程序模块主程序主要完成硬件初始化,显示切换等功能主程序如下:图4.1 主程序流程图void main( )Speak=0;/蜂鸣器关闭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; /时间调整 4.2 温度测量相关模块DS18B20初始化程序如下:reset( )char presence=1;while(presence)while(presence)DQ=1;_nop_( );_nop_( );DQ=0; delay(50); / 550usDQ=1; delay(6); / 66uspresence=DQ; delay(45); presence = DQ;DQ=1; 图4.2 DS18B20初始化流程图DS18B20取数据图4.3 DS18B20读数据流程图程序如下:uchar readbyte(void) uchar i;uchar value = 0;for (i=8;i0;i-)DQ=1;_nop_( );_nop_( );value=1;DQ = 0; /_nop_( );_nop_( );_nop_( );_nop_( ); /4usDQ = 1;_nop_( );_nop_( );_nop_( );_nop_( ); /4us if(DQ)value|=0x80;delay(6); /66sDQ=1;return(value);DS18B20写数据图4.4 DS18B20写数据流程图程序如下:void writebyte(uchar val)uchar i;for (i=8; i0; i-) /DQ=1; _nop_( );_nop_( ); DQ=0; _nop_( );_nop_( );_nop_( );_nop_( );_nop_( );/5usDQ = val&0x01; delay(6); /66usval=val/2; DQ = 1;delay(1); 温度读取与转换及报警程序程序如下:void GetTemp( )uchar n=0,temp;reset( ); /DS18B20复位writebyte(0xCC); / Skip ROMwritebyte(0xBE); / 发送读取命令TL=readbyte( ); /读取温度低8位TH=readbyte( ); /读取温度高8位reset( );/复位writebyte(0xCC); / Skip ROMwritebyte(0x44); /发送转换命令if(TH&0xf8)!=0x00) TH=(TH); TL=(TL)+1; n=1; /负温度求补码if(TL255)TH+; /数值转换temp=TL&0x0f;shifen=ditabtemp;temp=(TL&0xf0)4)|(TH&0x07)4);if(n!=1)fuhao=temp/100;/获取百位数值elsefuhao=10;shi=temp/10%10;/获取十位数值ge=temp%10;/获取个位数值if(temp=TH2)/判断温度是否在报警范围内Speak=1;elseSpeak=0;本设计将温度获取转换程序与报警程序融合在一起,简化了程序的复杂度,并且通过硬件开关来控制报警系统的开通与闭合,更加方便直接.温度上下限设置程序程序如下:void tempset( )switch(pic) case 0: v1(TL2/100);v2(TL2/10%10);v3(TL2%10);v4(10);/下限值设置if(P30=0)/数值增加1delay(600);while(P30=0);+TL2;if(TL299)TL2=0;if(P31=0)/数值减少1delay(600);while(P31=0);if(TL2=0)TL2=99;-TL2;break; case 1:v1(TH2/100);v2(TH2/10%10);v3(TH2%10);/上限值设置if(P30=0)/增1delay(600);while(P30=0);+TH2;if(TH299)TH2=0;if(P31=0)/减1delay(600);while(P31=0);if(TH2=0)TH2=99;-TH2;break; case 2:if(TH2TL2) /判断限值是否有误,无误则写入EPROMv1(0);v2(0);v3(0);v4(0);shanshuo( );elsereset( );writebyte(0xcc);writebyte(0x4e);writebyte(TH2);writebyte(TL2);disp=0;pic=0; break;case 3:pic=0; 温度显示程序程序如下:void temp( )int i;GetTemp( );/获取温度for(i=0;i60)minter=0; if(P31=0)/分钟-1delay(600); while(P31=0);if(minter=0)minter=61;-minter; break;case 2:v1(hour/10);v2(hour%10);/小时修改if(P30=0)/小时+1delay(600); while(P30=0);+hour; if(hour24)hour=0; if(P31=0)/小时-1delay(600); while(P31=0);if(hour=0)hour=25;-hour;break;case 3:disp=1;pic=0; 4.4 中断相关程序1、外部中断void intersvr0(void) interrupt 0 P0=0X00;delay(600);/主要通过改变pic值辅助数据修改if(disp=0)disp=2;else if(disp=1)disp=3;else+pic; 2、外部中断void zhuanhuan(void) interrupt 2 P0=0X00;/通过改变disp的值进行显示切换delay(600); +disp; if(disp1)disp=0;3、定时器中断 void int1()interrupt 1 TH0=0X3C;/重新开始计时,计时时间50MS TL0=0XB0; +court;if(court=20)/计数20次,分钟加1 court=0;+second;if(second=60)second=0;+minter;if(minter=60)minter=0;+hour;if(hour=24)hour=0; 4.5 其他相关程序1、延时程序void delay(uint n) while(n-); 2、实现调整时的屏幕闪烁显示void shanshuo() +x; if(x=300) P0=0X00; delay(25000); x=0;3、数码管显示程序void v4(int a) /显示数码管第4位 P0=da;P23=0;delay(15);P23=1;void v3(int b)/显示数码管第3位P0=db; P22=0;delay(15);P22=1;void v2(int c)/显示数码管第2位P0=dc;P21=0;delay(15);P21=1;void v1(int e)/显示数码管第1位P0=de; P20=0;delay(15);P20=1;第5章 Proteus进行仿真程序编写完以后,我们先对其进行仿真,初步验证电路图和程序的可行性和正确性。5.1 Proteus简介Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是: 1 实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 2 支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。 3 提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。 具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。 proteus6.5是目前最好的模拟单片机外围器件的工具,真的很不错。可以仿真51系列、AVR、PIC等常用的MCU及其外围电路(如LCD、RAM、ROM、键盘、马达、LED、AD/DA、部分SPI器件、部分IIC器件、) 其实Proteus 与Multisim比较类似,只不过它可以仿真MCU。5.2 Proteus仿真图为了方便记录温度,在初始的时候对时间进行设置。通过S1进行时间和温度的切换,来实现对时间的调整。通过按钮S2对时间的小时和分钟进行切换。S3对时间的数值进行减一,S4对时间的数值进行加一。如下图所示: 在初始的时候对温度的上限值和下限值进行测试,以便于符合实际的生产应用。通过S1进行时间和温度的切换,来实现对温度的设置。通过按钮S2对温度的上限值和下限值进行数值设置切换。S3对温度的限制值进行减一,S4对温度的限制值进行加一。设置最高报警温度为99度,最低报警温度零度。如下图所示,当温度超过设置的报警温度的时候,会出现二级管进行发光的情况,从而提示报警。本次软
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。