基于89C52单片机的恒温控制系统设计_第1页
基于89C52单片机的恒温控制系统设计_第2页
基于89C52单片机的恒温控制系统设计_第3页
基于89C52单片机的恒温控制系统设计_第4页
基于89C52单片机的恒温控制系统设计_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、基于89c52单片机的恒温控制系统设计摘 要温度的测量与控制在工业、农业、国防、科研、医疗等行业有着广泛的应用。随着电力电子技术的不断发展,各种高性能的模数转换器在温度测控领域得到了极为广泛的应用。本设计的基于单片机的恒温控制系统,采用intel公司推出的mcs-51系列单片机89c52为控制核心,具有灵活设定温度上下限、超限报警、自行调节温度、置位复位及数字显示等功能。论文从硬件和软件两方面介绍了基于单片机的恒温控制系统,并对硬件原理图和程序图作了简洁的描述。此次设计的基于单片机的恒温控制系统主要是由单片机、温度采集电路、继电器控制电路、显示电路等模块组成,其中温度采集部分采用adc0808

2、模数转换器,显示部分采用led数码管。adc0808将采集的模拟信号转换成数字信号送给单片机,单片机对信号进行相应处理,当温度超过设定的限定值时,单片机控制报警系统进行报警,同时驱动继电器打开相应的开关使相应的执行机构运行,通过控制继电器控制外部加热装置或制冷装置使环境温度处于设定的温度上下限范围之内,并把温度数据送至led显示,从而实现恒温控制的目的。本设计不仅拟定了基本原理设计方案,而且进行了keil软件的调试和protues软件的仿真操作。关键词:单片机,adc0808,led,恒温控制iiabstracttemperature measurement and control in in

3、dustry, agriculture, national defense, scientific research, medical and other industries widely used. with the continuous development of power electronics technology, a variety of high-performance analog-in temperature measurement and control field has been very widely used.the design of the tempera

4、ture control system based on single chip, using the company launched intel mcs-51 series 89c52 microcontroller to control the core, with the flexibility to set upper and lower temperature, limit alarm, self-adjust the temperature, set-reset, and digital display.papers from both hardware and software

5、 aspects introduced microcontroller-based temperature control system, and the hardware schematic diagram and made a concise description of the program. the design of microcontroller-based temperature control system is mainly by the microcontroller, temperature acquisition circuit, relay control circ

6、uit, display circuit modules, some of which temperature acquisition using adc0808 adc, some with led digital tube. will be collected adc0808 analog signal into a digital signal to the microcontroller, the microcontroller signals dealt with accordingly, when the temperature exceeds the set limit valu

7、e, the mcu control alarm system, alarm, and drive the relay opens the corresponding switch so that the corresponding actuator operation, by controlling the relay control an external heating means or cooling means that the ambient temperature is set within the upper and lower temperature range, and t

8、he temperature data to the led display, in order to achieve temperature control. this design not only developed the basic principles of design programs, but were protues keil software debugging and simulation software operation.key words: microcontroller,adc0808, led, thermostatically controlledii目

9、录摘 要iabstractii1 绪论1.1 本课程设计的设计背景11.2 本课程设计的主要内容和意义12 整体方案设计2.1 整体方案32.1.1 系统分析32.1.2 系统功能划分32.2 方案选择32.2.1 单片机选择32.2.2 键盘电路选择42.2.3 显示电路选择42.2.4 模数转换器选择52.2.5 其它器件选择52.2.6 软件程序选择53 硬件设计3.1 89c52单片机简介73.2 硬件电路设计概述83.3 时钟电路设计93.4 复位电路设计93.5 按键输入电路设计103.6 蜂鸣器报警电路设计113.7 继电器控制加热电路设计123.8 继电器控制制冷电路设计133

10、.9 温度采集电路设计143.10 led数码管显示电路设计16iii4 系统软件程序设计4.1 主程序设计184.1 模数转换器子程序设计204.1 数码管显示子程序设计204.1 中断子程序设计215 系统调试5.1 keil软件调试235.2 protues软件调试255.1 protues软件仿真296 总结与展望33致 谢35参考文献36附录1 电路原理图37附录2 程序清单38iv1 绪论1.1 本课程设计的背景在现代化的工业生产中,温度是常用的主要被控参数,任何化学反应和物理变化过程都与温度息息相关,因此温度控制是生产自动化的重要任务。例如:在电力工程、冶金工业、化工生产、机械制

11、造、造纸行业和食品加工等许多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。可以毫不夸张的说,温度控制应用于我们日常生活中的方方面面,在我们的生产生活中是必不可少的一部分。单片机是一种集中央处理器、只读存储器 、随机存储器、输入输出接口和中断系统等部分于一体的器件,我们只需要外加电源和晶振就可实现对数字信息的控制和处理。因此,单片机广泛用于现代工业控制中。基于单片机的控制具有价格低、体积小、重量轻、耗电少、灵活机动和可靠性高等很多优点,假如我们能够利用单片机进行温度的测量和控制,那么这将会大幅度提高温度测量和控制的灵活性和可靠性。单片机对温度的测量和控制过程是借助

12、于模数转换器以及扩展接口和执行机构来进行的。在闭环控制系统中,模数转换器实时采集参数,并通过单片机自动记录、处理并控制执行机构动作来进行调节和控制。因此我们需要对单片机进行扩展和开发,来形成整个单片机的温度控制系统。常用的温度控制电路根据所要求的性能指标和应用场合有所不同,例如在工业中,怎样提高温度控制对象的运行性能一直以来都是技术人员和控制人员努力解决的问题。这类控制对象不仅滞后现象严重,而且惯性大,存在很多不确定的因素,我们难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控的现象。在很久以前人们使用温度计来采集温度,通过人工操作加热、通风和降温设备来控制温度,这样不

13、仅控制精度低,而且操作人员的劳动强度大。采用单片机对温度进行控制,不仅具有组态简单、控制方便和操作灵活等优点,而且可以大大提高被控温度的技术指标,从而能够大幅度提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业中经常遇到的问题。1.2 本课程设计的主要内容和意义基于单片机的恒温控制系统,以89c52单片机和adc0808模数转换器为主要功能部件,单片机控制的各个模块电路联合作用,可以实现温度的测量并显示、超过上下限报警、自动调节温度等功能。在设计的过程中我充分考虑到性价比和精度的因素,在选用通用元件、低价格的的基础上,尽量满足设计要求,并且使恒温控制系统具有较高的精度。本恒温控制系统

14、以单片机的控制为核心,实时监测环境的温度,并设定了这个参数的上下限定值,并且具有相应的报警系统,当超过设定的限定值时,单片机控制报警系统进行报警,而且同时驱动继电器打开相应的开关使相应的执行机构运行。当环境温度高于设定温度上限时,驱动降温装置执行降温工作;当环境温度低于温度下限时,驱动升温装置执行升温工作。当参数值恢复到设定值范围内时,单片机控制执行机构停止运行,使环境的温度在一定的范围内得到控制,从而实现恒温的目的。本论文的设计理念紧扣时代的步伐,顺应当今世界科技发展的潮流。基于单片机的恒温控制系统对于工业生产效率的提高,可以起到非常大的作用。我们都知道科学技术是第一生产力,只要将科学技术运

15、用得当,先进的科学技术不仅能够节约更多的人力和物力,还可以降低生产过程中的能源材料的消耗,省略一些繁琐的细节,使各种产品的生产效益更上一个台阶。 本论文是基于当前科学技术发展的潮流趋势下,我经过慎重考虑后决定执笔的,也是对自己所学知识的一次检验,我期望能够获得温故而知新的效果。我只有不断地学习才能有不断的进步,通过结合社会发展的实际情况,然后根据自己的爱好和特点,更好的去了解自己,充分挖掘自己的潜力。学以致用是老师要求我们去努力的方向,只有靠自己锲而不舍的奋发图强,才能争取自己的一片美好天地,才能为自己未来的发展打下坚实的基础!2 整体方案设计2.1 整体方案2.1.1 系统分析基于单片机的恒

16、温控制系统主要包含单片机、温度采集电路、输入控制电路、时钟电路、复位电路、显示电路、蜂鸣器报警电路、继电器控制加热和制冷电路等电路。其功能模块图如图2.1所示: 时钟电路 复位电路 温度采集单片机显示电路 输入控制 蜂鸣器报警继电器控制制冷电路继电器控制加热电路图2.1 基于单片机的恒温控制系统功能模块图2.1.2 系统功能划分本次设计整个恒温控制系统主要分为硬件部分和软件部分。硬件部分是包括该恒温控制系统各个电路模块的统称,是整个设计中的核心;软件部分是系统能够实现预期功能的必要保证,也是本系统中必不可少的部分。硬件部分主要包括单片机、温度采集电路、输入控制电路、时钟电路、复位电路、显示电路

17、、蜂鸣器报警电路、继电器控制加热和制冷电路等,其中最主要的部分是单片机控制电路,基于不同型号的单片机可以有不同的功能,选择不同的单片机会有不同的硬件设计方案。软件部分指的就是控制单片机实现预期功能所必须的语言程序,就我目前所能掌握的知识来说,可以是汇编程序,也可以是c语言程序。2.2 方案选择2.2.1 单片机选择方案一:选择8031单片机8031单片机是intel公司生产的mcs-51系列单片机中的一种,除无片内只读存储器外,其余特性与mcs-51单片机基本一样。采用40个引脚的8031单片机,有4个8位并行i/o接口:p0、p1、p2、p3和128个字节的片内数据存储器,但没有片内程序存储

18、器,需要扩展程序存储器,外围器件较多,功耗较高。方案二: 选择89c52单片机89c52单片机运行速度快,算术运算功能强,软件编程灵活,不仅可用软件编程实现各种算法和逻辑控制 ,而且具有成本低、体积小、功耗低、技术成熟等优点。相对于51系列单片机来说,89c52单片机具有51单片机内核,价格比较便宜,便于程序的下载,而且具有更强的加密性能和抗干扰能力1。基于以上分析拟订方案二,由89c52单片机作为控制核心,对温度采集、实时显示和加热装置以及制冷装置进行控制。2.2.2 键盘电路选择一般键盘电路有两种:独立式键盘和矩阵式键盘。方案一:选择独立式键盘 在独立式键盘中,各按键互相独立,每个按键各接

19、一根输入线,每根输入线上的按键工作状态不会影响其它输入线上的工作状态。所以,我们通过检测输入线的电平状态就可以很容易的判断按键是否被按下了。独立式键盘电路软件结构简单,配置灵活。但是每个按键都需要占用一根输入线,在按键数量比较多的时候,输入口浪费较大,电路结构显得比较繁杂,故独立式按键适用于按键较少或操作速度较高的场合2。方案二:选择矩阵式键盘矩阵式键盘由列线和行线组成,按键位于列、行的交叉点上,分别连接到按键开关的两端。行线由上拉电阻连接到vcc上。在平时没有按键动作的时候,行线处于低电平状态,而当有按键按下的时候,列线为低电平状态,行线为高电平状态。这一点是识别矩阵式键盘是否被按下的关键所

20、在。因此,各按键彼此将互相影响,所以必须将列、行线信号配合起来并作适当的处理,才可以确定闭合键的位置。我们可以很明显地看到,在按键数量较多的场合,矩阵式键盘和独立式键盘相比较,要节省很多的输入输出口。由于本设计共使用5个普通按键,一个用于置位复位,另外4个用于切换数码管显示的内容,调整小数位和整数位,调节温度上下限,故选择独立式键盘。2.2.3 显示电路的选择在单片机系统中常用的显示电路有led显示、lcd显示。方案一:选择led显示led就是我们所说的发光二极管的英文缩写,这种发光二极管工作的时候耗电量小,时尚简约,节能环保,工作原理就是把电能直接转化为光能,不产生热量或产生少量的热量,对人

21、体的辐射也比较小。led显示屏是由发光二极管排列组成的,它采用低电压扫描驱动,具有耗电少、成本低、使用寿命长、亮度高、视角大、故障少、可视距离远等特点。同时数码管采用bcd编码显示数字,程序编译容易,资源占用较少。方案二:选择lcd显示液晶显示屏具有功耗小、轻薄短小、无辐射危险、平面直角显示以及影象稳定不闪烁,画面效果好,可视面积大,抗干扰能力强等特点。但由于只需显示四位温度值,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量较大,控制器资源占用较多,其成本也偏高。采用4位7段led数码管用于显示温度数据及温度上下限,完全能够满足对于本次设计中的所有英

22、文字母、数字形式温度值的显示要求。相对于lcd显示器件来说,led显示器原理简单、价格便宜、寿命更长,如果使用lcd显示在经济上不能降低成本,编程也比较繁琐,反而显得不合理。故选择用led作为显示电路。2.2.4 模数转换器选择方案一:adc0832模数转换器adc0832模数转换器是美国国家半导体公司生产的一种8位分辨率、双通道a/d转换芯片。因为它的体积比较小,兼容性比较好,性价比也比较高而深受单片机爱好者和企业的欢迎,它现在已经有很高的普及率。方案二:adc0808模数转换器adc0808模数转换器是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。它的内部有一个8通道多路开关,它可

23、以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行模数转换,具有内部功能强、转换速度快等特点 3。adc0832模数转换器只适应一般的模拟量转换,而adc0808模数转换器有可控三态输出的adc芯片允许输出线与微机系统的数据总线直接相连,并在转换结束后利用读数信号选通三态门,将转换结果送至总线。基于以上分析,模数转换器选用方案二。2.2.5 其它器件选择对于本设计中要用到的继电器、蜂鸣器、指示灯、二极管、三极管等,我们只要能够实现功能就行,型号可以随意选择。2.2.6 软件程序选择方案一:选择汇编语言汇编语言是面向机器的程序设计语言。用汇编语言设计的程序最终被转换成机器指令,所以

24、能够保持机器语言的一致性,具有直接、简捷等特点,并且能够像机器指令一样访问、控制计算机的各种硬件设备,如中央处理器、存储器、磁盘、输入输出端口等。虽然使用汇编语言,可以访问所有能够被访问的软、硬件资源,但是在编写复杂程序时,相对高级语言来说代码量较大,而且汇编语言依赖于具体的处理器体系结构,所以不可以直接在不同的处理器体系结构之间移植。方案二:选择c语言c语言是一种通用的程序设计语言,它不仅代码率高,运算符及数据类型丰富,而且具有良好的程序结构,适用于各种应用的程序设计,是目前使用较广的单片机编程语言。单片机的c语言采用c51编译器(简称c51),由c51产生的目标代码短、运行速度快、所需存储

25、空间小。在本次设计中,出于对c语言具有编程开发周期短、可读性好、可移植性强和修改方便等优点来考虑,我选择编写c语言程序。3 硬件设计3.1 89c52单片机简介单片机,又称为微型控制器,它是微型计算机的一个重要的分支。单片机是70年代中期发展起来的一种大规模集成电路芯片,是集中央处理器、只读存储器、随机存储器、输入输出接口和中断系统于同一硅片的器件。自从80年代以来,单片机产业迅速发展,不断地涌现了各种新产品,出现了很多高性能新型机种,现在已经逐渐成为工厂自动化和控制领域的支柱产业之一。89c52是51系列单片机的一个型号,它是atmel公司生产的。89c52是一个低电压、高性能cmos 8位

26、单片机,片内含8k 字节的可反复擦写的闪存只读程序存储器和256 字节的随机存储器,器件采用atmel公司的高密度、非易失性存储技术生产,兼容标准的mcs-51指令系统,片内置有通用的8位中央处理器和可反复擦写的闪存存储单元。它有40个引脚,32个外部双向输入输出端口,同时内含2个外中断口,2个全双工串行通信口,2个读写口,3个16位可编程定时计数器。89c52能够按照常规的方法进行编程,但是不支持在线编程(s系列的才支持在线编程)。功能强大的89c52单片机能够为用户提供很多比较复杂的系统控制应用场合。89c52有pdip、pqfp/tqfp及plcc等三种封装形式,以适应不同产品的需求4。

27、其引脚功能如下: p0.0p0.7 p0口8位双向口线(在引脚的3932号端子);p1.0p1.7 p1口8位双向口线(在引脚的18号端子); p2.0p2.7 p2口8位双向口线(在引脚的2128号端子); p3.0p3.7 p3口8位双向口线(在引脚的1017号端子)。 这4个输入输出口具有不完全相同的功能,它们各端口的功能分别如下所示: p0口有三个功能: (1)外部扩展存储器时,当作数据总线(芯片中的d0d7为数据总线接口); (2)外部扩展存储器时,当作地址总线(芯片中的a0a7为地址总线接口); (3)不扩展时,可做一般的输入输出使用,但内部无上拉电阻,作为输入或输出时应在外部接上

28、拉电阻。 p1口:只能做输入输出口使用,其内部有上拉电阻。 p2口有两个功能: (1)扩展外部存储器时,当作地址总线使用;(2)做一般输入输出口使用,其内部有上拉电阻。p3口:除了作为输入输出使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,p3口的第二功能如表3.1所示:表3.1 单片机p3.0管脚含义引脚第2功能p3.0rxd(串行口输入端)p3.1txd(串行口输出端)p3.2int0(外部中断0请求输入端,低电平有效)p3.3int1(外部中断1请求输入端,低电平有效)p3.4t0(定时器/计数器0计数脉冲端)p3.5t1(定时器/计数器1计数脉冲端)p3.6wr(外部

29、数据存储器写选通信号输出端,低电平有效)p3.7rd(外部数据存储器读选通信号输出端,低电平有效)ale/prog 地址锁存控制信号:在访问片外程序存储器的时候,每机器周期这个信号出现两次,它的下降沿用来控制锁存p0口输出的低8位地址。就算不在访问片外程序存储器的时候,这个信号也以振荡频率的1/6出现,因此可以用来作为对外输出的时钟脉冲。但是在访问片外数据存储器的时候,ale脉冲会跳空一个,那此时作为时钟输出就不合适了。/psen 外部程序存储器读选通信号:在向片外程序存储器读取指令或常数期间,每个机器周期这个信号(低电平)两次有效,以通过数据总线p0口读回指令或常数。但是在访问片外数据存储器

30、的时候,/psen信号将不会出现。/ea/vdd 访问程序存储器控制信号 :这个引脚有效(低电平)的时候只能选用片外程序存储器,不然计算机上电或者复位后先选用片内程序存储器。但是对于内部含有可擦除可编程只读寄存器的机型,我们在编程的时候,这个引脚用作21v编程电源vdd的输入端。rst 复位信号:在单片机的振荡器工作的时候,这个引脚上出现持续两个机器周期的高电平就能够实现复位的操作,从而使得单片机回复到初始的状态。上电时,我们考虑到振荡器有一定的起振时间,这个引脚上高电平必须持续10ms以上的时间才能够保证有效复位。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反

31、向振荡器的输出。vcc:接+5v电源正端。vss:接+5v电源地端。3.2 硬件电路设计概述基于单片机的恒温控制系统其硬件电路方框图如图3.1所示:由图可知,硬件电路由8部分组成,即按键输入电路、时钟电路、复位电路、温度采集电路、数码管显示电路、蜂鸣器报警电路、继电器控制加热和制冷电路等。 单片机 按键输入电路数码管显示电路 时钟电路蜂鸣器报警电路复位电路继电器控制加热电路 温度采集电路继电器控制制冷电路 图3.1 硬件电路方框图下面具体介绍各个电路模块的基本原理及电路图原理、主要实现的功能和在应用过程中应当注意的问题。3.3时钟电路设计单片机最小系统是保证单片机能够正常工作的最基本的硬件电路

32、,时钟电路、复位电路都属于单片机最小系统。单片机工作的时间基准是由时钟电路提供的。在单片机的xtal1和xtal2管脚,按图3.2所示接上晶振和电容就构成了单片机的时钟电路:图3.2 时钟电路图中电容c2、c3对晶振频率有微调的作用,通常的取值范围为20-40pf,c2、c3的典型值为30pf。石英晶体选择12mhz,选择不同的石英晶体,其结果只是机器周期不相同5。此电路大约延迟10ms后振荡器起振,在xtal2引脚产生幅度为3v左右的正弦波时钟信号,其振荡频率主要由石英晶体的频率确定。电路中两个电容c2、c3的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。单片机工作时,由内部振

33、荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期,其大小是时钟信号频率的倒数,时钟信号频率常用fosc表示。图中时钟频率为12mhz,即fosc=12mhz,则时钟周期为1/12s。3.4 复位电路设计单片机的第9脚rst为硬件复位电路,只要在该引脚加上持续4个机器周期的高电平即可实现复位,复位后单片机的各个状态都恢复到初始化状态。单片机的复位方式有上电复位和手动复位两种。本设计系统采用上电自动复位和手动复位组合电路,如图3.3所示复位电路:图3.3 复位电路图3.3中由按键s1、电阻r1以及电容c1构成上电复位及手动复位电路。由于单片机是高电平复位,所以当上电复位的时

34、候,接通电源就可以了,在上电以后,电容c1开始缓慢充电,由图我们可以看到电路由电源到电容和地之间形成一个通路,由于在电阻r1上产生了电压降,那么单片机的rst脚为高电平,经过一段时间后电容的电充满,此时电容c1处可视为断路,单片机rst脚处电压逐渐降为0v,即处于稳定的低电平状态,这时单片机就完成了上电复位,程序从0000h开始执行。手动复位时,按一下图中的按键s1就可以了,当按键按下的时候,单片机的rst脚处于高电平,此时单片机处于复位状态。3.5 按键输入电路设计基于单片机的恒温控制系统工作时应具备以下功能:一、可以调节温度上下限;二、可以切换显示实时温度和温度上下限的值。要具备这些功能,

35、可以通过按键输入电路来实现。 键盘结构可分为矩阵式键盘和独立式键盘两类,由于本系统只采用5个按键,因此选用独立式按键。按键输入电路由四个按键组成,按键采用轻触开关,如图3.4所示:图3.4 按键输入电路各个按键的功能为:s2用来切换数码管显示界面,当数码管界面显示的是温度上下限时通过按键s3可以调节要调整的温度上下限的整数位和小数位;当数码管界面显示为某一位闪动时通过按键s4、s5调节闪动位的数值。整数位的数值变化范围为0-99之间,小数位的数值变化范围为0-9之间。按键s4加数值,按键s5减数值 6。3.6 蜂鸣器报警电路设计根据设计的要求,当温度高于上限或低于下限时,应当具有报警功能。这样

36、我们就可以用一只蜂鸣器作为三极管的集电极负载,当三极管导通时,蜂鸣器发出蜂鸣声;当三极管截止时,蜂鸣器不发声。图3.5为本设计中的蜂鸣器驱动电路:图3.5 蜂鸣器驱动电路由图可以看出:单片机的p1.6管脚通过三极管的基极连接到蜂鸣器。当单片机控制端p1.6=1时,p1.6给三极管q1基极一个高电平,三极管q1导通,蜂鸣器的两个管脚间获得接近5v的直流电压,蜂鸣器中有电流通过,从而产生蜂鸣声;当单片机控制端p1.6=0时,p1.6给三极管q1基极一个低电平,三极管q1截止,蜂鸣器的两个管脚间的直流电压接近于0,蜂鸣器不产生蜂鸣声,其中r2=1k为限流电阻7。3.7 继电器控制加热电路设计按照本次

37、设计的设计要求,当环境温度低于所设定的下限温度时,需要通过继电器驱动加热装置来进行升温。常用的室内升温装置有空调、电热毯、电炉等。对于一些简易的电热装置,其主要部件是电阻加热器。继电器控制加热电路如下图3.6所示:由图可知单片机的p1.4端口接ctl0, p1.5端口接ctl1,p1.4端口控制一个双刀双掷继电器rl2,p1.5端口控制一个双刀双掷继电器rl1。当测量的温度低于设定的温度下限时,单片机控制端p1.4给三极管q7基级一个高电平,单片机控制端p1.5给三极管q6基极一个高电平,三极管q6和q7均导通,发光二级管d2和d4发红光,两个线圈都有电流流过,继电器rl1和rl2均闭合,此时

38、oven装置两端加上正向电压,装置开始加热。加热一段时间后,当温度重新回到温度下限以上时,单片机控制端p1.4给三极管q7基极一个低电平,三极管q7截止,发光二级管d4不发光,继电器rl2的线圈无电流流过,继电器rl2断开,而单片机控制端p1.5依然给三极管q6基级一个高电平,但是三极管q6集电极未接电源,三极管q6也截止,发光二极管d2和d5均不发光,继电器rl1的线圈也没有电流流过,继电器rl1断开,加热装置停止工作8。图3.6 继电器控制加热电路注意:在继电器rl1和rl2线圈两端都必须反接一个二极管。这个二极管很重要,当使用电磁继电器的时候必须连接。其原因为:当线圈通电正常工作的时候,

39、二极管对电路不起作用,当继电器在断电的一瞬间会产生一个很强的反向电动势,在继电器线圈两端反向并联一个二极管用来消耗这个反向电动势,通常这个二极管叫做消耗二极管,假如不加这个消耗二极管,反向电动势会直接作用在驱动三极管上,很容易将三极管损坏8。3.8 继电器控制制冷电路设计按照本次设计的设计要求,当环境温度高于所设定的上限温度时,需要通过继电器驱动制冷装置来进行降温。实际中常用的制冷装置主要有空调、冷藏柜、冷库等9。继电器控制制冷电路如下图3.7所示:由图可知单片机的p1.4端口接ctl0, p1.5端口接ctl1,p1.4端口控制一个双刀双掷继电器rl2,p1.5端口控制一个双刀双掷继电器rl

40、1。当测量的温度高于设定的温度上限时,单片机控制端p1.4给三极管q7基级一个高电平,单片机控制端p1.5给三极管q6基极一个低电平,三极管q7导通,三极管q6截止,发光二级管d4发红光,发光二极管d5发绿光,继电器rl1的线圈有电流流过,继电器rl1闭合,而继电器rl2继续保持断开,此时oven装置两端加上反向电压,装置开始制冷。制冷一段时间后,当温度重新回到温度上限以下时,单片机控制端p1.4给三极管q7基极一个低电平,单片机控制端p1.5依然给三极管q6基级一个低电平,三极管q6和q7均截止,发光二级管d2、d4和d5都不发光,两个线圈都没有电流流过,继电器rl1和rl2均断开,制冷装置

41、停止工作。图3.7 继电器控制制冷电路3.9 温度采集电路设计本设计采用adc0808模数转换器作为温度采集电路核心部件。在介绍温度采集电路之前先详细介绍一下adc0808模数转换器。 adc0808模数转换器是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。它的内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行a/d转换。它的转换原理就是把输入电压vi和一组从参考电压分层得到的量化电压进行比较,比较从最大的量化电压开始,由粗到细逐次进行,通过每次比较的结果来确定相应的位是0还是1。经过不断地比较,不断地逼近,直到二者的差别小于某一误差范围时就

42、完成了一次转换10。本设计的温度采集电路如图3.8所示:图3.8 温度采集电路示意图工作过程:把电热炉的输出通过电阻分压转换成05v的模拟信号输入到in0引脚,然后经过模数转换后,数字信号从d0d7引脚输出送给单片机,单片机再对信号进行相应处理。各引脚的功能如下:(1)in0in7:8通道模拟量输入端;(2)d0d7:结果数据输出端;(3)start:启动转换命令输入端。在该引脚上加高电平,就开始转换;(4)eoc:转换介绍指示脚。在平时它为高电平,在转换开始后和转换过程中为低电平,转换一结束,它又变回了高电平;(5)ale:地址锁存允许信号;(6)oe:数据输出允许信号,这个引脚加高电平,即

43、打开输出缓冲器三态门,读出数据;(7)clk:时钟脉冲输入端。adc0808典型的时钟频率为640khz,转换时间是100us;(8)a,b和c:三位地址输入线,用于选通8路模拟输入中的一路;(9)ref(+),ref(-):参考电压输入端11。3.10 led数码管显示电路设计在单片机应用系统中,通常都需要进行人机对话,这包括人对应用系统的状态干预与数据输入以及应用系统向人们显示运行状态与运行结果等12。 led数码管显示器由8个发光二极管中的7个长条发光二极管按a、b、c、d、e、f、g顺序组成“8”字形,另一个点形的发光二极管放在右下方,用来显示小数点。数码管按内部连接方式又分为共阳极数

44、码管和共阴极数码管两种。若内部8个发光二极管的阳极连在一起接电源正极,就称为共阳极数码管;若8个发光二极管的阴极连在一起接地,则称为共阴极数码管。led显示电路由位驱动电路和段驱动电路组成。因为单片机的并行口不能驱动led显示器,所以必须采用专门的驱动电路芯片,使之产生足够大的电流,显示器才能正常工作。如果驱动电路的驱动能力较差,即负载能力不够,显示器亮度就较低,而且驱动电路长期在超负荷状态下运行容易损坏。 led显示器的显示控制方式分为静态显示和动态显示两种,如果选择静态显示,那么led驱动器的选择比较简单,只要驱动器的驱动能力与显示器的电流相匹配即可,而且一般只需考虑断的驱动,因为共阳极接

45、5v而共阴极接地所以位的驱动无须考虑;而动态显示则不一样,由于一位数据的显示是由段和位选信号共同配合完成的,因此,要同时考虑段和位的驱动能力,而且段的驱动能力决定了位的驱动能力13。 本系统采用并行驱动动态显示。采用单片机p2口的低4位作为led的位码输出信号,p0口作为段码输出信号。该驱动电路如图3.10所示:p0口作为段码输出信号需外接上拉电阻。数码管用于显示测量的实际温度值,设定的温度上限值以及设定的温度下限值。共有十位、个位、小数位、上下限显示位(即h和l)4位显示。图3.10 4位led数码管驱动电路p0口接上拉电阻时应注意的几点: (1)p0口作为普通i/o口的时候,需要外接上拉电

46、阻;(2)如果外电路可以提供高电平,则p0口是否外接上拉电阻没什么影响; (3)如果是驱动led数码管,那么用1k左右的上拉电阻就可以了。如果希望亮度大一些,电阻可以减小些,最小不要小于200,否则电流太大;如果希望亮度小一些,电阻可以增大些,增大到多少主要看亮度情况,以亮度合适为准。一般来说,超过3k以上时,亮度就很弱了,但是对于超高亮度的led,有时候电阻为10k时感觉亮度还够用。通常选用1k的上拉电阻;(4)对于驱动光耦合器,如果是高电平有效,即耦合器输入端接端口和地之间,那么和led的情况是一样的;如果是低电平有效,即耦合器输入端接端口和vcc之间,那么除了要串联一个1-4.7k之间的

47、电阻以外,同时上拉电阻的阻值需要用的特别大,用100-500k之间的上拉电阻都可以满足要求14。 4 系统软件设计硬件部分设计制作完成后,程序的编写是关键。该系统程序的编写采用模块化程序设计,采用模块化程序设计的优点在于: (1)每个模块都可以分配给不同的程序员完成,从而缩短开发周期;(2)各个模块高聚合、模块之间低耦合,只要模块之间确定了参数传递的接口,不管那个模块内部的改动,均不会影响其他模块; (3)系统细化到模块,条理清晰,系统更加容易理解和实现;(4)容易维护、系统可靠15。 本系统程序主要包括以下几个部分:主程序(main.c)、按键扫描子程序(key.c)、模数转换器子程序(ad

48、c0808.c)、数码管显示子程序(led.c)、中断子程序 16。4.1 主程序设计主程序通过调用各个子程序,实现温度的采集、按键扫描、数码管显示、数据处理等功能。其主程序流程图如图4.1所示: 本设计只给出主程序、模数转换器子程序、数码显示管子程序、中断子程序的流程图,按键扫描子程序的流程图在这没有给出。 设置温度上下限结束开始y闪烁显示报警并加热报警并制冷不打开报警和制冷制热<温度下限>温度上限判断温度数码管显示温度转换非设置模式设置模式?显示模式key扫描n图4.1 主程序流程图4.2 模数转换器子程序设计本设计的adc0808模数转换器子程序的流程图如图4.2所示:开始送

49、ale上跳沿锁存地址送starta上跳沿内部寄存器清0yeoc=0n取a/d转换数据送r0返回图4.2 模数转换器子程序流程图4.3 数码管显示子程序设计 本设计的数码管显示子程序的流程图如图4.3所示:ny结束显示完毕?送显示数据送扫描脉冲读取预显示内容设置显示模式系统初始化开始图4.3 数码管显示子程序流程图4.4 中断子程序设计本设计的中断子程序的流程图如图4.4所示:yn计数、计时加载th、tl的值执行clk=clk是否产生中断?初始化打开定时器定义定时中断图4.4 中断子程序流程图5 系统调试5.1 keil软件调试keilc51是美国keilsoftware公司出品的51系列兼容单

50、片机c语言软件开发系统。和汇编语言相比,c语言在结构、功能、可读性、可维护性上有明显的优势,而且易学易用。keilc51提供丰富的库函数和功能强大的集成开发调试工具,全windows界面,生成的目标代码效率很高,多数语句生成的汇编代码也很紧凑,而且容易理解,在开发大型软件时更能体现高级语言的优势17。打开keil uvision2软件,执行【project】|【new project】命令,打开【create new project】对话框,输入文件名,点击【保存】,如图5.1所示:图5.1 目标文件新建示意图选择控制芯片类型。本设计采用intel 89c52,在【select device

51、for target target 1】对话框中选择at89c52,如图5.2所示:图5.2 单片机芯片选择示意图设置芯片参数。右击【project workplace】中的【target 1】,选择【options for target target 1】弹出参数设置对话框,如图5.3所示:设置频率为12hz。点击【output】选项,勾选【create hex file】,点击【确定】保存。图5.3 参数设置示意图创建c文件,执行【file】|【new】命令,或者使用快捷键“ctrl+n”新建c文件。输入并保存程序,编译链接无误后,调试运行生成hex文件,如图5.4所示:图5.4 调试运行

52、示意图5.2 proteus软件调试proteus是英国labcenter electronics公司研发的多功能eda软件。proteus不仅是数字电路、模拟电路、数/模混合电路的设计与仿真平台,更是目前世界上最先进的单片机和嵌入式系统的设计与仿真平台。它真正实现了在计算机上完成从原理图与电路设计、电路分析与仿真、单片机代码调试与仿真、系统测试与功能验证到形成pcb的完整的设计和仿真过程18。打开proteus软件,执行【文件】|【新建】命令,或者使用快捷键“ctrl+n”新建dsn文件。按照第三章硬件设计,从原件库中选择所需电器元器件并连接电路。系统仿真电路图如图5.5所示:图5.5 基于

53、单片机的恒温控制系统仿真电路图根据前面章节的设计,配置元器件的参数。proteus电器检测并生成元器件清单。执行【工具】|【电器规则检查】命令,如图5.6所示:点击【电器规则检查】选项,弹出电气规则检测结果。如图5.7所示:图5.6 电器规则检查示意图图5.7 电气规则检测结果选择【材料清单】,生成材料清单,如表5.1所示:表5.1 系统电路图元器件清单quantityreferencesvalueresistors4r4,r5,r6,r7 1003r13,r16,r172002r12,r151k1r35k1r110k1r191m1r203.65mcapacitors2c2,c330pf1c110ufintegrated circuits1u1at89c521u3adc0808transistors7q1-q7npnmiscellaneous1ls1buzzer2rl1,rl25v1rp1respack-81ov1oven1x1crystaldiodes2d1,d3 1n4148 1d2,d4led-red 1d5led-green 5.3 proteus软件仿真在系统电路图中,双击89c52单片机芯片,弹出芯片设置对话框。设置时钟频率为12hz,添加程序文件*.hex。点击【ok】选项,完成89c52设置19。如图5.8所示:图5.

温馨提示

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

评论

0/150

提交评论