单片机综合系统实训 (论文)说明书基于DS18B20的温度控制器.doc

上传人:土8路 文档编号:9955090 上传时间:2021-04-06 格式:DOC 页数:31 大小:739.50KB
返回 下载 相关 举报
单片机综合系统实训 (论文)说明书基于DS18B20的温度控制器.doc_第1页
第1页 / 共31页
单片机综合系统实训 (论文)说明书基于DS18B20的温度控制器.doc_第2页
第2页 / 共31页
单片机综合系统实训 (论文)说明书基于DS18B20的温度控制器.doc_第3页
第3页 / 共31页
单片机综合系统实训 (论文)说明书基于DS18B20的温度控制器.doc_第4页
第4页 / 共31页
单片机综合系统实训 (论文)说明书基于DS18B20的温度控制器.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《单片机综合系统实训 (论文)说明书基于DS18B20的温度控制器.doc》由会员分享,可在线阅读,更多相关《单片机综合系统实训 (论文)说明书基于DS18B20的温度控制器.doc(31页珍藏版)》请在三一文库上搜索。

1、编号: 单片机综合系统实训 (论文)说明书题 目: 基于DS18B20的温度控制器 院 (系): 应用科技学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师: 2011 年 01 月 19 日摘 要本系统采用STC89C52单片机和温度传感器为核心,设计电子温度计。实现对温度的采集、监视和报警。在温度采集的实现中,使用了STC89C52单片机和数字温度传感器DS18B20,温度显示部分利用动态驱动4位LED数码管,实现温度的显示。温度的测度范围-55+125,通过按键设置上下限报警温度。此外,正文还介绍了集成温度传感器DS18B20的测温原理,STC89C52单片机功能和应用,给出了

2、硬件系统各个子模块电路及相关程序的程序流程图等。关键词:电子温度计,单片机,温度传感器DS18B20,LED数码管显示AbstractThe system uses STC89C52 core Single Chip Microcomputer and temperature sensors, design of electronic thermometer. To achieve the collection of temperature, monitoring, and alarm. Collection in temperature, the use of the STC89C52 mi

3、crocontroller and digital temperature sensor DS18B20, temperature display some dynamic drive four LED digital tube, to achieve the temperature of the display. Measure the temperature range of -55 +125 , through the upper and lower alarm temperature setting buttons. In addition, the text also describ

4、es the integrated temperature sensor to thank the temperature measurement device DS18B20 principle, STC89C52 SCM features and applications, given the hardware circuit and each module of the program flow chart and other related procedures.字典Keywords: Electronic thermometer,Single Chip Microcomputer,t

5、emperature sensor DS18B20, Light Emitting Diode digital display目 录引言11 系统硬件介绍21.1硬件主控芯片概述及功能介绍21.11 STC89C52单片机21.12 STC89C52主要功能特性31.13STC89C52管脚说明31.14 DS18B20数字温度传感器51.15 DS18B20功能特性51.16 DS18B20的内部结构71.17 DS18B20工作原理82 系统硬件设计92.1 单片机系统电路92.2温度采集电路102.3显示电路112.4继电器电路113系统软件设计133.1软件设计工具的介绍133.11K

6、eil编程软件133.12 Proteus仿真软件133.13Protel 99se电路原理图设计软件143.2系统调试步骤153.3系统程序设计153.31主程序流程图163.32温度转换子程序173.33读温度子程序流程图173.34显示报警程序流程图18总结:19谢 辞21参考文献22附 录23引言 温度是一种最基本的环境参数,人们的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,在医学中经常需要对人体体温进行测量,因此研究温度的测量方法和装置具有十分重要的意义。随着电子技术的发展,现在的温度控制系统功能越来越强,可靠性和准确性的要求也越来越高

7、。以前温度控制系统大部分都是基于数字电路组成的,其功能较为单一,使用起来也不够方便,制作过程复杂,而且准确性与可靠性不高,成品面积大,安装、维护困难。由于近年来单片机发展迅速,逐渐出现用单片机制作的温度显示及控制系统,制作过程简单,而且安装、维护简单。温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大折差距。成熟的温控产品主要以“点位”控制及常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。随

8、着我国经济的发展及加入世界贸易组织WTO,我国政府及企业对此都非常重视,对相关企业资源进行了重组,相继建立了一些国家、企业的研究开发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。目前,温度控制器产品从模拟、集成温度控制器发展到智能数码温度控制器。智能温控器(数字温控器)是微电子技术、计算机技术和自动测试技术的结合,特点是能输出温度数据及相关的温度控制量,适配各种控制器,并且它是在硬件的基础上通过软件来实现控制功能的,其智能化程度也取决于软件的开发水平,现阶段正朝着高精度高质量的方向发展,相信以我国的实力,温控技术在不久的将来一定会位于世界前列!因此,在这样的背下,设计出一种用普遍用于工

9、业和生活中的新型高精度电子温度计,且数字温度计能快速准确的显示读数、携带方便和不会造成环境污染等特点。它在稳定性方面比传统的温度计有着显著的优势,精度要求也能和传统的温度计相媲美。1 系统硬件介绍1.1硬件主控芯片概述及功能介绍本次设计主要采用STC89C52单片机芯片、DS18B20数字温度传感器芯片和八段数码管,下面对它们进行详细的介绍。1.11 STC89C52单片机图1.1 STC89C52引脚图STC89C52是采用可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它基于标准的MCS-5

10、1单片机体系结构和指令系统,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。STC89C52内置8位中央处理单元、8K Flash闪速存储器、 512个字节内部数据存储器RAM、8K片内程序存储器(ROM)、32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外STC89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其他功能。STC89C52有PDIP(40pin)

11、和PLCC(44pin)两种封装形式。1.12 STC89C52主要功能特性标准MCS-51内核和指令系统32个双向I/O口片内8K ROM(可扩充64KB外部存储器)3个16位可编程定时/计数器向上或向下定时计数器2568bit内部RAM(可扩充64K外部存储器)时钟频率3.512/24/33MHz6个中断源全双工串行通信口布尔处理器4层优先级中断结构兼容TTL和CMOS逻辑电平看门狗WDT2K E2PROM 存储器空闲和掉电节省模式PDIP(40)和PLCC(44)封装形式加密性强、低功耗、高速、高可靠、强抗静电、磁强干扰1.13STC89C52管脚说明P0口:P0口为一个8位漏级开路双向

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

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

14、这也是由于上拉的缘故。P3口作为89C52的一些特殊功能口,管脚备选功能 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(外部数据存储器读选通) RST(9引脚):RST(RESET)复位信号输入端,高电平有效。当单片运行时,在此引脚加上持续时间大于2个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。在单片机正常工作时,此引脚应为0.5V低电平。ALE/PROG(

15、Address Latch Enable/PROGramming,30引脚):ALE引脚出为地址锁存允许信号,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号。当单片机访问外部存储器时,ALE输出信号的负跳沿用于单片机发出的低8位地址经外部锁存器锁存的锁存控制信号。即使不访问外部锁存器,ALE端仍有正脉冲信号输出,此频率为时钟振荡器频率fosc1/6。如果想初步判断单片机芯片的好坏,可用示波器查看ALE端是否有正脉冲信号输出。如果有脉冲信号输出,则单片机基本上是好的。应当注意的是,每当MCS-51访问外部数据存储器时(即执行的是MOVX类指令),在1个机器周期中ALE只出现1次,即丢失1个

16、ALE脉冲。因此严格来说,用户不宜用ALE作精确的时钟源或定时信号。ALE端可以驱动8个LS型TTL负载。PROG为本引脚的第二功能。在对片内EPROM型单片机编程写入时,此引脚作为编程脉冲输入端。 /PSEN(Program Strobe Enable,29引脚):程序存储器允许输出控制。在单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为读外部程序存储器的选通信号。此引脚接外部程序存储器的/OE(输出允许)端。/PSEN端可以驱动8个LS型TTL负载。如果要检查一个MCS-51单片机应用系统上电后,CPU能否正常到外部程序存储器读取指令码,可用于示波器检查/PSEN端有无脉冲输出。/EA

17、 / VPP(Program Strobe Enable,31引脚):/EA功能为内外程序存储器选择控制端。当/EA引脚为高电平时,单片机访问片内程序存储器,但在PC(程序计数器)值超过OFFFH,即超出片内程序存储器的4KB地址范围时,将自动转向执行外部程序存储器内的程序。当/EA引脚为低电平时,单片机则只访问外部程序存储器,不论是否有内部程序存储器。Vpp为本引脚的第二功能。在对EPROM型单片机8751片内EPROM固化编程时,用于施加较高的编程电压。XTAL1(19引脚):接外部晶体的1个引脚。该引脚内部是1个反相放大器的输入端。这个反相放大器构成了片内振荡器。如果采用外接晶体振荡器时

18、,此引脚应接地。XTAL2(18脚):接外部晶体的另一端,在该引脚内部接至内部反相放大器的输出端。若采用外部时钟振荡器时,该引脚接收时钟振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。1.14 DS18B20数字温度传感器DS18B20是美国DALLAS公司生产的全新单线(1-wire)数字式温度传感器,不需要另外再接A/D转换器。它采用单线技术,与单片机通信只需一个引脚2(地址、命令、数据输入或输出引脚)。独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。数字温度传感器DS18B20有两种封装方式:分别是TO-92封装和8脚

19、SOIC封装如图4.2所示,图的上方是DS18B20的TO-92封装,图的下方是DS18B20的8脚SOI封装,本设计采用的是第一种DS18B20 T0-92封装形式。图1.2引脚封装图1.15 DS18B20功能特性DS18B20的引脚:1:GND(地)2:DQ(地址、命令、数据输入或输出)3:VDD(可选的+5V电源)DS18B20的温度检测范围是:55125,固有测温分辨率0.5。在-1085范围内误差为0.5。工作电源: 3.05.5V/DC。测量结果以912位数字量方式串行传送,适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温,温度传感器可编程的分辨率为91

20、2位,温度转换为12位数字格式最大值为750毫秒,用户可定义的非易失性温度报警设置。应用范围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。DS18B20的数字温度计提供9至12位可编程设备温度读数。信息从DS18B20 通过1线接口,所以中央微处理器与DS18B20只有一个一条口线连接。为读写以及温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个DS18B20可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物内温设备或机器,并进行过程监测和控制。并且同一根信息线上可挂多个D

21、S18B20而互不影响,因为每个DS18B20有惟一的63位序号,该序号存放在各自的ROM里面。温度与数据的关系如下表4.1所示:表1.1 温度与数据的关系温度数据输出(二进制)数据输出(十六进制)+12500000000 1111101000FA+2500000000 001100100032+1/200000000 000000010001000000000 000000000000-1/211111111 11111111FFFF-2511111111 11001110FFCE-5511111111 10010010FF92温度的读取:DS18B20在出厂时以配置为12位,读取温度时共读

22、取16位,所以把后11位的二进制转化为10进制后在乘以0.0625便为所测得的温度,还需要判断其正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。16位数字摆放是从低位到高位,DS18B20有两个字节的RAM用于存储检测温度数值(以补码的形式存储),其格式如下表1.2所示:表1.2 存储温度数值的格式高8位数据低8位数据符号位检测温度整数检测温度小数SSSSS262524232221202-12-22-32-4当检测到正温度时S为0,当检测到负温度时S为1。在默认情况下,DS18B20的分辨率为2-4。例如读取DS18B20的数据为000000111

23、0111010(03BAH)则实际检测到的温度为正温度(因符号位为0),数值=01110111010=026+125+124+123+022+121+120+12-1+02-2+12-3+02-4=59.375。1.16 DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器,如图4.3所示。64位ROM的结构开始8位是产品类型的编号,接下来是每一个器件的惟一序号,总共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以连接到一根数据线上进行通信的原因。温度报警触发器TH(保存上限值)和T

24、L(保存下限值),可通过软件写入报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存器RAM和一个非易失性的电可擦除的EERAM。高速暂存RAM的结构为8字节的存储器,其结构如表4.3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器器中的分辨率转换为相应精度的温度数值。该字节各位定义如表4.4所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20在出厂时就被设置为0,R1和R0决定温度转换的精

25、度位数,来设置分辨率。图1.3 DS18B20内部结构图表1.3 高速暂存器RAM的结构 表1.4 DS18B20的字节定义温度LSB温度MSBTH用户字节1TL有户字节2配置寄存器保留保留保留CRCTMR1R0111111.17 DS18B20工作原理DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率的不同而不同,且温度转换时的延时时间由2s减为750ms。 DS18B20温度传感器的低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄

26、存器被预置在55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度的温度值。DS18B20温度传感器中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。测温原理图如图1.4所示:图1.4 测温原理图2 系统硬件设计本设计的整体电路是由单片机系统模块、晶振时钟电路模块、复位电路模块、温度检测系统模块、显示电路模块、键盘控制模块

27、和电源电路模块组成。各部分电路共同作用,完成系统的温度检测及显示。2.1 单片机系统电路MCS-51单片机各功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。常用的时钟电路设计有两种方式,一种是内部时钟方式,另一种方式为外部时钟方式。1、内部时钟方式MCS-51内部有一个用于构成振荡器的高增益的反相放大器,该高增益反相放大器的输入端为芯片引脚XATL1,输出端为引脚XTAL2。这两个引脚跨接石英晶振荡器(简称晶振)和微调电容,就构成一个稳定的自激振荡器,图3.1是MCS-51内部时钟方式的振荡器电路

28、。图2.1 内部时钟方式电路电路中的电容C1和C2典型值通常选择为30pF左右。对外接电容的值虽然没有严格要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。晶振的振荡频率的范围通常是在1.2MHz12MHz之间。晶振的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。但反过来运行速度快对存储器的速度要求也就相对高,对印制电路板(也称印刷电路板)的工艺要求也高,即要求线间的寄生电容要小;晶振和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠地工作。为了提高温度稳定性,应采用温度稳定性能好的电容。电路中的电容C1和C2典型值通常选择为

29、30pF左右。对外接电容的值虽然没有严格要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。晶振的振荡频率的范围通常是在1.2MHz12MHz之间。晶振的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。但反过来运行速度快对存储器的速度要求也就相对高,对印制电路板(也称印刷电路板)的工艺要求也高,即要求线间的寄生电容要小;晶振和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠地工作。为了提高温度稳定性,应采用温度稳定性能好的电容。图2.2 单片机复位电路上电自动复位是通过外部复位电路的电容来实现的。当电源接通时只要Vcc的上升时间不

30、超过1ms,就可以实现自动上电位。当时钟频率选用6MHz时,C取22uF,R取1K。除了上电复位外,有时还需要按键手动复位。按键手动复位有电平方式和脉冲方式两种。通常实际运用中大都采用的是按键与上电复位电路,电平复位是通过RST端经电阻与电源Vcc接通而实现的。在单片机运行期间,还可以利用按键完成复位操作。实际应用中如果单片机断电后,有可能在较短的时间内再次加电,可以在R1上并接一个放电二极管,这样可以有效的提高此种情况下复位的可能性。2.2温度采集电路图2.3 温度采集电路温度传感器DS18B20芯片的数据端连接到单片机的P3_4端,向单片机传送温度信号,它的1引脚接地,3引脚和数据端之间接

31、一个电阻后接电源VCC,这样实现对温度的检测。2.3显示电路系统采用4个八段数码管对温度进行显示。4个数码管拼接成4位的LED数码管显示器,它们有公共的段选线(a,b,c,d,e,f,g,dp),每一位数码管有各一个位选线,控制该LED显示位的亮与暗。具体的显示电路如图3.4所示。由下图可知,4位LED数码管的段选线是由STC89C52的P0口控制,又因为LED显示段码时至少需要20mA,所以在段选线与单片机引脚之间加上拉电阻驱动数码管的段。同时,LED显示器的位选线是由PNP三极管来控制,其中三极管充当的是开关作用,它主要是工作在饱和区和截止区。三极管的基极接到单片机的I/O口,集电极连接数

32、码管的位选端,基极接Vcc。图2.4 显示电路2.4继电器电路在各种自动控制设备中,都存在一个低压的自动控制电路与高压电气电路的互相连接问题,一方面要使低压的电子电路的控制信号能够控制高压电气电路的执行元件,如电动机、电磁体、电灯等;另一方面又要为电子线路的电气电路提供良好的电隔离,以保护电子电路和人身的安全,电磁式继电器便能完成这一桥梁作用。电磁继电器是在输入电路内电流的作用下,由机械部件的相对运动产生预定响应的一种继电器。它包括直流电磁继电器、交流电磁继电器、磁保持继电器、极化继电器、舌簧继电器,节能功率继电器。(1) 直流电磁继电器:输入电路中的控制电流为直流的电磁继电器。(2) 交流电

33、磁继电器:输入电路中的控制电流为交流的电磁继电器。(3) 磁保持继电器:将磁钢引入磁回路,继电器线圈断电后,继电器的衔铁仍能保持在线圈通电时的状态,具有两个稳定状态。(4) 极化继电器:状态的改变取决于输入激励量极性的一种直流继电器。(5) 舌簧继电器:利用密封在管内,具有触点簧片和衔铁磁路双重作用的舌簧的动作来开、闭或转换电路的继电器。(6) 节能功率继电器:输入电路中的控制电流为交流的电磁继电器,但它的电流一般为30-100A,体积小,具有节电功能。电磁式继电器一般由控制线圈、铁芯、衔铁、触点簧片等组成,控制线圈和接点组之间是相互绝缘的,因此,能够为控制电路起到良好的电气隔离作用。当我们在

34、继电器的线圈两头加上其线圈额定的电压时,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会议在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而达到了在电路中的接通、切断的开关目的。在本系统中,采用的是直流电磁式继电器,由PNP三极管驱动继电器,继电器的动作由单片机的P1.3端控制。具体的继电器电路图如2.5所示:图3.6 继电器电路3系统软件设计3.1软件设计工具的介绍在本次的设计中采用了Keil C51编程软件、

35、Protues仿真软件和Protel 99SE电路图绘制软件。其中Keil C51软件对系统程序进行编辑、编译、连接、执行,经过设置创建生成一个.hex文件,然后将其生成的文件加载到Protues仿真电路图中进行电路的仿真。3.11Keil编程软件Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。另外重要的一点,只要看一下编译后生成的

36、汇编代码,就能体会到 Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。Keil编译软件用来编程,可以用汇编语言也可以用C语言来进行编程实现某些功能。当打开keil后,首先新建一个工程保存在相应位置(在保存时系统会弹出一个选择单片机CPU的型号的窗口,一般情况下选择ATMEL公司的芯片),然后再新建一个文本,将你已经编好的程序填写到这个文本中或是在这个文本进行编写程序,之后再将其保存为一个以.Asm或是.c作为后缀名的文本,再在我们建立的组中将程序文件添加到工程中,再经过编译,然后生成.Hex文件再编译,若提示没有出现错

37、误errors(不含警告warnings)则说明调试成功,反之则应该对程序进行检查分析,直到调试成功为止。C51 工具包的整体结构,如图5.1所示,其中 uVision 与 Ishell 分别是 C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其他编辑器编辑C源文件或汇编(.asm)源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,同时也可以与库文件一起经 L51 连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的.He

38、x文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。3.12 Proteus仿真软件Proteus ISIS是由英国Labcenter electronics公司开发的电路分析与实物仿真软件,是一种EDA工具软件。Proteus安装以后,主要由两个程序组成:ARES和ISIS。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件具有以下特点:(1)实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真

39、、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;还有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片,当元器件库没有所需要的芯片时,则可以通过加载相对应的元器件库,然后从库中就能够找到相应的元器件了。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软

40、件编译和调试环境,如Keil C51 uVision2等软件。(4)具有强大的原理图绘制功能。总体上分析知,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。下面将介绍Proteus ISIS软件的工作环境和一些基本操作。由于安装Proteus ISIS软件较为简单,在这儿就不具体的介绍如何去安装该软件程序了,主要介绍在安装完成后如何更好的使用Proteus ISIS。安装好软件程序后桌面上会出现快捷图标,双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus 7 Professional” “ISIS 7 Professi

41、onal”。3.13Protel 99se电路原理图设计软件Protel 99SE是澳大利亚Protel Technology公司推出的基于Windows平台下的EDA(Electronic Design Automation)电子辅助设计软件。Protel 99SE集在了一系列的电路设计工具,如原理图设计工具、PCB设计工具及自动布线工具等,同时引入了全新的文件管理方式和网络设计机制,可以真正的实现电路高效并行设计。Protel 99SE主要由5个功能模块组成电路原理图设计模块;PCB设计模块;自动布线模块;可编程逻辑器件(PLD)模块;电路仿真模块;通常情况下,后3个模块为前两个模块的设计

42、工作服务的。电路原理图设计模块具有强大且灵活的编辑功能、电气栅格特性、电气检查功能、报表生成功能和支持层次化和模块化设计方式等。同时每一个设计对象都有自己特定的属性,鼠标左键双击任何一设计对象,在弹出的属性对话框中都可以进行相关属性的编辑修改,并可以通过强大的全局编辑功能,修改一类对象的属性。另外,它还提供了丰富的元件库,即使设计者在系统自带的元件库中找不到所需元件,也可以通过功能强大的库元件编辑功能手创建库元件。PCB设计模块同电路原理图设计模块一样,PCB设计模块也具有强大的编辑功能,如多种类型的栅格、库元件创建、修改功能和报表输出功能等,除此之外,还具有分层计和编辑、设计规则检查、支持制

43、版输出和电路板数控加工代码文件的生成等特点。自动布线模块是为PCB设计模块服务的,可以实现电路板布线的自动化。它作为一个服务器程序,内嵌于PCB设计组件中。自动布线要模块基于人工智能技术,它可以自动对PCB板进行优化设计,可以同时完成全部信号的自动布线。可编程逻辑器件模块中设计者一般采用两种方法进行可编程逻辑器件的设计,一是使用PLD库元件来绘制PLD器件内部的逻辑功能原理图;二是采用CUPL语言来编写PLD逻辑描述文件。电路仿真模块可以帮助设计者检查电路功能是否满足要求,并可以减少设计中的错误,确保电路的正确性。3.2系统调试步骤1、打开电路仿真的应用程序ISIS Professional,

44、在其中选择该设计所需的的单片机或是元件,然后将其放置到要画图的区域中,你可以双击该元件改变它相应的属性及参数。2、用带电气性的连接线来连接各个元件,从而构成了完整的电路图并保存在为.DSN为后缀名的文件,放在你所需的地方。3、打开程序仿真或调试应用程序Keil uVision2, 首先要建一个工程,再将程序添加到该工程中,再保存。4、再进行程序的编译与连接,检查程序是否正确,如果不正确,则进行分析直到正确为止;如果正确,则可以生成.hex文件。5、点击project菜单,选择options for target项或是直接点击常用工具栏中的图标打开对话框进行设置, 则就可以生成.hex文件了。6

45、、再打开前面所绘制的电路仿真图文件(假设文件名为:fangzhen.DSN),然后双击该电路图中的主的单片机,同时弹出一个对话框,在对话框中进行选择所生成的.hex文件,并还可以进行单片机的时钟频率设置,再单击确定。7、点击运行检查是否可以运行正确。若完成了以上步骤后,仿真并不能正确的运行,这就要求我们再经过仔细认真的检查整个硬件电路是否连接地正确,通过不断努力检查、修改使得电路达到完美的地步;同时,打开Keil C编程软件修改程序(结合仿真电路的设计),然后再通过编译、连接、调试,生成.Hex文件,将该文件加载到电路设计中的主控芯片(即单片机)上,再进行运行仿真。3.3系统程序设计本次系统程

46、序的设计主要包括主程序、读温度子程序、温度转换命令子程序、显示报警子程序、键盘控制子程序等等。下面将对部分子程序进行详细说明。3.31主程序流程图本系统的功能主要是完成温度的实时显示,在测量温度之前先对系统进行初始化,然后再经过DS18B20温度传感器检测温度,将检测到的温度值进行读取与处理后,最终进行显示温度过。其程序流程图如图5.4所示:系统初始化开 始启动DS18B20读取温度值处理温度值显示温度与温度上下限比较?报警提示YN图3.1 主程序流程图3.32温度转换子程序温度转换子程序主要是发出温度过转换开始命令,系统采用12分辨率时转换时间最大为750ms。在本次程序设计中用地延时法等待温度转换的完成,其温转换子程序流程图如图3.2所示:发出DS18B20复位命令发出跳过ROM命令温度转换结 束图3.2 温度转换子程序流程图3.33读温度子程序流程图读出温度子程序的主要功能是读出RAM中的9个字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。(高速暂存器RAM的第6

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

当前位置:首页 > 社会民生


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