基于单片机温度自动控制系统的设计.docx
- 文档编号:10653653
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:25
- 大小:330.61KB
基于单片机温度自动控制系统的设计.docx
《基于单片机温度自动控制系统的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机温度自动控制系统的设计.docx(25页珍藏版)》请在冰豆网上搜索。
基于单片机温度自动控制系统的设计
目录
摘要
(1)
Abstract
(1)
前言
(2)
1基于AT89C51单片机的温度自动控制系统的设计方案
(2)
1.1任务分析
(2)
1分析基于Proteus进行设计的特点。
(2)
1.2设计方案
(2)
1.2.1硬件设计(3)
1.2.2软件设计(4)
2电路图设计和介绍(4)
2.1主控电路(4)
2.2外围接口电路(6)
2.2.1上拉电阻电路(6)
2.2.2内部时钟电路(7)
2.2.3控制指示灯电路(7)
2.2.4DS18B20温度传感器(8)
2.2.5数码管显示(9)
2.3温度自动控制总电路(10)
3软件实现(11)
3.1编程Keil环境介绍(11)
3.2程序流程图(11)
4硬件仿真(14)
4.1Proteus软件介绍(14)
4.2基于Proteus软件仿真的特点(14)
4.3电路仿真(15)
附录(16)
致谢(18)
参考文献(19)
基于单片机温度自动控制系统的设计
学生:
指导教师:
电气信息与工程学院
摘要:
本系统严格按照毕业设计中所定参数及要求,构建了一个以AT89C51单片机为控制核心的温度自动控制系统。
该系统用DS18B20作为温度传感器,以一个开关量来代表开启一个加热器等来实现闭环控制,单片机通过DS18B20得出实时温度并与预设温度值相比较,然后通过开关量来模拟调节温度的增加和减少,达到自动控温的目的。
本系统制冷(加热)效果明显,效率高,界面友好,能够满足毕业设计中所定各项要求。
关键词:
AT89C51;DS18B20;开关量
Basedonsinglechipmicrocomputertemperatureautomaticcontrolsystemdesign
Student:
Teacher:
Abstract:
ThissysteminstrictaccordancewiththegraduationdesigndecisionparametersanddemandofconstructingaAT89C51single-chipmicrocomputertocontrolcoretemperatureautomaticcontrolsystem.Inthissystem,thetemperaturesensorDS18B20as,withaswitchquantitytorepresentopenaheater,etc.Torealizeclosedloopcontrol,singlechipDS18B20real-timetemperatureandobtainedthroughcomparedwiththedefaultvalue,andthenthroughtheswitchquantitytosimulatetheincreaseanddecreaseoftemperatureadjustment,toachievethepurposeofautomatictemperaturecontrol.Thissystemrefrigeration(heating)obviouseffect,highefficiency,friendlyinterface,cansatisfythegraduationdesignoftherequirementsset.
Keywords:
AT89C51;DS18B20;Switchquantity
前言
在现代化的工业生产中,电流,电压,温度,压力,流量,流速和开关量都是常用的主要被控参数。
例如:
在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。
采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量,并能在一些人为不能操作的场合达到控制温度的目的。
因此,单片机对温度的控制问题是一个工业生产中经常会遇到的问题,以单片机为主要核心的应用技术已成为一项新的工程应用技术。
单片机以其集成度高、运算速度快、体积小、运行可靠、价格低廉等优势,在过程控制系统、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到了广泛的应用。
温度是工业生产过程中重要的被控参数之一,在冶金、机械、食品、化工等各类工业生产过程中广泛使用的各种加热炉、热处理炉、反应炉,对工件的处理温度等均需要对温度严格控制。
利用单片机、温度传感器实现对温度的自动控制,具有体积小、编程简单、价格低的优点,在发电厂、纺织、食品、医药、仓库等许多领域得到了很快的应用、因此具有很好的发展前景和可靠的使用价值。
1基于AT89C51单片机的温度自动控制系统的设计方案
1.1任务分析
1分析基于Proteus进行设计的特点。
2分析进行温度检测的特点,即重点分析怎样对温度信号进行采集和处理,输出可以以一个开关量来代表开启一个加热器等来实现闭环控制。
3在设计过程中所要达到的目标要求。
实现相应的基本功能。
有一个输出界面显示模块
主控单元,单片机以AT89C51为主
模拟调节的过程。
实现基本目标,并能够实现相应的拓展功能,完善界面和仿真环境。
1.2设计方案
本设计只能是模拟温度自动控制系统,之所以是模拟而非实际,原因一方面在于设计所基于的环境是Proteus仿真环境,另一方面在于设计中并未加上真正的升温与降温器件,而用指示灯来替代。
1.2.1硬件设计
首先,测温元件及温度值转换方面的设计。
虽然目前一些测温系统中有些是采用如热敏电阻或模拟电压输出的温度传感器等测温元件,但实际这样处理时,硬件电路上就必须增加A/D转换电路。
DS18B20数字式温度传感器能自动将温度值转换成数字信息,且性价比比较高。
为了减少硬件设计的成本,同时也为了减少硬件设计的难度,本设计采用DS18B20数字式温度传感器来作为温度采集电路元件。
其次,温度设置电路方面的设计。
温度设置前,电路的默认设置标准温度值是由后面的软件程序来给定的。
如此一来,温度设置就只需指定是增加还是减少即可。
也就是说,设置两个按键,一个为温度值增加按键,另一个为温度值减少按键。
在后面的软件设计程序中设计每次按键分别增加或减少的温度值。
然后,温度值的显示方面的设计。
温度值的显示分为两个部分,其一为实时温度值的显示,其二为设置的标准温度值的显示。
因此,设计时采用多位7段数码管来分别显示两种温度值数据。
由于显示温度值精确到1℃,且一般标准温度值都小于100℃,因此标准温度的显示采用两位一体的7段数码管来实现。
由于DS18B20的温度测量范围为-55~+125℃,本设计中假设显示数据不超过两位数,同时为了显用“C”来表示℃,因此,实时温度的显示通过6位一体的7段数码管来实现。
6位一体7段数码管的第1位闲置,第2位为符号显示,第3、4位为温度值整数部分的十位和个位,第5位为温度值的小数部分,不过这里实际上等于固定显示0,最后一位为单位显示,即显示“C”来表示℃。
最后,单片机与各部分引脚连线设计方面。
将单片机的P1.7引脚与DS18B20数据口相连,用以接收转换后的数字温度值。
而将单片机的P0作为实时温度显示数码管和标准温度显示数码管之间公用的显示数据传送接口。
为了控制数码管显示片的选择控制,通过单片机的P2.6、P2.7、P3.0、P3.1、P3.2引脚分别与实时温度显示数码管得2~6片选控制线相连,而将P1.5、P1.6与标准温度显示数码管的十位、个位显示片选控制线相连。
因此,只要控制片选线上的信号,就可实现某一时刻哪片数码管上进行数据显示的要求了。
标准温度增加和减少的按键分别连接到P1.0和P1.1上,升温与降温指示灯则分别连接到单片机的P1.2和P1.3引脚上。
按键无动作时,P1.0和P1.1上为高电平;
有动作时线路上会有低电平送入,检测电平的变化即可进行是否做标准温度值变化的处理操作了。
指示灯的负极连接于单片机引脚,而将其正极通过限流保护电阻接到正电源上,因此,要指示灯点亮,只需向其发送低电平即可。
之所以如此连接,而不是用单片机引脚输出高电平来控制指示灯点亮,是因为考虑单片机引脚输出的高电平有可能不能驱动高亮度的LED正常点亮。
当然,在仿真条件下,无论采用单片机引脚输出高电平来控制LED的正极,还是输出低电平来控制LED负极,两种方法都可实现。
但在实际设计时就必须考虑LED型号的不同点亮性能要求了。
1.2.2软件设计
主程序中应对系统进行初始化,即开启中断,并另DS18B20启动温度检测及数值的转换,此时是将初始的温度值转换。
然后,进行一个不停地自动检测、显示和检查标准温度按键动作的循环。
即启动DS18B20温度值转换,然后延时一段时间,调用温度值显示子程序进行标准温度和实时温度的显示,显示完成后,调用标准温度设置子程序,以便检测按键的动作,之后再返回前面的温度检测。
在温度值显示子程序中,一定要同时处理好实时温度值和标准温度值的分别控制显示工作。
也就是说,先提取温度值的十位、个位和小数部分的显示数据,然后设置要显示的数码管片选线为低电平(显示器为共阴数码管),之后传送显示数据,延时一段时间后(用于满足人眼的视觉停留效应)再将数码管的片选线为显示不允许,并开始下一位的显示。
当各个温度值的显示位都显示完毕后,再开始检查实时温度值与标准温度值之间的大小关系,若标准温度大于实时温度,那么控制升温指示灯亮,降温指示灯灭;若标准温度小于实时温度,那么控制升温指示灯灭,降温指示灯亮;若标准温度等于实时温度,那么控制升温指示灯和降温指示灯都熄灭。
本设计中默认设置标准温度为28℃。
在标准温度设置子程序中,在消除按键抖动之后,若温度增加按键有动作,则将标准温度增加1;若温度减少按键有动作,则将标准温度减少1。
2电路图设计和介绍
2.1主控电路
主控电路采用AT89C51来控制
AT89C51是一可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压微处理器,俗称单片机。
由于将多功能8位CPU
和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
其引脚结构如上图1所示:
管脚说明:
VCC—供电电压。
GND—接地。
P0口—P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
图1AT89C51单片机
P1口—P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口—P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写
时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口—P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C52的一些特殊功能口,如下所示:
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(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST——复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG——当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN—外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP—当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编
程电源(VPP)。
2.2外围接口电路
2.2.1上拉电阻电路
采用RESPACK-8做上拉电阻,RESPACK-8是由一系列相同阻值(或等差或等比阻值)的电阻排列在一起,一端联接成公共端其它端各自引出;或串接一起,各接点分别引出的排电阻;排阻也叫网络电阻。
RESPACK-8的结构及内部结构分别如图2、图3所示:
图2RESPACK-8引脚结构图3RESPACK-8的内部结构
2.2.2内部时钟电路
系统采用内部时钟方式。
51单片机内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1、XTAL2分别是此放大器的输入端和输出端。
把放大器与作为反馈元件的晶体振荡器X1、及两个30pF的电容C1、C2连接起来并接地,就构成了内部自激振荡器,并产生振荡时钟脉冲,连接方式如图4所示:
2.2.3控制指示灯电路图4内部时钟电路
系统以开关量来模拟控制标准温度的增加和减少。
标准温度增加和减少的按键分别连接到P1.0和P1.1上,升温与降温指示灯则分别连接到单片机的P1.2和P1.3引脚上。
按键无动作时,P1.0和P1.1上为高电平;有动作时线路上会有低电平送入,检测电平的变化即可进行是否做标准温度值变化的处理操作了。
指示灯的负极连接于单片机引脚,而将其正极通过限流保护电阻接到正电源上,因此,要指示灯点亮,只需向其发送低电平即可。
之所以如此连接,而不是用单片机引脚输出高电平来控制指示灯点亮,是因为考虑
图5控制电路图6指示灯电路
单片机引脚输出的高电平有可能不能驱动高亮度的LED正常点亮。
控制电路和指示灯电路分别为图5和图6所示:
2.2.4DS18B20温度传感器
DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等。
主要根据应用场合的不同而改变其外观。
封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,图7DS18B20温度传感器
弹药库测温等各种非极限温度场合。
耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。
1独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向
通讯。
2测温范围-55℃~+125℃,固有测温分辨率0.5℃。
3支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
4工作电源:
3~5V/DC。
图8外部电源供电方式
5在使用中不需要任何外围元件。
6测量结果以9~12位数字量方式串行传送。
外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。
因此,在实际的设计开发中,我们使用外部电源供电方式。
在外接电源方式下,可以充分发挥DS18B20宽电源电范围的优点,即使电源电压VCC降到3V时,依然能够保证温度量精度。
在外部电源供电方式下,DS18B20工作电源由VDD引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意
多个DS18B20传感器,组成多点测温系统。
注意:
在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85℃。
2.2.5数码管显示
我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他
基本相同。
所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。
数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。
而共阳极就是将八个LED的阳极连在一起。
其原理图如图9。
其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。
一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选
图9数码管原理图
线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。
显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。
数码管的8段,对应一个字
节的8位,a对应最低位,dp对应最高位。
所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。
可以看出两个编码的各位正好相反。
本设计中标准温度的显示采用两位一体的7段数码管来实现,实时温度的显示通过4位一体的7段数码管来实现。
4位一体7段数码管的第1、2位为温度值整数部分的十位和个位,第3、4位为温度值的小数部分。
电路图如10、图11。
图10标准温度显示数码管图11实时温度显示数码管
2.3温度自动控制总电路
本设计的总电路包括了温度控制、温度采集、复位、时钟、显示等,如图12所示。
图12温度自动控制总电路
3软件实现
3.1编程Keil环境介绍
KeilSoftware公司推出的KeilµVision是一款基于Windows的软件平台,它是一种用于51单片机的集成开发环境(IDE—IntergratedDevelopmentEvironment)。
µVision提供了对基于8051内核的各种型号单片机的支持。
KeilµVision内包含了功能强大的编辑器和调试器。
编辑器可以像一般的文本编辑器一样对源代码进行编辑,并允许用户在编辑时设置程序断点(可在源代码未经编译和汇编之前)。
断点可被设为条件表达式、变量或存储器访问,断点被触发后,调试器的命令或调试功能即可执行,因此用户可以在编辑器内调试程序,使用户快速地检查和修改程序。
用户还可以在编辑器中选中变量和存储器来观察其值。
并可在双层窗口中显示,还可对其进行适当的调整。
此外,µVision调试器具有符号调试特性以及历史跟踪,代码覆盖,复杂断点等功能。
KeilC51编译器在遵循ANSIC标准的同时,为0单片机进行了特别的设计和扩展,能让用户使用在应用中需要的所有资源。
KeilC51的库函数含有100多种功能,其中大多数是可再入的。
函数库支持所有的ANSIC的程序。
库函数中的程序还为硬件提供特殊指令,例如nop、testbit、rol、ror等,方便了应用程序的开发。
3.2程序流程图
该设计的流程图包括主程序的流程图、标准温度设置子程序流程图、温度值显示子程序流程图分别如图13、图14、图15所示。
图13主程序流程图
YN
YN
图14标准温度设置子程序流程图
·
图15温度值显示子程序流程图
4硬件仿真
4.1Proteus软件介绍
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
4.2基于Proteus软件仿真的特点
Proteus软件的特点是:
①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真功能。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、280系列、HC11系列以及各种外围芯片。
⑨提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51l_t,Vision2筹软件。
④具有强大的原理图绘制功能。
(1)集成化的电路虚拟仿真软件
Proteus是一款基于ProSPICE混合模型仿真器的、完整的嵌入式系统软硬件设计仿真平台。
它包含ISIS和ARES应用软件。
①ISIS-智能原理图输入系统,系统设计与仿真的基本平台。
②ARES-高级PCB布线编辑软件。
在Proteus中,从原理图设计,单片机编程,系统仿真到PCB设计一气呵成,真正实现了从概念到产品的完整设计。
Proteus实现了从原理图设计到PCB设计,再到电路板完成的流程。
可见
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温度 自动控制系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)