1、. . . . 某 某 大 学毕业论文(设计)基于51单片机的数字温度计设计45 / 50随着科技的不断发展,电子设备的应用已经取得了非凡的成就。即使是高度集成化的今天,单片机技术依旧在我们的日常生活中占据着重要的地位。温度是日常生活、工业、医学、环境保护、化工、石油等领域最常用到的一个物理量。测量温度的基本方法是使用温度计直接读取温度。最常见到得测量温度的工具是各种各样的温度计。它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,有直观准确。本文讲叙了一种基于51系列单片机的
2、数字温度计的设计过程与仿真结果。通过Proteus画图以与Keil编程,成功的仿真出了能够实时测量温度并显示温度的数字温度计,另外还能够通过外接的键盘设置一个基准值,若温度高于基准值则会报警并且发出控制动作。关键词:单片机,温度计,仿真,AT89C52,DS18B20With the continuous development of science and technology,the application of electronic equipment has made remarkable achievementsEven the highly integrated single-ch
3、ip technology today,still in our daily life plays an important role inTemperature is the daily life, industry, medicine, environmental protection,chemical industry,petroleum and other areas of the most commonly used of a physical quantityTemperature measurement is the basic method used to directly r
4、ead temperature thermometerThe most common to measuring the temperature of the tool is various thermometerThey often graduated form high and low temperature,people must read through the scale value number to measure temperatureUsing single chip computer and a temperature sensorThe electronic type in
5、telligent thermometer can measure temperature,the temperature of the digital values,are simple and convenient,is intuitive and accurateThis article tells of a microcontroller based on the Series 51 digital thermometers design process and simulation resultsThrough the Proteus drawing and keil program
6、ming,a successful simulation of a real-time temperature measurement and display the temperature of the digital thermometer,also can pass through an external keyboard to set a baseline value,if the temperature is higher than the reference value can alarm and send out the feedback actionKeywords:Singl
7、e-chip Microcomputer,Thermometer,simulation,AT89C52,DS18B20目 录摘要IAbstractII1 绪言11 课题背景112 课题研究的目的和意义113 国外研究现状22 系统设计方案的研究21 系统的控制特点与性能要求422 系统的实现原理423 系统的实现方案分析524 方案的分析比较63 系统的硬件设计31 元件选取832 主电路搭建1333 显示电路1434 外围电路建立154 系统的软件设计41 软件Keil介绍1742 程序介绍18421 传感器程序18422 显示器程序19423 键盘程序20424 主程序205 系统仿真与结
8、果分析51 仿真软件Proteus介绍2251什么是Proteus仿真软件2252 仿真结果226 总结与展望61 总结27611 硬件方面27612 软件方面2762 展望28621 系统硬件28622 系统软件28致29参考文献30附录程序33独创性声明44工农业生产中经常需要测量温度。在设计温度测量系统时,通常需要采用电池供电的极低功耗模块。传统的温度测量手段比较多,但不论是采用分立晶体管,或者是热电偶,功耗都降不下来。为达到低功耗要求,采用一枚极低功耗的、带Flash存储器的MCU,以与热敏电阻传感器、日历时钟和液晶模块(LCD)组成测量系统。采用负温度系数(NTC)热敏电阻,具有测量
9、灵敏度高、体积小,电阻值大、价格便宜等特点,且温度围可以从-40125,精度可达1,基本上满足了行业中对温度的测量需求。系统兼顾了温度测量精度和低功耗两方面的要求。温度控制系统在国各行各业的应用虽然已经十分广泛,但从国生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。成熟的温控产品主要以点位控制与常规的PID控制器为主,它们只能适应一般温度系统控制,而用于较高控制场合的智能化、自适应控制仪表,国技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。随着我国经济的发展与加入WTO,我国政府与企业对此都非常重视,对相关企业资源进行了重组,相继建立了一
10、些国家、企业的研发中心,开展创新性研究,使我国仪表工业得到了迅速的发展。温度是日常生活、工业、医学、环境保护、化工、石油等领域最常用到的一个物理量。测量温度的基本方法是使用温度计直接读取温度。最常见到得测量温度的工具是各种各样的温度计,例如:水银玻璃温度计,酒精温度计,热电偶或热电阻温度计等。它们常常以刻度的形式表示温度的高低,人们必须通过读取刻度值的多少来测量温度。传统的方式是采用热电偶或热电阻1。利用单片机和温度传感器构成的电子式智能温度计就可以直接测量温度,得到温度的数字值,既简单方便,有直观准确。随着社会的不断发展,人们对自动化集成中调空的要求日益提高2。即使是高度集成化的今天,单片机
11、技术依旧在我们的日常生活中占据着重要的地位。科技不断发展,现代社会对各种信息参数的采集的准确度和精确度的要求都有了巨大的增长,然而如何准确却又快速的获取需要的阐述却受限于当代信息基础的发展水平。在三大信息技术中心急采集(传感器技术)、信息传递(通信技术)和信息的处理技术(计算机技术)中,传感器技术属于信息技术的前沿尖端产品,尤其是温度传感技术,在我国各个领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。单片机又称微控制器,各种单片机的部结构基本上相似
12、3,24-25。单片机自问世以来,性能不断提高和完善,其资源又能满足很多应用场合的需要,加之单片机具有集成度高、功能强、速度快、体积小、功耗低、使用方便、价格低廉等特点,因此,在工业控制、智能仪器仪表、数据采集和处理、通信系统、高级计算器、家用电器等领域的应用日益广泛,并且正在逐步取代现有的多片微机应用系统例如:单片机LPC2148目前在移动产品中有还是具有优势的4。单片机的潜力越来越被人们所重视。特别是当前用CMOS工艺制成的各种单片机,由于功耗低,使用的温度围大,抗干扰能力强,能满足一些特殊要求的应用场合,更加扩大了单片机的应用围,也进一步促使单片机性能的发展。而现在的单片机在农业上页有了
13、很多的应用。单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、存、部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机具有低的处理速度和存储容量小的特点5。单片机由芯片仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成
14、进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。早期的单片机都是8位或4位的。其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。此后在8031上发展出了MCS51系列单片机系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大的提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,
15、并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。该系统是通过CPU(51单片机)计算温度值,通过比较当前温度值与设定的温度限制围的大小关系。如果超过温度围之后,并且系统需要作出对应动作之后,单片机将会对对应
16、的外围电路发出动作信号。让报警和控制支路对温度进行报警和控制,从而提示人们或者直接作出应对动作。一般的系统都必须有几个基本的性能要求稳定性,抗干扰能力,精确度,分辨率等。对于家用温度计的精确度要求并非太高,所以该系统并未要求有较高的精确度和分辨率,所以当前定义分辨率在01。为了方便用户的使用,设定温度采用整数计数,设定值的最小该变量为1,足够满足精度的需求。本系统由单片机控制,通信信号为数字信号具有很强的稳定性和抗干扰能力。本系统是通过温度测量元件与单片机通信,在单片机中计算出对应的温度值进行控制。温度测量元件能够对温度的变化产生对应的变化,例如:热敏电阻能够在温度改变的时候电阻值会随之改变,
17、电阻值的大小与温度值有一一对应的关系,所以通过测量电阻的大小就能够得到当前的温度值;温度传感器是一种集成度较高的温度测量元件,它能够根据当前温度值产生出一串数字信号,不同的温度值得到不同的数字信号,通过对该信号的译码能够准确的获取当前的温度值。热敏电阻工作时候将长期处于不动作状态;当环境温度和电流处于C区时,热敏电阻的散热功率与发热功率接近,因而可能动作可能不动作。热敏电阻在环境温度一样时,动作时间随着电流的增加而急速缩短;热敏电阻在环境温度相对较高时具有更短的动作时间和较小的维持电流与动作电流2,37。温度传感器和热敏电阻工作原理相似,但是通过高度的集成化将测量元件输出的模拟信号经过一系列的
18、处理之后直接经过传感器输出转换好的实际温度。传感器的输出信号相对模拟信号也更加稳定和直接,更便于我们获取温度。图2.1 测量元件与温度关系图2.2 热敏电阻温度曲线按照测量元件的特性和显示元件的不同我们先指定3种不同的方案。方案1:利用热敏电阻,单片机,数码管来完成基本电路的搭建。通过测量热敏电阻两端的电压和电流,计算出热敏电阻的电阻值。然后通过查找该电阻的温度特性曲线,将热敏电阻的电阻值以与对应的温度值按照一定的方程或者直接通过数组的形式存储到CPU的存储区中。通过CPU带入该电阻值进方程计算出当前温度值,或者通过部存储器中的数组,对应表查找最接近的电阻值所对应的温度值。通过这种方式来获取温
19、度值,并且送入数码管进行显示输出。图2.3 方案1系统框图方案2:利用温度传感器,单片机以与LCD液晶显示屏来搭建基础电路。通过查阅对应温度传感器的初始化程序和温度获取程序,以与对应的数字信号值与真实值之间的比例系数。然后通过单片机与温度传感器之间进行通信,获取温度传感器中的温度信息,进行相应的数值处理,获取对应的温度值然后通过LCD液晶显示屏将对应的温度信息显示出来。LCD液晶显示屏的功能相对较为高级,不仅仅能够显示出温度值,还能够显示出英文和汉字。通过屏幕的中文说明能够直观获取各种温度的信息,以与其他相关参数。方案3:同样利用温度传感器,单片机作为主要元件,但是这里采用LED8位数码管进行
20、显示而不是LCD液晶显示屏。相对上面方案,测量的原理完全一样,不同的仅仅是显示单元。图2.4 方案2和方案3系统框图方案比较:我们主要是从测量元件开始分析。分析测量元件的方面我们主要从两个方面考虑电路复杂性和准确度。测量部分:方案1:电路结构:利用热敏电阻来测量温度值需要测量热敏电阻的电压和电流从而计算出当前的电阻值,所以需要一定的外围电路。不仅仅需要一个稳定的电源,还需要将电阻连接到一个小回路中实时测量两端的电压和电流,结构相对较为复杂,耗资也相对较高。准确度:由于电压和电流都需要我们测量,但是仪器并不是准确的,所以这里电压和电流都会存在一定的误差。当二者一起计算出电阻的时候,这个计算的电阻
21、值的误差较大。所以通过该电阻测量值获取的当前温度值也不是很准确,这样精确度相对较低。然后由于获取电压和电流都是模拟信号,而模拟信号的抗干扰能力不强导致该系统的抗干扰能力也非常有限。方案2和方案3:电路结构:利用温度传感器DS18B20作为测量元件,由于DS18B20的集成度很高导致该元器件需要的外围电路相当简单。并且DS18B20体积小,输出方便也使得该方案更加节省空间资源,需要的元器件少更加经济实惠。准确度:DS18B20是高封装的传感器件,能够直接和单片机进行串口通信,获取温度值较为简便。测温围55+125,固有测温分辨率05。通信信号为数字信号,抗干扰能力强。显示部分:方案1和方案3:使
22、用LED8位数码管显示,显示温度值清晰直观方便,可见度高,易于分辨。并且LED数码管有占用体积小,造价低等。方案2:使用LCD液晶屏显示温度,不仅仅能够显示温度,还能够显示英文和汉字,能够给使用者提供其他的信息。LCD的显示也比较清晰,虽然能够显示多方面的信息以与图案,但是相对造价很贵,体积也较LED大很多。结论:纵观全局,我们这里选用方案3。方案3不仅仅能够满足系统的基本要求(主要是性能指标),而且相对造价低。显示系统不要求显示中文,所以使用LED足够了。而且LED显示器在显示方面比LCD更加清晰直观便于分辨。显示器件:LED8位数码管,LED液晶屏12864由于本设计的需要,仅仅需要显示温
23、度值,而且在显示方面8为数码管有着直观清晰容易分辨的特性,并且综合考虑8为数码管价格便宜,体积小巧等优点,所以当前选取LED8为数码管作为显示器件。温度测量单元:热敏电阻,温度传感器温度传感器与传统的测温仪器热敏电阻比较起来有着众多优点,温度传感器读取温度方便,无需外围电路,占用资源小,精度高速度快,方便与单片机通信,体积小,价格便宜等。而热敏电阻相对较为逊色,所以本设计使用温度传感器(DS18B20)来进行仿真。核心51单片机:MCS-51系列单片机是美国Intel公司在1980年推出的高性能8位微型计算机,较原来的MCS-48系列结构更为先进,功能增强,它包括51和52两个字系列6。Int
24、el的8051单盘机系列是大家最为熟悉的8位单片机之一1,22-25,33。51单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是52系列的单片机一般不具备自编程能力。目前常用的51产品系列有:*Intel
25、的:80C31、80C51、87C51,80C32、80C52、87C52等;*ATMEL的:89C51、89C52、89C2051等;*Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品;图3.1 单片机引脚引脚信息:1-8 P10-P17:P1口的8个引脚。可作为准双向输入/输出接口。对于52系列,P10可以作为定时器/计数器2的计数脉冲输入端T2,P11可以用作定时器/计数器2的外部控制段T2EX。9 RST:复位引脚10-17 P30-P37:P3的8个引脚。除作为准双向I/O接口,还具有第二功能。P30 串行输入P31 串行输出P32 外部中断0输
26、入端P33 外部中断1输入端P34 计时器/计数器T0脉冲输入端P35 计时器/计数器T1脉冲输入端P36 片外数据存储器写选通信号输出端P37 片外数据存储器读选通信号输出端18 XTAL1 片反向放大器输入端。19 XTAL2 片反相放大器输出端。20 GND:5V电压接地端。21-28 P20-P27:P2口的8个引脚。一般可以作为准双向IO接口;在接有片外存储器或者扩展IO接口且寻址围超过256字节时,P2口可以用作8位地址总线。29 片外程序存储器读选通信号输出端,或称片外取指信号输出端。在向片外程序存储器读取指令或者常数期间,每个机器周期该信号有2次有效低电平,以通过数据总线P0口
27、读回指令或常数。30 ALE 地址所存有效信号输出端。在访问片外程序存储器期间,没机器周期该信号出现2次,其下降沿用于控制锁存P0口输出的低8位地址。31 /VDD 片外存储器选用端。该引脚有效(低电平)时只选用片外程序存储器,否则计算机上电或复位后先选用片程序存储器。32-39 P00-P07:P0口的8个引脚。在不接片外存储器与不扩展I/O接口时,可作为准双向输入/输出接口。在接有片外存储器或扩展I/O接口时,P0后分时复用为第八位地址总线和双向数据总线。40 VCC:5V电源正端口。温度传感器DS18B20:随着计算机的广泛应用,通信技术和传感技术飞跃发展7。DS18B20是美国DALL
28、AS公司生产的单线数值温度传感器芯片,具有结构简单、体积小、功耗小、抗干扰能力强、使用简单等优点8,15。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等9,18,30-35。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合2,17-20。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。技术性能描述:1独特的单线接口方式,DS18B
29、20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。2测温围55+125,固有测温分辨率05。3支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。4工作电源:35V/DC5在使用中不需要任何外围元件6测量结果以912位数字量方式串行传送7不锈钢保护管直径68适用于DN1525,DN40DN250各种介质工业管道和狭小空间设备测温9标准安装螺纹M10X1,M12X15,G1/2任选PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。特点 独特的一线接口,
30、只需要一条口线通信 多点能力,简化了分布式温度传感应用 无需外部元件可用数据总线供电,电压围为30V至55V无需备用电源测量温度围为-55至+125。华氏相当于是-67F到257华氏度-10度至+85度围精度为05。DS18B20温度传感器的北部喘粗气包括一个告诉咱村的RAM和一个非易失性的可电擦除的E2PAM9,12-13。温度传感器可编程的分辨率为912位 温度转换为12位数字格式最大值为750毫秒 用户可定义的非易失性温度报警设置应用围包括恒温控制,工业系统,消费电子产品温度计,或任何热敏感系统。描述该DS18B20的数字温度计提供9至12位(可编程设备温度读数)。信息被发送从DS18B
31、20通过1线接口,所以CPU与DS18B20只有一个一条口线连接。为读写以与温度转换可以从数据线本身获得能量,不需要外接电源。 因为每一个DS18B20的包含一个独特的序号,多个DS18B20可以同时存在于一条总线。这使得温度传感器放置在许多不同的地方。它的用途很多,包括空调环境控制,感测建筑物温设备或机器,并进行过程监测和控制。图3.2 DS18B20其他部件:显示部件:显示部件选取的LED8位数码管,简单方便,显示清晰直观,体积小,价格便宜等众多优点。驱动LED使用的是移位寄存器74HC164。74HC164:8位串入、并出移位寄存器。74HC164、74HCT164 是高速硅门CMOS器
32、件,与低功耗肖特基型TTL (LSTTL) 器件的引脚兼容。74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。 时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。图3.3
33、 74HC164如上图所示:端口1,2 是输入端口端口8 时钟输入端口9 电源端右侧端口为输出端口主电路主要是:测量电路以与单片机最小系统测量电路:由于每片DS18B20含有唯一的硅串行通信口11。加上温度传感器DS18B20的高集成度,导致测量电路非常简单。仅需要用单口与单片机通信即可。图3.4 测量电路单片机最小系统:单片机最小系统主要包括3个主要部分,复位电路,电源电路以与时钟电路。图3.5 晶振电路图3.6 复位电路显示电路:显示电路用8位数码管来显示,由于温度的家用测量精度不需要太高所以用4只8位数码管显示。但是通过单片机串口驱动一只数码管太浪费单片机端口资源,为此需要节约单片机的端
34、口资源,本次设计用移位寄存器74HC164进行控制显示。图3.7 显示电路本次设计相对较为简单,为了让设计获得更多功能,这里添加了外围的键盘以与报警和控制电路。外接键盘:如下图连线,接入的外接键盘。从上至下的5个按钮作用分别为:按钮1 设定按键,点击之后能够设定一个基准值,若温度高于该值将可能引起报警电路和控制电路的反应。再次点击之后会保存设定值。按钮2、3 选位按钮,能够左右选择当前修改值的位置,即个位、十位或者报警开启/关闭。按钮4、5 修改按钮,能够对选取的位置的值进行修改,分别+1或者-1进行改变设定温度值。使用说明:正常情况数码管显示温度值,按下按钮1此时显示为报警设定,闪烁位为当前
35、修改位。按钮2、3能够移动闪烁位改变修改数值的位置。按钮4、5能够修改闪烁位的值的大小来设定报警温度值。(注意:需要注意的是设定温度为2位数即00-99度之间,并且设定值前面还有一位改位为报警启动位,若值为1表示开启报警,0表示关闭报警。)图3.8 设置温度如上图:第一位是报警启动位:0关闭报警系统,1开启。最后2位为温度设定位:用于设定一个报警温度值(当前选取的为个位,所以个位在闪烁)。图3.9 外接键盘编程使用的软件是KEIL,编程使用C语言。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性
36、上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统26,28-29。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。1系统概述Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C
37、51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。2KeilC51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51与C51编译器编译生成目标文件(OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(ABS
38、)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,注意事项:*仿真器标配110592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。*仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使
39、用。此程序是利用C语言编写,keil生成的HEX文件。程序分多个部分:主程序,延时子程序,DS18B20初始化程序,读取温度子程序,写温度子程序,显示子程序等。DS18B20初始化程序:初始化温度传感器DS18B20。读取温度子程序:控制温度传感器DS18B20获取DS18B20测量的温度值。写温度子程序:读出的温度写入DS18B20带的寄存器中以便获取温度值。显示子程序:控制显示电路在8位数码管上显示出对应数值。延时子函数:进行延时等待一段时间。程序功能:能够实时获取温度传感器DS18B20测量的温度值,以十进制的形式进行显示。同时外围按键能够设定一个温度值以与报警开关状态来进行报警设定,例
40、如:报警开关关闭时,无论温度为多少都不会引起报警反应;报警开关开启时,若当前温度高于设定温度则蜂鸣器会发出报警声音,同时外围的MOS管会导通控制电路进行动作。421 传感器程序传感器程序是对温度传感器DS18B20进行初始化操作,读操作以与写操作的程序。是读取当前温度值必须的程序,通过该程序能够通过DS18B20和单片机通信将当前的温度信息传递给单片机。图4.1 传感器程序流程图422 显示器程序显示器程序是通过单片机部计算,将当前读出的温度值显示在显示器件上的函数。基本功能包括清除屏幕上的全部信息、显示特定信息。其主要工作原理如图42。图4.2 显示器程序流程图423 键盘程序键盘程序主要是
41、检测键盘的按键信息,并且控制给单片机。通过键盘的动作情况(电平的跳变)以与动作单元的位置而做出相对应的动作。图4.3 键盘程序流程图424 主程序主程序主要是分为4大部分:获取温度,显示温度,键盘输入以与报警控制。通过之前的传感器程序获取传感器DS18B20测量的当前温度数值,并且通过显示器程序显示当前温度值。通过键盘输入程序获取键盘动作情况并且对相应部件做出相对的动作,当判断设定值与当前值之间的大小关系之后判断是否给予动作系统做出对应的动作。图4.4 主程序流程图51什么是Proteus仿真软件Proteus是一款电路分析与实物仿真软件,运行于Windows操作系统上,具有实验资源丰富、试验
42、周期短、硬件投入少、实验过程损耗小、与实际设计洁净程度大等优点10,27-29。该软件是Lab center Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以与单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。电路开始运行:打开仿真文件,电机运行按
43、钮之后,电路开始运行,经过短暂初始化后,数码管开始发光。观察温度传感器当前测量的温度值发现,数码管当前能够正常显示当前温度传感器获取的温度值(默认设定报警温度为27,当前温度255,报警支路无动作)。从下图可发现当前温度传感器测量的温度为25.5,而数码管显示值为25.5,正好是传感器测量的温度值,说明显示温度程序无错误,系统能够按照预期的结果正确的运行。而且可以观察电路图上的电平可以发现,当前扬声器、电动机以与220V灯泡都未导通。控制回路没有工作,因为设定值为2725.5,所以控制回路不会做出任何动作。图5.1 总电路图当前温度值:图5.2 当前温度显示数值:图5.3 显示值报警系统工作情
44、况:通过仿真此时蜂鸣器不发声,电动机也不会转动。当我们按下外接键盘按钮时候可以发现显示器发生变化(此处我们按下了按钮1)。通过按键让当前数值闪烁则说明进入了设定界面,设定界面可以让你设定当前温度值以便于报警需要。图5.4(a)和图5.4(b)为闪烁期间的2连续的截图,图a为末位闪烁完毕瞬间截图,b为末位闪烁瞬间的截图。当按下按钮1显示出来的为当前的报警温度设定值:图5.4(a) 当前设定值图5.4(b) 当前设定值(闪烁中)按下按钮5后闪烁位(当前为最末位)被修改大小:图5.5 按下按钮5后的显示按下按钮3后,闪烁位改变位置(当前图片图5.6显示的为闪烁位从上图的最末尾修改为了第一位,此时第一
45、位处于闪烁状态)从而能够设定其他的值:图5.6 按下按钮3以后的显示上图显示为闪烁位移动到首位(报警控制位) 。按照图5.7修改报警的温度为16摄氏度即当温度超过16设置度相应的报警电路会动作。图5.7 修改完毕保存修改。由于当前温度为255度高于设定值(16度),并且报警控制位为1(开启),可由仿真看到,电机开始转动并且伴随着哔哔声的报警。图5.8 电机开始转动图5.8是直流电机接通并运行的截图。图5.9 报警动作图5.9为单片机动过驱动三极管来导通使得扬声器工作的电路图。从图中可以发现MOS管和三极管的触发端口电平发生变化,开始动作。仿真结束,仿真结果很理想,该仿真电路能够实现预期功能。本
46、次设计主要是通过AT89C52单片机为核心设计的一款多功能数字温度计,该温度计不仅能够实时测量温度值显示出来还能够设定一个温度上限进行监控,若温度高于设定值动作支路将作出相应动作。611 硬件方面本设计采用的是以ATMEL公司生产的ATS89C52单片机为核心的数字温度计,包含了利用温度传感器DS18B20的测量电路、外接键盘、光电耦合电路驱动、继电器驱动电路。以DS18B20为主要测量元件进行实时监控温度值。以4个8位数码管为显示器件,利用单片机的单引脚控制移位锁存器74HC164记录并控制8位数码管的显示。动作电路利用多种形式进行动作和隔离。报警电路利用三极管放大作用驱动报警器报警;电动机利用光电耦合电路进行光隔离和光控制它的动作;而电灯泡则是通过继电器进行控制和电磁隔离。612 软件方面本次设计利用C语言设计了温度的读、写程序,并利用程序实时对显示电路进行更新操作。本次设计编写了外接键盘的动作程序,能够感应外接键盘的动作情况对系统做出一系列相应的调整和动作。系统包含了通过外接键盘设定一个基准值的程序,能够比较基准值并通过比较之后的结果对外围电路产生相应的控制。621 系统硬件系