烘干箱的智能温控仪表毕业设计docx.docx
《烘干箱的智能温控仪表毕业设计docx.docx》由会员分享,可在线阅读,更多相关《烘干箱的智能温控仪表毕业设计docx.docx(35页珍藏版)》请在冰豆网上搜索。
烘干箱的智能温控仪表毕业设计docx
太原理工大学现代科技学院
智能温控仪表设计课程设计
设计名称烘干箱的智能温控仪表设计
专业班级
学号2009100624
姓名
扌旨导教师吕迎春
摘要
近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
本文从硬件和软件两方面来讲述对烘干箱温度的自动控制过程,在控制过程中主要应用AT89C51、ADC0809、LED显示器、LM324比较器,而主要是通过AD590数字温度传感器采集环境温度,以单片机为核心控制部件,并通过四位数码管显示实时温度的一种数字温度计。
软件方面采用汇编语言来进行程序设计,使指令的执行速度快,节省存储空间。
为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。
关键词:
单片机系统;传感器;数据采集;模数转换器;温度
1绪论2
1.1课题的背景及其意义2
1.2课题研究的内容及要求3
1.2.1课题的主要研究的内容3
2STC89C51系列单片机介绍及硬件设计5
2.1STC89C51系列单片机介绍5
2.1.1SATC89C51系列基本组成及特性5
2.1.2STC89C51系列引脚功能6
2.1.3STC89C51系列单片机的功能单元9
2.2硬件设计15
2.2.1温度采样部分18
2.2.2控制温度18
2.2.3模数转换部分18
2.2.4模数转换技术18
2.2.5积分型模数转换器19
2.2.6显示部分19
3软件设计22
3.1主程序流程图22
3.2读温度子程序23
3.3计算温度子程序23
3.4按键流程图24
3.5显示流程图25
结论27
参考文献28
专业班级自动化09-1学号2009100624姓名邸汉生成绩
1.1课题的背景及其意义
现代工业设计,工程建设及日常生活中温度控制都起着重要的作用,早期的温度控制主要用于工厂时间生产中,能起到实时采集温度数据,提高生产效率,产品质量之用。
随着人们生活质量的提高,现代社会中的温度控制不仅应用在工厂生产方面也应用于酒店,厂房以及家庭生活中,在有些应用中,如高精度的生产厂房,对温度的要求极其严格,温度的变化极有可能对生产的产品造成极大的影响。
因此,这就需要一种能够及时检测温度变化以及温度变化的设备,提供温度数据值,使人们对温度的变化做及时的调整,多点温度控制可根据人们不同的应用环境自行设置该环境的温度值,及时反映生产,生活中温度变化使人们能及时看到温度变化的第一手资料,提示人们温度变化情况,协助人们能及时的调整,起到温度报警作用,使温度控制更好的服务于社会生产,生活。
电子技术的飞速发展,给人类的生活带来了根本的的变革,特别是随着大规模集成电路的产生而出现了微型计算机,更是将人类社会带入了一个新的时代。
利用微机的强大功能。
人们可以完成各种各样的控制。
然而,微机造价高,对于大多数的工业控制来说,也并不需要微机那样强大的功能,于是单片机就运用而生了。
单片机其实就是一个简化的微机,将微机的CPU,存储器,I/O接口。
定
时器/计数器等集成在一片芯片上就是单片机了,它主要用来完成各种控制功能。
相对微机来说,单片机价格低,非常适合于应用在简单的控制场合以降低成本。
另外,单片机是按照工业控制要求设计的,其可靠性很高,可在工业现场复杂的环境下运行。
单片机依靠其高的可靠性和极高的性价比,在工业控制,数据采集,智能化仪表,家用电器等方面得到极为广泛的应用。
温度是表征物体冷热程度的物理量,温度测量则是工农业生产过程中一个很重要而普遍的参数。
温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。
由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。
而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。
在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。
因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。
在日常生活中,也可广泛实用于地热、空调器、电加热器等各种家庭室温测量及工业设备温度测量场合。
但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。
1.2课题研究的内容及要求
1.2.1课题的主要研究的内容
本文所要研究的课题是基于单片机控制的水温控制系统的设计,主要是介绍了对水箱温度的显示、控制及报警,实现了温度的实时显示及控制。
水箱水温控制部分,提出了用DS18S20、AT89C51单片机及LED的硬件电路完成对水温的实时检测及显示,利用DS18S20与单片机连接由软件与硬件电路配合来实现对加热电阻丝的实时控制及超出设定的上下限温度的报警系统。
而炉内温度控制部分,采用一套PID闭环负反馈控制系统,由DS18S20检测炉内温度,用中值滤波的方法取一个值存入程序存取器内部一个单元作为最后检测信号,并在LED中显示。
控制器是用89C51单片机,用PID算法对检测信号和设定值的差值进行调节后输出控制信号给执行机构,去调节电阻炉的加热功率,从而控制炉内温度。
它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,特别适合于构成多点的温度测控系统,可直接将温度转化成串行数字信号供微机处理,而且每片DS18S20都有唯一的产品号,可以一并存入其ROM中,以便在构成大型温度测控系统时在单线上挂接任意多个AD590芯片。
从AD590读出或写入AD590信息仅需要一根口线,其读写及其温度变换功率来源于数据总线,该总线本身也可以向所挂接的AD590供电,而且不需要额外电源。
同时AD590能提供九位温度读数,它无需任何外围硬件即可方便地构成温度检测系统。
而且利用本次的设计主要实现温度测试,温度显示,温度门限设定,超过设定的门限值时自动启动加热装置等功能。
而且还要以单片机为主机,使温度传感器通过一根口线与单片机
相连接,再加上温度控制部分和人机对话部分来共同实现温度的监测与控制。
1.2.2用单片机实现其具体控制功能如下:
(1)能够连续测量水的温度值,用十进制数码管来显示水的实际温度。
(2)能够设定水的温度值,设定范围是30C〜90C。
(3)能够实现水温的自动控制,如果设定水温为85C,则能使水温保持恒定在85r的温度下运行。
(4)用单片机STC89C51控制,通过按键来控制水温的设定值,数值采用数码管显示。
2ST89C51系列单片机介绍及硬件设计
2.1ST89C51系列单片机介绍
2.1.1ST89C51系列基本组成及特性
ST89C51是一种带4k字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory的低电压,高性能CMOS8位微处理器,俗称单片机。
STC89C52RC是采用8051核的ISP(InSystemProgramming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8KBytes的可反复擦写1000
次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程
器,而且速度更快。
STC89C52RC系列单片机是单时钟/机器周期(1T)的兼容8051内
核单片机,是高速/低功耗的新一代8051单片机,全新的流水线/精简指令集结构,
内部集成MAX810专用复位电路。
ST89C51基本功能描述如下:
特点
(1)增强型1T流水线/精简指令集结构8051CPU
(2)工作电压:
3.4V-5.5V(5V单片机)/2.0V-3.8V(3V单片机
(3)工作频率范围:
0-35MHz,相当于普通8051的0〜420MHz.实际工作频率可
达48MHz.
(4)用户应用程序空间12K/10K/8K/6K/4K/2K字节
(5)片上集成512字节RAM
(6)通用I/O口(27/23个),复位后为:
准双向口/弱上拉(普通8051传统I/O口)
可设置成四种模式:
准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏
每个I/O口驱动能力均可达到20mA,但整个芯片最大不得超过55mA
(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器
可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片
(8)EEPROM功能
(9)看门狗
(10)内部集成MAX810专用复位电路(外部晶体20M以下时,可省外部复位电路)
(11)时钟源:
外部高精度晶体/时钟,内部R/C振荡器。
用户在下载用户程序时,
可选择是使用内部R/C振荡器还是外部晶体/时钟。
常温下内部R/C振荡器频率为:
5.2MHz〜6.8MHz。
精度要求不高时,可选择使用内部时钟,因为有温漂,请选4MHz〜
8MHz
(12)有2个16位定时器/计数器
(13)外部中断2路,下降沿中断或低电平触发中断,PowerDown模式可由外部中断
低电平触发中断方式唤醒
(14)PWM(4路)/PCA(可编程计数器阵列),也可用来再实现4个定时器或4
个外部中断(上升沿中断/下降沿中断均可支持)
(15)STC89Cc516AD具有ADC功能。
10位精度ADC,共8路
(16)通用异步串行口(UART)
(17)SPI同步诵信口,主模式/从模式
(18)工作温度范围:
0-75C/-40-+85C
(19)封装:
PDIP-28,SOP-28,PDIP-20,SOP-20,PLCC-32,TSSOP-2O(超小封状,定货)
2.1.2STC89C51系列引脚功能
STC89C51有40引脚双列直插(DIP)形式。
其与80C51引脚结构基本相同,其逻辑引脚图如图2-1o
STCB9C51^|>P功能團
图2-1STC89C51逻辑引脚图
各引脚功能叙述如下:
1.电源和晶振
VCC——运行和程序校验时加+5V
GND——接地
XTAL1——输入到振荡器的反向放大器
XTAL2——反向放大器的输出,输入到内部时钟发生器(当使用外部振荡器时,XTAL1接地,XTAL2接收振荡器信号)
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
2.I/O(4个口,32根)
P0口一一8位、漏极开路的双向I/O口。
当使用片外存储器(ROM、RAM)时,作地址和数据分时复用。
在程序校验期间,输出指令字节(需加外部上拉电路))P0口(作为总线时)能驱动8个LSTTL负载。
P1口一一8位、准双向I/O口。
在编程/校验期间,用于输入低位字节地址。
P1口可驱动4个LSTTL负载。
对于80C51,P1.0T2,是定时器的计数端且位输入;P1.1――T2EX,是定时器的外部输入端。
这时,读两个特殊输入引脚的输出锁存器应由程序置1。
P2口一一8位、准双向I/O口。
当使用片外存储器(ROM及RAM)时,输出高8位地址。
在编程/校验期间,接收高位字节地址。
P2口可以驱动4个LSTTL负载。
P3口一一8位、准双向I/O口,具有内部上拉电路。
P3口提供各种替代功能。
在提供这些功能时,其输出锁存器应由程序置1。
P3口可以输入/输出4个LSTTL负载。
3.串行口
P3.RXD(串行输入口),输入。
P3.1――TXD(串行输出口),输出。
4.中断
P3.2——INTO外部中断0,输入。
P3.3――INT1外部中断1,输入。
5.定时器/计数器
P3.4――T0定时器/计数器0的外部输入,输入。
P3.5T1定时器/计数器1的外部输入,输入。
6.数据存储器选通
P3.6――WR低电平有效,输出,片外存储器写选通。
P3.7――RD低电平有效,输出,片外存储器读选通。
7.控制线(共4根)
输入:
RST――复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
EA/Vpp――片外程序存储器访问允许信号,低电平有效。
在编程时,其上施加21V的编程电压。
注意:
在加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源
(VPP)。
输入、输出:
ALE/PROG――地址锁存允许信号,输出。
ALE以1/6的振荡频率稳定速率输出,可用作对外输出的时钟或用于定时。
在EPROM编程期间,作输入,输入
编程脉冲(PROG)。
ALE可以驱动8个LSTTL负载。
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用
于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
注意:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE
禁止,置位无效。
输出:
PSEN――片外程序存储器选通信号,低电平有效。
在从片外程序存储器取址期间,在每个机器周期中,当PSEN有效时,程序存储器的内容被送上P0口(数据总线)。
PSEN可以驱动8个LSTTL负载。
电路團
ft!
3-680Q1的蚪甫电雜图
2.1.3STC89C51系列单片机的功能单元
1•并行I/O接口:
单片机芯片内有一项主要功能就是并行I/O口。
51系列共有4个8位的并行I/O口,分别记作PO、P1、P2、P3每个口都包含一个锁存器,一个输出驱动器和输入缓冲器。
实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。
在访问片外扩展存储器时,低八位地址和数据由P0口分时传送,高八位地址由P2口传送。
2•定时器/计数器
定时器/计数器(timer/counter)是单片机中的重要部件,其工作方式灵活、编
程简单,使用它对减轻CPU的负担和简化外围电路都大有好处。
C51系列包含有两个16位的可编程定时器/计数器分别称为定时器/计数器T0
和定时器/计数器T1;在C51部分产品中,还包含有一个用做看门狗的8位定时
器。
定时器/计数器的核心是一个加1计数引脚上施加器,其基本功能是加1功能。
在单片机的定时器TO或T1中,有一个定时器发生由0到1的跳变时,计数器增1,即为计数功能;在单片机内部对机器周期或其分频进行计数,从而得到定时,这就是定时功能。
在单片机中,定时功能和计数功能的设定和控制都是通过软件来进行的。
定时器/计数器内部结构及其原理:
由定时器0、定时器1、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。
当定时器/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器加1,直至计满
溢出。
定时器的定时时间与系统的振荡频率紧密相关,因为C51系列单片机的一个机器周期由12个振荡脉冲组成,所以,计数频率fc=fosc/12。
如果单片机系统采用12MHz晶振,则计数周期为:
1
T"61"s(2-1)
12*10*1/12
这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。
当定时器/计数器设置为计数工作方式时,计数器对来自输入引脚TO(P3.4)
和T1(P3.5)的外部信号计数,外部脉冲的下降沿将触发计数。
在每个机器周期的S5P2期间采样引脚输入电平,若前一个机器周期采样值为1,后一个机器周期
采样值为0,则计数器加1。
新的计数值是在检测到输入引脚电平发生1到0的负跳变后,于下一个机器周期的S3P1期间装入计数器中的,可见,检测一个由1
到0的负跳变需要两个机器周期,所以最高检测频率为振荡频率的1/24。
计数器
对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。
3.振荡器
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
当输入至内部时钟信号时要通过一个二分频触发器,而对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM、定时器、计数器、串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
5.中断系统
中断系统是单片机的重要组成部分。
实时控制、故障自动处理、单片机与外围设备间的数据传送往往采用中断系统。
中断系统大大提高了系统的效率。
C51系统有关中断的寄存器有4个,分别为中断源寄存器TCON和SCON、中断允许控制寄存器IE和中断优先级控制寄存器IP;中断源有5个,分别为外部中断0请求INTO、外部中断1请求INT1、定时器0溢出中断请求TFO、定时器1溢出中断请求TF1和串行中断请求R1或T105个中断源的排列顺序由中断优先级控制寄存器IP和顺序查询逻辑电路共同决定,5个中断源分别对应5个固定的中断入口地址0中断的特点是分时操作,实时处理和故障处理0
简单介绍一下本次设计所需的单片机芯片STC89C51的中断系统中要用到的中断类型0
(1)外部中断源
STC89C51有INT0和INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或负边沿两种中断触发方式来输入中断请求信号0STC89C51究竟工作于哪种中断触发方式,可由用户对定时器控制寄存器TCON中IT0和IT1位状态的设定来选取0STC89C51在每个机器周期的S5P2时对INTO、线上中断请求信号进行一次检测,检测方式和中断触发方式的选取有关。
若STC89C51设定为电平触发方式(IT0=0或IT仁0),则CPU检测到INTO、INT1上低电平时就可认定其上中断请求有效;若设定为边沿触发方式(ITO=1或IT仁1),则CPU需要两次检测INT0、INT1线上电平方能确定其上中断请求是否有效,即前一次检测为高电平和后一次检测为低电平时中断请求才有效0
(2)定时器溢出中断源
定时器溢出中断由STC89C51内部定时器分的中断源产生,故它们属于内部中断oSTC89C51内部有两个16位定时器/计数器,受内部定时脉冲(主脉冲经12分频后)或T0/T1弓I脚上输入的外部定时脉冲计数。
定时器T0/T1在定时脉冲作用下从全“1变成全“0时可以自动向CPU提出溢出中断请求,以表明定时器T0或T1的定时时间已到。
(3)串行口中断源
串行口中断由STC89C51内部串行口的中断源产生,也是一种内部中断。
串行口中断分为串行口发送中断和串行口接收中断两种。
在串行口进行发送/接收数据
时,每当串行口发送/接收完一组串行数据时串行口电路自动使串行口控制寄存器SCON中的RI或TI中断标志位置位,并自动向CPU发出串行口中断请求,CPU响应串行口中断后便立即转入串行口中断服务程序执行。
因此,只要在串行口中断
服务程序中安排一段对SCON中RI和TI中断标志位状态的判断程序,便可区分串行口发生了接收中断请求还是发送中断请求。
(4)中断标志
STC89C51在S5P2时检测(或接收)外部(内部)中断源发来的中断请求信号后先使相应中断标志位置位,然后便在下个机器周期检测这些中断标志位状态,以决定是否响应该中断。
STC89C51新特点和功能
一、ISP与IAP编程方式
STC89C系列单片机芯片内置了ISP(在系统可编程)/IAP(在应用可编程)功能,无需专用编程
器即可通过串口(P3.0/P3.1)用STC提供的STC-ISP.exe软件进行烧录。
新出厂的STC89C5係列单片机芯片,已经设置为单片机彻底放电后再复位,即会先进行
ISP监控。
当单片机检测到P3.0/RXD引脚有合法的下载命令流时,就会先将用户程序下载并烧录到用户程序区,再运行用户程序,否则软复位到用户程序区,运行用户程序。
在进行ISP
烧录时,可以选择下次冷启动时是依旧先进行ISP监控,还是需要P1.0和P1.1引脚同时为
0才进行ISP监控,否则跳过ISP监控直接运行用户程序(见图)。
6时钟,机器周期模式
标准的8051每个机器周期为12时钟。
增强型的STC89C系列单片机在进行ISP烧录程序时,可以设置为6时钟/机器周期(双倍速)或12时钟/机器周期工作模式•
6时钟/机器周期(双倍速)工作模式下,定时器的计数速度会加倍,相应的12时钟/机器
周期模式下的串口波特率也会加倍,因此单片机使用的最高的波特率可以提高一倍。
三•降低簟片机对外部电磁辐射
通过设置6时钟/机器周期.(双倍速),可以将外接晶振频率降低一半,能有效降低对外部电
磁辐射(EMI)。
更重要的是,STC89C系列单片机可以关闭ALE输出,最有效地降低EMI。
通过将ALEoff位(AUXR.0)置1,可以使ALE引脚仅在读取外接存储器时才有变化电平输出,从而降低对外部电磁辐射。
四、内部扩展RAM
STC89C系列单片机中的51/52/53(RC系列)在原有8052共256字节RAM的基础上,又扩展了25