《基于51单片机的水温自动控制系统应用》毕业设计(论文)_第1页
《基于51单片机的水温自动控制系统应用》毕业设计(论文)_第2页
《基于51单片机的水温自动控制系统应用》毕业设计(论文)_第3页
《基于51单片机的水温自动控制系统应用》毕业设计(论文)_第4页
《基于51单片机的水温自动控制系统应用》毕业设计(论文)_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

江西现代职业技术学院 毕业设计(论文)题目:基于51单片机的水温自动控制系统应用姓 名: xxxxxxxx 学 院: 信息工程学院 专 业: 电子信息工程 班 级:11电子信息工程技术班 指导老师: xxxxxx 提交时间: 2013年10月29日 论文题目:基于51单片机的水温自动控制系统应用 姓 名:xxxxxx 班 级:11电子信息工程 指导教师:xxxxx摘要:为了实现高精度的水温控制,本文介绍了一种以AT89c51单片机为控制核心、以一种新型的可编程温度传感器(DS18B20)为温度采集器件来实现的水温控制系统。文章着重介绍核心器件的选择、各部分电路及软件的设计。AT89c51单片机完善的内部结构、优良的性能和强大的中断处理能力,决定了该控制系统的特点:电路结构简单、程序简短、系统可靠性高等。同时,采用新型的可编程温度传感器(DS18B20),不需要复杂的信号调理电路和 A/D转换电路,能直接的与单片机完成数据的采集和处理,实现方便、精度高,根据不同需要用于各种场合。 关键词:AT89c51单片机 DS18B20 控制目录一、概述1(一)单片机的基本知识11.单片机的产生与发展12.单片机的应用与展望2(二)水温自动控制系统相关的发展历程41.传统水温控制系统及其特点42.基于单片机控制的水温控制系统及其特点43.国内国外单片机温度控制系统发展历程4(三)温度控制系统的目的与功能61.温度控制系统的目的62.温度控制系统完成的功能6二、系统方案6(一)水温控制系统的设计任务和要求6(二)系统总体方案的选择7三、元器件选型及硬件电路设计9(一)元器件选型91.温度传感器92.键盘123.数码管124.继电器135.AT89C51单片机13(二)硬件电路设计171.温度采集电路172.键盘电路173.LED显示器工作原理184.数码管显示原理图电路195.输出驱动电路206.蜂鸣报警电路207.无水检测电路218.溢流控制电路219.掉电保护功能电路22四、系统软件设计23(一)使用软件简介231.Keil软件232.Proteus软件23(二)程序结构说明24(三)程序流程图241.温度采集处理程序242.操作指引253.主程序254. 键盘程序25五、实验测试27(一)数码管显示“1234”27(二)键盘及数字显示结合27(三)整机调试27六、结论与体会29参 考 文 献30基于51单片机的水温自动控制系统应用一、概述温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,过低的温度或过高的温度都会使水资源失去应有的作用,从而造成水资源的巨大浪费。特 别是在当前全球水资源极度缺乏的情况下,我们更应该掌握好对水温的控制,把身边的水资源好好地利用起来。在现代冶金、石油、化工及电力生产过程中,温度是极为重要而又普遍的热工参数之一。在环境恶劣或温度较高等场合下,为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要加热炉炉温进行测、显示、控制,使之达到工艺标准,以单片机为核心设计的炉温控制系统,可以同时采集多个数据,并将数据通过通讯口送至上位机进行显示和控制。那么无论是哪种控制,我们都希望水温控制系统能够有很高的精确度(起码是在满足我们要求的范围内),帮助我们实现我们想要的控制,解决身边的问题。在计算机没有发明之前,这些控制都是我们难以想象的。而当今,随着电子行业的迅猛发展,计算机技术和传感器技术的不断改进,而且计算机和传感器的价格也日益降低,可靠性逐步提高,用信息技术来实现水温控制并提高控制的精确度不仅是以达到的而且是容易实现的。用高新技术来解决工业生产问题,排除生活用水问题实施对水温的控制已成为我们电子行业的任务,以此来加强工业化建设,提高人民的生活水平。(一)单片机的基本知识1.单片机的产生与发展单片机出现的历史并不长,但发展十分迅猛,它的产生与发展和微处理器的产生与发展大体同步。自1971年美国Intel公司首先推出4位微处理器以来,它的发展到目前为止大致可分为5个阶段:第1阶段(19711976):单片机发展的初级阶段。1971年11月Intel公司首先设计出的4位微处理器Intel 4004,并配有RAM、ROM和移位寄存器,构成了一台MCS-4微处理器,而后有推出8位微处理器Intel 8008,以及其它各公司相继推出的8位微处理器。它们虽说还不是单片机,但从此拉开研制单片机的序幕。第2阶段(19761980):低性能单片机阶段。这阶段的单片机采用将CPU与计算机外围电路集成到一块芯片上的技术,标志着单片机与通用CPU的分道扬镳,在构成新型工业微控制器方面取得了成功,为进一步发展单片机开辟了成功之路。第3阶段(19701983):高性能单片机阶段。这一阶段推出的高性能8位单片机普遍带有串行口,有多级中断处理系统,多个16位定时器/计数器。片内RAM、ROM的容量加大,且寻址范围可达64 KB,个别片内还带有A/D转换接口。这类单片机拓宽了单片机的应用范围,使之能用于智能终端、局部网络的接口等。第4阶段(198380年代末):16位单片机阶段。1983年Intel公司又推出了16位单片机MCS-96系列,由于其采用了最新的制造工艺,使芯片集成度高达12万只晶体管/片。CPU为16位,支持16位算术逻辑运算,并具有32位除16位的除法功能;片内RAM、ROM的容量更进一步增大;具有8个中断源;除两个16位定时/计数器外,还可设定4个软件定时器;运算速度和控制功能也大幅度提高,具有很强的实时处理能力。第4阶段(90年代):单片机在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。如:CPU的位数有8位、16位、32位,而结构上更进一步采用双CPU结构或内部流水线结构,以提高处理能力和运算速度;增加了新的功能部件;半导体工艺的不断改进,使芯片向高集成化、低功耗方向发展等等。以上这些方面的发展,是单片机在大量数据的实时处理、高级通信系统、数字信号处理、复杂工业过程控制、高级机器人以及局域网络等方面得到大量应用。2.单片机的应用与展望由于单片机具有体积小、重量轻、价格便宜、功耗低、控制功能强及运算速度快等特点,因而在许多方面得到广泛应用。单片机的主要应用领域有:(1) 测控系统。用单片机可以构成各种不太复杂的工业控制系统、自适应控制系统、数据采集系统等,达到测量与控制的目的。如一般温度控制、液面控制、简单生产线顺序控制等。(2) 智能仪表。用单片机改造原有的测量、控制仪表,促进仪表向数字化、智能化、多功能化、综合化、柔性化方向发展。如:温度、压力等的测量、显示、控制仪表,通过采用单片机软件编程技术,不仅能完成测量,而且还具有运算、误差修正等功能,集测量、处理、控制功能于一体。(3) 机电一体化产品。单片机与传统的机械产品结合,使传统机械产品结构简化,控制智能化。(4) 智能接口。在计算机控制系统,特别是在较大型的工业测、控系统中,用单片机进行接口的控制与管理,加之单片机与主机的并行工作,大大提高了系统的运行速度。(5) 智能民用产品。如在家用电器、玩具、游戏机、办公设备、厨房设备等许多产品中,单片机控制器的引入,不仅使产品的功能大大增强,性能得到提高,而且获得了良好的使用效果。(6) 功能集散系统。多功能集散系统是为了满足工程系统多种外围功能的要求而设置的多机系统。(7) 并行多机控制系统。并行多机控制系统主要解决工程应用系统的快速性问题,以便构成大型实时工程应用系统。(8) 局部网络系统。单片机网络系统的出现,使单片机应用进入了一个新的领域,单片机主要用于系统中的通信控制,以及构成各种测、控用子级系统。现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:低功耗CMOS化、微型单片化、主流与多品种共存。(二)水温自动控制系统相关的发展历程1.传统水温控制系统及其特点传统的水温控制模式有很多种,如:恒温法,比例式,积分式及其组合的调节方法等等.其中有的方法达到热平衡需要的时间长,但是其空温精度很高,而有的是达到热平衡的时间短,但其控温精度却不够高.具有成本高,智能化不高等显著特点.2.基于单片机控制的水温控制系统及其特点如果应用设计选用单片机作为控制核心,使水温测控系统中的测量和控制智能化,由于单片机需要用到软件来控制,所以具有成本投入低,精度高,智能控制程度高等优点.用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统。3.国内国外单片机温度控制系统发展历程自70年代以来,由于工业过程控制的需要,特别是在电子技术的迅猛发展,以及自动控制理论和设计方法发展的推动下,国外温度控制系统发展迅速,并在智能化自适应参数自整定等方面取得成果。在这方面以日本、美国、德国、瑞典等国技术领先,并且都生产出了一批商品化的性能优异的温度控制器及仪器仪表,在各行业广泛应用。 目前,国外温度控制系统及仪表正朝着高精度智能化、小型化等方面快速发展。 温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同国外的日本、美国、德国等先进国家相比,仍然有着较大的差距。目前,我国在这方面总体技术水平处于20世纪80年代中后期水平。成熟产品主要以“点位”控制及常规的PID控制器为主,它只能适应一般温度系统控制,难于控制滞后复杂时变温度系统控制,而且适应于较高控制场合的智能化、自适应控制仪表国内技术还不十分成熟,形成商品化并广泛应用的控制仪表较少。现在,我国在温度等控制仪表业与国外还有着一定的差距。温度、压力,流量和液位是四种最常见的过程变量,其中温度是一个非常重要的过程变量,因为它直接影响燃烧、化学反应、发酵、烘烤、煅烧、蒸馏、浓度、挤压成形,结晶以及空气流动等物理和化学过程。温度控制在工业领域应用非常广泛,由于其具有工况复杂、参数多变、运行惯性大、控制滞后等特点,它对控制调节器要求较高。温度控制不好就可能引起生产安全,产品质量和产量等一系列问题。尽管温度控制很重要,但是要控制好温度常常会遇到意想不到的困难。随着嵌入式系统开发技术的快速发展及其在各个领域的广泛应用,人们对电子产品的小型化和智能化要求越来越高,作为高新技术之一的单片机以其体积小、价格低、可靠性高、适用范围大以及本身的指令系统等诸多优势,在各个领域、各个行业都得到了广泛应用。本文主要介绍单片机温度控制系统的设计过程,其中涉及系统结构设计、元器件的选取、程序的调试和系统参数的整定。在系统构建时选取了AT89C51芯片作为该控制系统的核心,温度信号由新型的可编程温度传感器(DS18B20)提供。通过软件实现对水温的控制,使用继电器作执行部件。系统控制对象为1升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变,具有较好的快速性与较小的超调。该系统为一实验系统,要求系统有控制能力,实现对主要可变参数的实时监控。使用软件编程既减少了系统设计的工作量,又提高了系统开发的速度,使用软件还可以提高所设计系统的稳定性,避免了因个人设计经验不足而产生过多的系统缺陷。(三)温度控制系统的目的与功能1.温度控制系统的目的本设计的内容是温度测试控制系统,控制对象是温度。温度控制在日常生活及工业领域应用相当广泛,比如温室、水池、发酵缸、电源等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止发生意外。针对此问题,本系统设计的目的是实现一种可连续高精度调温的温度控制系统,它应用广泛,功能强大,小巧美观,便于携带,是一款既实用又廉价的控制系统2.温度控制系统完成的功能本设计是对温度进行实时监测与控制,设计的温度控制系统实现了基本的温度控制功能:当温度低于设定下限温度时,系统自动启动加热继电器加温,使温度上升,同时绿灯亮。当温度上升到下限温度以上时,停止加温;当温度高于设定上限温度时,系统自动启动风扇降温,使温度下降,同时红灯亮。当温度下降到上限温度以下时,停止降温。温度在上下限温度之间时,执行机构不执行。三个数码管即时显示温度,精确到小数点一位。二、系统方案(一)水温控制系统的设计任务和要求该系统为一实验系统,系统设计任务:设计一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动调整,以保持设定的温度基本不变。利用单片机AT89C51实现水温的智能控制,使水温能够在一定温度之间实现控制温度调节。利用仪器读出水温,并在此基础上将水温调节到我们通过键盘输入的温度(其方式是加热或降温),而且能够将温度显示在我们的七段发光二极管板上。系统设计具体要求:(1)由键盘设定温度,设定范围为0一99,最小区分度为l,标定温差1。(2)温度低于设定温度值时加热,温度高于设定值时降温(3)用十进制数码显示水的实际温度。(4)实现容器中无水时报警,及溢流控制等。(5)环境温度降低时(例如用电风扇降温)温度控制约静态误差1(二)系统总体方案的选择方案一 (如图2-1)此方案是传统的一位式模拟控制方案,选用模拟电路,用电位器设定给定值,反馈的温度值和设定值比较后,决定加热或不加热。其特点是电路简单,易于实现,但是系统所得的结果精度不高并且调节动作频繁,系统静差大,不稳定。系统受环境的影响大,不能实现复杂的控制算法,不能用数码管显示,不能用键盘设定。数据采集信号放大温度预置比较器信号放 大固态继电器负载图2-1 模拟电路一方案二 (如图2-2)此方案是传统的二位式模拟控制方案,其基本思想与方案一相同,但由于采用上下限比较电路,所以控制精度有所提高。这种方法还是模拟控制方法,因此也不能实现复杂的控制算法使控制温度做的更高。而且仍不能用数码管显示和键盘设定。信号采集信号放大上限比较下限比较信号处理固态继电器负载温度预置图2-2 模拟电路二方案三 (如图2-3)此方案采用AT89C51单片机系统来实现。单片机软件编程灵活,自由度大,可用软件编程实现各种控制算法和逻辑控制。单片机系统可用数码管显示水温的实际值,能用键盘输入设定值等功能。本方案选用了AT89C51芯片,不需要外扩展存储器,可使系统整体结构更为简单。考虑使用温度传感器,结合单片机电路设计,采用一只DS18B20温度传感器,直接读取被测温度值,之后进行转换,依次完成设计要求。单片机键盘输入温度传感器无水检测电源数码管显示加热装置降温装置蜂鸣报警溢流控制图2-3 温度控制系统框图方案论证 方案一和方案二是传统的模拟控制方式,而模拟控制系统难以实现复杂控制规律,控制方案的修改也较麻烦。而方案三是采用以AT89c51为控制核心的单片机控制系统,尤其对温度控制,可以达到模拟控制所达不到的控制效果,并且可以实现显示、键盘设定,报警等功能。大大提高的系统的智能化,也使得系统所测结果的精度大大提高了。所以本次设计采用方案三。三、元器件选型及硬件电路设计(一)元器件选型1.温度传感器目前市场上温度传感器繁多,在此我们提出了以下几种选取方案:方案一:选用铂电阻温度传感器,此类温度传感器的我在各方面都比较优秀,但其成本较高。方案二:采用热敏电阻,选用此类传感器虽然价格便宜,但热敏电阻的非线性特性会影响系统的精度。方案三: 温度传感器选用可编程温度传感器(DS18B20)芯片。DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。比较以上三种方案,方案三具有明显的优点,因此选用方案三1)、DS18B20产品的特点 (a)、只要求一个端口即可实现通信。 (b)、在DS18B20中的每个器件上都有独一无二的序列号。 (c)、实际应用中不需要外部任何元器件即可实现测温。 (d)、测量温度范围在55。C到125。C之间。 (e)、数字温度计的分辨率用户可以从9位到12位选择。 (f)、内部有温度上、下限告警设置2)、DS18B20的引脚介绍 DS18B20可编程温度传感器有3个管脚。(如图3-1) GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3O55 V。本文使用外部电源供电。 图3-1 DS18B20管脚3)、DS18B20温度传感器简介DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温。这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。数字温度传感器DS18B20把采集到的温度通过数据引脚传到单片机的P1.0口,单片机接受温度并存储。此部分只用到DS18B20和单片机,硬件很简单4)、DS18B20的内部结构主要由4部分组成:64位光刻R0M、温度传感器、非易失性的温度报警触发器TH和TL、配置寄存器。R0M 中的64位序列号是出厂前被光刻好的,他可以看作是该DSISB20的地址序列码,每个DSI8B20的64位序列号均不相同。高低温报警触发器TH 和TL,配置寄存器均由一个字节的E2PROM组成,使用一个存储器功能命令可对 TH,TL写入。配置寄存器中R1,R0决定温度转换的精度位数:R1R000,9位精度,最大转换时间为93.75 ms;R1R0 = 01,10位精度,最大转换时间为187.5 ms;R1R0 = 10,11位精度,最大转换时间为375 ms;R1R0 =11,12位精度,最大转换时间为750 ms;未编程时默认为12位精度。5)、DS18B20的使用方法由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89c51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的复位时序(如图3-2)图3-2 DS18B20的复位时序图DS18B20的读时序(如图3-3)对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时序是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20要完成一个读时序过程,至少需要60us才能完成。 图3-3 DS18B20的读时序图DS18B20的写时序(如图3-4)对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。图3-4 DS18B20的写时序图2.键盘键盘选用轻触开关,只用三个键来输入,它们的功能分别为“加一”,“减一”和“确认”三个功能按键,详细电路和程序见后面章节。3.数码管1) LED数码管的结构LED数码管是由发光二极管构成的,亦称半导体数码管. 将条状发光二极管按照共阴极(负极)或共阳极(正极)的方法连接,组成8字,再把发光二极管另一电极作笔段电极,就构成了LED数码管.若按规定使某些字段上的发光二极管就能显示从09的一系列数字。同荧光数码管、辉光数码管(NRT)相比它具有:体积小、功耗低、耐震动、寿命长、亮度高、单色性好、发光响应的时间短,能与TTL,CMOS电路兼容等的数显器件。2) LED数码管的管脚排列本次设计采用共阴极的LED数码管,其管脚排列(如图3-5)所示。 图3-5 共阴极数码管及其管脚排列4.继电器 本系统利用继电器的吸合与否来控制加热装置和降温装置,实现水温的自动化控制。本次设计采用型号为JRC-21F的继电器。其特点有:1).超小型,低功耗;2).触点型式:1H,1Z(1A.AC);3).触点负载:2A,120VAC;4).外型尺寸:15.7X10.4X11.45.AT89C51单片机AT89C51的特点AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-Fal shProgrammable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51的指令集和输出管脚相兼容。该控制器将多功能8位CPU和闪烁存储器组合在单个芯片中,是一种高效微控制器171,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。如图3-6所示 ,AT89C51的主要特性如下:(1)能与MCS-51兼容(2)有一个4K字节可编程闪烁存储器(3)使用寿命比较长一般为1000写/擦循环(4)数据保留时间长般为10年(5)全静态工作:OHz-24Hz(6)三级程序存储器锁定(7) 128*8位内部RAM(8) 32条可编程I/0线(9)两个16位定时器/计数器 (10) 5个中断源(11)可编程串行通道 (12)低功耗的闲置和掉电模式(13)片内振荡器和时钟电路 AT89C51的引脚功能与功能描述 图3-6 AT89C51的引脚图引脚说明:VCC:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,作为输出口用时,每个引脚能驱动8个TTL逻辑门电路。当对0端口写入1时,可以作为高阻抗输入端使用。当P0口访问外部程序存储器或数据存储器时,它还可设定成地址数据总线复用的形式。在这种模式下,P0口具有内部上拉电阻。在Flash编程时,P0口接收指令字节,同时输出指令字节在程序校验时。程序校验时需要外接上拉电阻。P1口:P1口是一带有内部上拉电阻的8位双向I/O口。P1口的输出缓冲能接受或输出4个TTL逻辑门电路。当对P1口写1时,它们被内部的上拉电阻拉升为高电平,此时可以作为输入端使用。当作为输入端使用时,P1口因为内部存在上拉电阻,所以当外部被拉低时会输出一个低电流(IIL)。另外,P1.0和P1.1还可以作为定时/计数器2的外部计数输入(P1.0/T2)和触发输入(P1.1/T2EX),如(表1)所示。P1口在程序编写和校验期间同时接收低8位地址。 表1 端口号功能端口号功能特性P1.0T2(外部计数器输入到定时/计数器2)时钟输出P1.1T2EX(定时/计数器2捕获/重装载触发和方向控制)P2口:P2是一带有内部上拉电阻的8位双向的I/O端口。P2口的输出缓冲能驱动4个TTL逻辑门电路。当向P2口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P2口在访问外部程序存储器或16位地址的外部数据存储器(例如MOVX DPTR)时,P2口送出高8位地址数据。在这种情况下,P2口使用强大的内部上拉电阻功能当输出1时。当利用8位地址线访问外部数据存储器时(例MOVX R1),P2口输出特殊功能寄存器的内容。当Flash编程或校验时,P2口同时接收高8位地址和一些控制信号。P3口:P3是一带有内部上拉电阻的8位双向的I/O端口。P3口的输出缓冲能驱动4个TTL逻辑门电路。当向P3口写1时,通过内部上拉电阻把端口拉到高电平,此时可以用作输入口。作为输入口,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出电流(IIL)。P3口同时具有AT89C51的多种特殊功能,具体如下表2所示。此外,P3口还用于接收一些用于控制Flash编程和校验的控制信号。 表2 P3口的第二功能端口引脚第二功能P3.0RXD (串行输入口)P3.1TXD(串行输出口)P3.2 (外部中断0)P3.3(外部中断1)P3.4T0(定时器0)P3.5T1(定时器1)P3.6(外部数据存储器写选通)P3.7(外部数据存储器都选通)RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期的高电平将使单片机复位。ALE/:当访问外部存储器时,地址锁存允许是一输出脉冲,用以锁存地址的低8位字节。当在Flash编程时还可以作为编程脉冲输出。一般情况下,ALE是以晶振频率的1/6输出,可以用作外部时钟或定时目的。但也要注意,每当访问外部数据存储器时将跳过一个ALE脉冲。如有必要,通过向SFR的8EH单元输入0能使ALE停止工作。该位置位后只有在MOVX和MOVC指令下ALE才能工作。此外,在该引脚被微弱拉高时,如果单片机在执行外部程序模式时,应设置ALE无效位不起作用。/VPP:外部访问允许。为了使单片机能够有效的传送外部数据存储器从0000H到FFFH单元的指令,必须同GND相连接。需要主要的是,如果加密位1被编程,复位时EA端会自动内部锁存。当执行内部编程指令时,应该接到VCC端。当处于Flash编程时,该引脚接12V的编程允许电压VPP,当12V的编程电压是允许的情况下。XTAL1:振荡器反相放大器以及内部时钟电路的输入端。XTAL2:振荡器反相放大器的输出端。单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件存储器中。存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。(二)硬件电路设计1.温度采集电路DS18B20为单总线器件,接口电路简单,如下图3-7所示图3-7 温度采集电路2.键盘电路本键盘电路采用独立键设计,三个键接到单片机的三个中断源上。当按下时为低电平。其中S2为“确认”键、S3为“减一”键、S4为“加一”键,电路如图3-8所示:图3-8 键盘电路3.LED显示器工作原理在4位LED显示器中段选线控制显示字符的的字型,而位选线为各个LED显示块的公共端,它控制该LED显位的亮、暗。LED显示器有静态显示和动态显示两种显示方式。(1)LED静态显示方式显示器工作于静态显示方式时,各个的共阴极(或共阳极)连接在一起并接地(或+5V);每位的短选线(a-dp)分别与一个8位的锁存器输出相连。所以称为静态显示。各个LED的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。也正因为如此,静态显示器的亮度都比较高。这种显示方式接口编程容易,付出的代价是占用口线较多。若要用I/O口接口,则要占用4个8位I/O口,若要用锁存器(如74LS373)接口,则要用4片74LS373芯片。如果显示位数增多,则静态显示方式更是无法适应。因此在显示位数较多的情况下,一般采用动态显示方式。(2)LED动态显示方式在多位LED显示时,为了简化硬件电路,通常将所有位的段选线相应地并联在一起,由一个8位I/O口控制,形成段选线的多路复用。而各位的共阳极或共阴极分别由相应的I/O线控制,实现各位的分时选通。在动态显示方式中若要各位LED能够显示出与本位相应的显示字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处选通状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段码。这样同一时刻,4位LED中只有那一位显示出字符,而其他三位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,同时,在段选线上输出相应位将要显示字符段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如循环下去,就可以使各位显示出将要显示的字符,虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其他各位熄灭,但由于LED显示器的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可造成多位同时亮的假象,达到同时显示的目的。如何确定LED不同位显示的时间间隔,例如对8位LED显示器,假若显示一位保持1ms时间,则显示完所有8位只后,只需8ms。上述保持1ms的时间是根据实际情况而定。不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光太弱人眼无法看清。但也不能太长,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多。另外,显示位越多,也将占用大量的CPU时间,因此动态显示实质是以牺牲CPU时间来换取元件的减少。此设计显示电路采用的就是动态显示即一位一位地轮流点亮显示器的各个位(扫描),对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留效应可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。因为本显示的位数不大于8位,所以控制显示器公共极只需一个I/O口(扫描口),控制显示器的各位所显示的字型也需一个8位口(段数据口)。4.数码管显示原理图电路数码管显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用P3口的P3.0和P3.1两个端口,四只数码管采用74LS164右移寄存器驱动,显示比较清晰,电路如图3-9所示:图3-9 数码管显示电路5.输出驱动电路 继电器通过一个三极管来驱动,其中三极管的型号为9015。这里用到两个驱动电路,一个用于驱动加热装置,一个用于降温装置。电路如图3-10所示。其中加热装置可用小功率的电热棒,它可达到加热的目的,又较容易实现对温度的控制。而降温装置可用加入冷水的方法,用一个分流阀实现对冷水加入量的控制,当水的温度过高要进行降温时,降温驱动电路工作,打开分流阀,缓慢注入冷水,动态温度比较,实现对温度的实时控制。同时为了防止加入的水量过多而超出容器,增加了溢流控制装置,达到对容器中水量的控制。图3-10 输出驱动电路6.蜂鸣报警电路蜂鸣器通过一个三极管来驱动,这里选用9015。电路如图3-11所示:图3-11 蜂鸣报警电路7.无水检测电路 无水检测电路如图3-12所示:图3-12 无水检测电路8.溢流控制电路用溢流控制电路实现对容器上中水量的控制,如图3-13。电路原理同无水检测电路相似,在容器的顶部装金属传感片,当水位上升至金属片位置时,电平发生跳变,这时通过单片机的控制,打开排水装置,电路图如图3-14。图3-13溢流控制电路图3-14 排水装置电路9.掉电保护功能电路掉电保护电路功能的实现有两种方案:一是选用EROM将重要数据置于其中,二是加接备用电池,如下图所示,稳压电源和备用电池分别通过二级管接于存储器或单片机的Vcc端,当稳压电源电压大于备用电池电压时,电池不供电,当稳压电源掉电时,备用电池工作。仪器内还应设置掉电检测电路,以便在一旦检测到失电时,将断点(PC及各种寄存器)内容保护起来,图中CMOS555接成单稳形式,掉电时3端输出低电平脉冲作为中断请求信号。光电耦合器的作用是防止干扰而产生误动作,在掉电瞬时,稳压电源在大电容支持下,仍维持供电,这段时间主机执行中断服务程序,将断点和重要数据置入RAM。31四、系统软件设计(一)使用软件简介1.Keil软件 Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 2.Proteus软件 Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达30多个元件库。Proteus软件提供多种现实存在的虚拟仪器仪表。此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。提供Schematic Drawing、SPICE仿真与PCB设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、AVR、PIC等常用的MCU,并提供周边设备的仿真,例如373、led、示波器等。Proteus提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,编译方面支持Keil和MPLAB等编译器。一台计算机、一套电子仿真软件,在加上一本虚拟实验教程,就可相当于一个设备先进的实验室。以虚代实、以软代硬,就建立一个完善的虚拟实验室。在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、(二)程序结构说明任何一个系统的软件设计都离不开硬件电路的连接,所以本次硬件设计的高度模块化决定了软件设计的模块化。其程序结构应包括:主控程序模块、键盘扫描及处理子程序、数据采集处理子程序、显示等子程序几个部分。结构框图如图4-1。主控程序模块键盘扫描键值处理温度采集继电器控制无水报警溢流控制 图4-1 程序结构图主控程序模块在整个结构中充当管理者,管理所有子程序的调用。它主要负责初始化各个I/O口,等待键盘事件的发生,并做出相应的处理。并在适当的时候调用数据采集程序,并将采集到的数据与键盘设定值比较。再通过计算后用于控制继电器的通断,从而控制电炉等,来达到水温的调整。(三)程序流程图1.温度采集处理程序 读取温度DS18B20模块的流程图略,DSI8B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPROM,后者存放高温和低温触发器TH,TL和结构寄存器。便笺存储器包含了9个连续字节(08),前两个字节是测得的温度信息,字节0的内容是温度的低8位,字节1是温度的高8位,字节2是TH(温度上限报警),字节3是TL(温度下限报警),字节4是配置寄存器,用于确定输出分辨率9到12位。第5、6、7个字节是预留寄存器,用于内部计算。字节8是冗余检验字节,校验前面所有8个字节的CRC码,可用来保证通信正确【8】2.操作指引按键功能:1)、Enter P1.7(S2)2)、Down P1.6(S3)3)、Up P1.5(S4)显示温度:1)、没有DS18B20存在时,数码管显示错误888.82)、有DS18B20存在时,数码管显示当前温度XX.X设定温度:1)、按下Enter,数码管温度显示停止,显示的数字8888变的比以前亮。2)、这时可以按Up和Down来调节当前温度。3)、调节好后,按Enter退出。这时数字变的又暗了,数码管继续显示当前温度。4)、继电器随着设定的温度,依据情况跳变。3.主程序程序按照模块化设计,所有功能都可通过调用子程序完成,主程序较简单,流程图如图3-2所示。4. 键盘程序 由于机械触点有弹性,在按下或弹起按键时会出现抖动,从最初按下到接触稳定要经过数毫秒的弹跳时间,如图所示。为了保证按键识别的准确性,必须消除抖动。消抖处理有硬件和软件两种方法:硬件消抖是利用加去抖动电路滤避免产生抖动信号;软件消抖是利用数字滤波技术来消除抖动。我们采用软件的方法,利用主程序循环扫描,主程序每循环一次扫描到的键值相同时,则说明是某键按下。如图4-2所示开始报警处理初始化有水?调用读温度模块程序DS18B20存在?错误显示显示8888处理温度值转换为BCD码扫描键盘模块继电器控制模块NYYN显示模块,显示温度溢流控制模块 图4-2 主程序流程图图4-3 键按下的过程五. 实验测试(一)数码管显示“1234”编一段小程序,实现数码管显示“1234”。源程序略。(二)键盘及数字显示结合编一段小程序,实现键盘及数字显示结合。先设定某个定值作为初始值,当按下键S2时,进入数值设定状态,这时可通过按下键S3、S4来加减所设定的初始值。源程序略。经过调式,可达到预期效果。(三)整机调试编译好主程序和个模块子程序,烧写进单片机AT89c51中,连接好个部分硬件电路。打开电源,电路自动复位,首先不要接入DS18B20,此时数码管显示错误8888,然后接入DS18B20,但让其处于无水状态,此时数码管显示错误8888,并且蜂鸣器发出报警声。接着让DS18B20处于有水状态,此时数码管显示DS18B20所读到水的当前温度T1,用温度计测量水的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论