《烘干箱的智能温控仪表设计(已处理) .doc》由会员分享,可在线阅读,更多相关《烘干箱的智能温控仪表设计(已处理) .doc(33页珍藏版)》请在三一办公上搜索。
1、烘干箱的智能温控仪表设计 太原理工大学现代科技学院 智能温控仪表设计 课程设计 设计名称 烘干箱的智能温控仪表设计 专业班级 自动化09-1班 学 号 2009100624 姓 名 指导教师 摘 要 近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。 本文从硬件和软件两方面来讲述对烘干箱温度的自动控制过程,在控制过程中主要应用AT89C51、ADC0809、LED显示器、LM324比较器,而主要是通过 AD590数字温度传感器采集环境温度,以单片机为核心控制部件,并通过四位数码管显示实时温度的一种数字温度计。软件方面采用汇编语言来进行程序设计
2、,使指令的执行速度快,节省存储空间。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。关键词:单片机系统;传感器;数据采集;模数转换器;温度目 录1 绪 论21.1课题的背景及其意义21.2课题研究的内容及要求31.2.1 课题的主要研究的内容32 STC89C51系列单片机介绍及硬件设计52.1 STC89C51系列单片机介绍52.1.1 SATC89C51系列基本组成及特性52.1.2 STC89C51系列引脚功能62.1.3 STC89C51系列单片机的功能单元92.2 硬件设计152.2.1 温度采样部分182.2.2 控制温
3、度182.2.3 模数转换部分182.2.4 模数转换技术182.2.5 积分型模数转换器192.2.6 显示部分193 软件设计223.1主程序流程图223.2 读温度子程序233.3 计算温度子程序233.4按键流程图243.5 显示流程图25结 论27参考文献28专业班级 自动化09-1学号 2009100624姓名邸汉生 成绩 1 绪 论1.1课题的背景及其意义 现代工业设计,工程建设及日常生活中温度控制都起着重要的作用,早期的温度控制主要用于工厂时间生产中,能起到实时采集温度数据,提高生产效率,产品质量之用。随着人们生活质量的提高,现代社会中的温度控制不仅应用在工厂生产方面也应用于酒
4、店,厂房以及家庭生活中,在有些应用中,如高精度的生产厂房,对温度的要求极其严格,温度的变化极有可能对生产的产品造成极大的影响。因此,这就需要一种能够及时检测温度变化以及温度变化的设备,提供温度数据值,使人们对温度的变化做及时的调整,多点温度控制可根据人们不同的应用环境自行设置该环境的温度值,及时反映生产,生活中温度变化使人们能及时看到温度变化的第一手资料,提示人们温度变化情况,协助人们能及时的调整,起到温度报警作用,使温度控制更好的服务于社会生产,生活。 电子技术的飞速发展,给人类的生活带来了根本的的变革,特别是随着大规模集成电路的产生而出现了微型计算机,更是将人类社会带入了一个新的时代。利用
5、微机的强大功能。人们可以完成各种各样的控制。然而,微机造价高,对于大多数的工业控制来说,也并不需要微机那样强大的功能,于是单片机就运用而生了。单片机其实就是一个简化的微机,将微机的CPU,存储器,I/O接口。定时器/计数器等集成在一片芯片上就是单片机了,它主要用来完成各种控制功能。相对微机来说,单片机价格低,非常适合于应用在简单 的控制场合以降低成本。另外,单片机是按照工业控制要求设计的,其可靠性很高,可在工业现场复杂的环境下运行。单片机依靠其高的可靠性和极高的性价比,在工业控制,数据采集,智能化仪表,家用电器等方面得到极为广泛的应用。 温度是表征物体冷热程度的物理量,温度测量则是工农业生产过
6、程中一个很重要而普遍的参数。温度的测量及控制对保证产品质量、提高生产效率、节约能源、生产安全、促进国民经济的发展起到非常重要的作用。由于温度测量的普遍性,温度传感器的数量在各种传感器中居首位。而且随着科学技术和生产的不断发展,温度传感器的种类还是在不断增加丰富来满足生产生活中的需要。 在单片机温度测量系统中的关键是测量温度、控制温度和保持温度,温度测量是工业对象中主要的被控参数之一。因此,单片机温度测量则是对温度进行有效的测量,并且能够在工业生产中得到了广泛的应用,尤其在电力工程、化工生产、机械制造、冶金工业等重要工业领域中,担负着重要的测量任务。在日常生活中,也可广泛实用于地热、空调器、电加
7、热器等各种家庭室温测量及工业设备温度测量场合。但温度是一个模拟量,如果采用适当的技术和元件,将模拟的温度量转化为数字量虽不困难,但电路较复杂,成本较高。1.2课题研究的内容及要求1.2.1 课题的主要研究的内容 本文所要研究的课题是基于单片机控制的水温控制系统的设计,主要是介绍了对水箱温度的显示、控制及报警,实现了温度的实时显示及控制。水箱水温控制部分,提出了用DS18S20、AT89C51单片机及LED的硬件电路完成对水温的实时检测及显示,利用DS18S20与单片机连接由软件与硬件电路配合来实现对加热电阻丝的实时控制及超出设定的上下限温度的报警系统。而炉内温度控制部分,采用一套PID闭环负反
8、馈控制系统,由DS18S20检测炉内温度,用中值滤波的方法取一个值存入程序存取器内部一个单元作为最后检测信号,并在LED中显示。控制器是用89C51单片机,用PID算法对检测信号和设定值的差值进行调节后输出控制信号给执行机构,去调节电阻炉的加热功率,从而控制炉内温度。它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等优点,特别适合于构成多点的温度测控系统,可直接将温度转化成串行数字信号供微机处理,而且每片DS18S20都有唯一的产品号,可以一并存入其ROM中,以便在构成大型温度测控系统时在单线上挂接任意多个AD590芯片。从AD590读出或写入AD590信息仅需要一根口线,其读写及其温
9、度变换功率来源于数据总线,该总线本身也可以向所挂接的AD590供电,而且不需要额外电源。同时AD590能提供九位温度读数,它无需任何外围硬件即可方便地构成温度检测系统。而且利用本次的设计主要实现温度测试,温度显示,温度门限设定,超过设定的门限值时自动启动加热装置等功能。而且还要以单片机为主机,使温度传感器通过一根口线与单片机相连接,再加上温度控制部分和人机对话部分来共同实现温度的监测与控制。1.2.2 用单片机实现其具体控制功能如下: (1)能够连续测量水的温度值,用十进制数码管来显示水的实际温度。 (2)能够设定水的温度值,设定范围是3090。 (3)能够实现水温的自动控制,如果设定水温为8
10、5,则能使水温保持恒定在85的温度下运行。 (4)用单片机STC89C51控制,通过按键来控制水温的设定值,数值采用数码管显示。 2 ST89C51系列单片机介绍及硬件设计2.1 ST89C51系列单片机介绍2.1.1 ST89C51系列基本组成及特性 ST89C51是一种带4k字节闪烁可编程可擦除只读存储器(FPEROM?Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。STC89C52RC是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为
11、80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。STC89C52RC系列单片机是单时钟/ 机器周期1T的兼容8051 内核单片机,是高速/ 低功耗的新一代8051 单片机,全新的流水线/ 精简指令集结构,内部集成810 专用复位电路。ST89C51基本功能描述如下:特点 1增强型1T 流水线/ 精简指令集结构8051 CP
12、U 2工作电压:3.4V-5.5V (5V 单片机)/ 2.0V-3.8V (3V 单片机 3工作频率范围:0 -35 MHz,相当于普通8051 的0420MHz.实际工作频率可达48MHz. 4用户应用程序空间12K / 10K / 8K / 6K / 4K / 2K 字节 5片上集成512 字节RAM 6通用I/O 口(27/23个),复位后为:准双向口/ 弱上拉(普通8051 传统I/O 口) 可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/ 高阻,开漏 每个I/O 口驱动能力均可达到20mA,但整个芯片最大不得超过55mA 7ISP(在系统可编程)/IAP(在应用可编
13、程),无需专用编程器 可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片 8EEPROM 功能 9看门狗 10内部集成810 专用复位电路(外部晶体20M 以下时,可省外部复位电路) 11时钟源:外部高精度晶体/ 时钟,内部R/C 振荡器。用户在下载用户程序时,可选择是使用内部R/C 振荡器还是外部晶体/ 时钟。常温下内部R/C 振荡器频率为:5.2MHz 6.8MHz。精度要求不高时,可选择使用内部时钟,因为有温漂,请选4MHz 8MHz 12有2个16 位定时器/ 计数器 13外部中断2 路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断低电平触发中断方
14、式唤醒 14PWM 4 路)/ P C A(可编程计数器阵列),也可用来再实现4个定时器或4个外部中断上升沿中断/ 下降沿中断均可支持 15STC89Cc516AD具有ADC功能。10 位精度ADC,共8 路 16通用异步串行口UART 17SPI 同步通信口,主模式/ 从模式 18工作温度范围:0 -75/ -40 -+85 19封装:PDIP-28,SOP-28,PDIP-20,SOP-20,PLCC-32,TSSOP-20超小封状,定货 2.1.2 STC89C51系列引脚功能 STC89C51有40引脚双列直插(DIP)形式。其与80C51引脚结构基本相同,其逻辑引脚图如图2-1。图2
15、-1 STC89C51逻辑引脚图各引脚功能叙述如下:1.电源和晶振 VCC?运行和程序校验时加+5V GND?接地 XTAL1?输入到振荡器的反向放大器 XTAL2?反向放大器的输出,输入到内部时钟发生器 (当使用外部振荡器时,XTAL1接地,XTAL2接收振荡器信号) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。
16、然而要注意的是:每当用作外部数据存储器时,将跳过一个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.0?T2,是定时器的计数端且位输入;P1.1?T2
17、EX,是定时器的外部输入端。这时,读两个特殊输入引脚的输出锁存器应由程序置1。 P2口?8位、准双向I/O口。当使用片外存储器(ROM及RAM)时,输出高8位地址。在编程/校验期间,接收高位字节地址。P2口可以驱动4个LSTTL负载。 P3口?8位、准双向I/O口,具有内部上拉电路。P3口提供各种替代功能。在提供这些功能时,其输出锁存器应由程序置1。P3口可以输入/输出4个LSTTL负载。3.串行口 P3.0?RXD(串行输入口),输入。 P3.1?TXD(串行输出口),输出。4.中断 P3.2?INT0外部中断0,输入。 P3.3?INT1外部中断1,输入。5.定时器/计数器 P3.4?T0
18、定时器/计数器0的外部输入,输入。 P3.5?T1定时器/计数器1的外部输入,输入。6.数据存储器选通 P3.6?WR低电平有效,输出,片外存储器写选通。 P3.7?RD低电平有效,输出,片外存储器读选通。7.控制线共4根 输入: RST?复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 EA/Vpp?片外程序存储器访问允许信号,低电平有效。在编程时,其上施加21V的编程电压。 注意:在加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 输入、输出: ALE/PROG?地址锁
19、存允许信号,输出。ALE以1/6的振荡频率稳定速率输出,可用作对外输出的时钟或用于定时。在EPROM编程期间,作输入,输入编程脉冲(PROG)。ALE可以驱动8个LSTTL负载。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。 注意:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高
20、。如果微处理器在外部执行状态ALE禁止,置位无效。 输出: PSEN?片外程序存储器选通信号,低电平有效。在从片外程序存储器取址期间,在每个机器周期中,当PSEN有效时,程序存储器的内容被送上P0口(数据总线)。PSEN可以驱动8个LSTTL负载。2.1.3 STC89C51系列单片机的功能单元1.并行I/O接口: 单片机芯片内有一项主要功能就是并行I/O口。51系列共有4个8位的并行I/O口,分别记作P0、P1、P2、P3每个口都包含一个锁存器,一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低八位地址和数据由P0口分时传
21、送,高八位地址由P2口传送。2.定时器/计数器 定时器/计数器(timer/counter)是单片机中的重要部件,其工作方式灵活、编程简单,使用它对减轻CPU的负担和简化外围电路都大有好处。 C51系列包含有两个16位的可编程定时器/计数器分别称为定时器/计数器T0和定时器/计数器T1;在C51部分产品中,还包含有一个用做看门狗的8位定时器。定时器/计数器的核心是一个加1计数引脚上施加器,其基本功能是加1功能。在单片机的定时器T0或T1中,有一个定时器发生由0到1的跳变时,计数器增1,即为计数功能;在单片机内部对机器周期或其分频进行计数,从而得到定时,这就是定时功能。在单片机中,定时功能和计数
22、功能的设定和控制都是通过软件来进行的。 定时器/计数器内部结构及其原理:由定时器0、定时器1、定时器方式寄存器TMOD和定时器控制寄存器TCON组成。当定时器/计数器设置为定时工作方式时,计数器对内部机器周期计数,每过一个机器周期,计数器加1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,因为C51系列单片机的一个机器周期由12个振荡脉冲组成,所以,计数频率fcfosc/12。如果单片机系统采用12MHz晶振,则计数周期为: 2-1这是最短的定时周期,适当选择定时器的初值可获取各种定时时间。 当定时器/计数器设置为计数工作方式时,计数器对来自输入引脚T0(P3.4)和T1(P3.5)
23、的外部信号计数,外部脉冲的下降沿将触发计数。在每个机器周期的S5P2期间采样引脚输入电平,若前一个机器周期采样值为1,后一个机器周期采样值为0,则计数器加1。新的计数值是在检测到输入引脚电平发生1到0的负跳变后,于下一个机器周期的S3P1期间装入计数器中的,可见,检测一个由1到0的负跳变需要两个机器周期,所以最高检测频率为振荡频率的1/24。计数器对外部输入信号的占空比没有特别的限制,但必须保证输入信号的高电平与低电平的持续时间在一个机器周期以上。3.振荡器 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器
24、件,XTAL2应不接。当输入至内部时钟信号时要通过一个二分频触发器,而对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4.芯片擦除 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM、定时器、计数器、串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个
25、硬件复位为止。5.中断系统 中断系统是单片机的重要组成部分。实时控制、故障自动处理、单片机与外围设备间的数据传送往往采用中断系统。中断系统大大提高了系统的效率。 C51系统有关中断的寄存器有4个,分别为中断源寄存器TCON和SCON、中断允许控制寄存器IE和中断优先级控制寄存器IP;中断源有5个,分别为外部中断0请求INT0、外部中断1请求INT1、定时器0溢出中断请求TF0、定时器1溢出中断请求TF1和串行中断请求R1或T1。5个中断源的排列顺序由中断优先级控制寄存器IP和顺序查询逻辑电路共同决定,5个中断源分别对应5个固定的中断入口地址。中断的特点是分时操作,实时处理和故障处理。 简单介绍
26、一下本次设计所需的单片机芯片STC89C51的中断系统中要用到的中断类型。 (1) 外部中断源 STC89C51有INT0和INT1两条外部中断请求输入线,用于输入两个外部中断源的中断请求信号,并允许外部中断源以低电平或负边沿两种中断触发方式来输入中断请求信号。STC89C51究竟工作于哪种中断触发方式,可由用户对定时器控制寄存器TCON中IT0和IT1位状态的设定来选取。STC89C51在每个机器周期的S5P2时对INT0、线上中断请求信号进行一次检测,检测方式和中断触发方式的选取有关。若STC89C51设定为电平触发方式IT00或IT10,则CPU检测到INT0、INT1上低电平时就可认定
27、其上中断请求有效;若设定为边沿触发方式IT01或IT11,则CPU需要两次检测INT0、INT1线上电平方能确定其上中断请求是否有效,即前一次检测为高电平和后一次检测为低电平时中断请求才有效。 (2) 定时器溢出中断源 定时器溢出中断由STC89C51内部定时器分的中断源产生,故它们属于内部中断。STC89C51内部有两个16位定时器/计数器,受内部定时脉冲主脉冲经12分频后或T0/T1引脚上输入的外部定时脉冲计数。定时器T0/T1在定时脉冲作用下从全“1”变成全“0”时可以自动向CPU提出溢出中断请求,以表明定时器T0或T1的定时时间已到。 (3) 串行口中断源 串行口中断由STC89C51
28、内部串行口的中断源产生,也是一种内部中断。串行口中断分为串行口发送中断和串行口接收中断两种。在串行口进行发送/接收数据时,每当串行口发送/接收完一组串行数据时串行口电路自动使串行口控制寄存器SCON中的RI或TI中断标志位置位,并自动向CPU发出串行口中断请求,CPU响应串行口中断后便立即转入串行口中断服务程序执行。因此,只要在串行口中断服务程序中安排一段对SCON中RI和TI中断标志位状态的判断程序,便可区分串行口发生了接收中断请求还是发送中断请求。 (4) 中断标志 STC89C51在S5P2时检测或接收外部内部中断源发来的中断请求信号后先使相应中断标志位置位,然后便在下个机器周期检测这些
29、中断标志位状态,以决定是否响应该中断。STC89C51新特点和功能一、ISP与IAP编程方式STC89C系列单片机芯片内置了ISP在系统可编程/IAP在应用可编程功能,无需专用编程器即可通过串口P3.0/P3.1用STC提供的STC-ISP.exe软件进行烧录。 新出厂的STC89C51系列单片机芯片,已经设置为单片机彻底放电后再复位,即会先进行ISP监控。当单片机检测到P3.0/RxD引脚有合法的下载命令流时,就会先将用户程序下载并烧录到用户程序区,再运行用户程序,否则软复位到用户程序区,运行用户程序。在进行ISP烧录时,可以选择下次冷启动时是依旧先进行ISP监控,还是需要P1.0和P1.1
30、引脚同时为0才进行ISP监控,否则跳过ISP监控直接运行用户程序见图。 二.6时钟,机器周期模式标准的8051每个机器周期为12时钟。增强型的STC89C系列单片机在进行ISP烧录程序时,可以设置为6时钟/机器周期双倍速或12时钟/机器周期工作模式. 6时钟/机器周期双倍速工作模式下,定时器的计数速度会加倍,相应的12时钟/机器周期模式下的串口波特率也会加倍,因此单片机使用的最高的波特率可以提高一倍。 三.降低簟片机对外部电磁辐射通过设置6时钟/机器周期.双倍速,可以将外接晶振频率降低一半,能有效降低对外部电磁辐射EMI。 更重要的是,STC89C系列单片机可以关闭ALE输出,最有效地降低EM
31、I。 通过将ALEoff位AUXR.0置1,可以使ALE引脚仅在读取外接存储器时才有变化电平输出,从而降低对外部电磁辐射。 四、内部扩展RAMSTC89C系列单片机中的51/52/53RC系列在原有8052共256字节RAM的基础上,又扩展了256字节RAM,共有512字节RAM000H1FFH。54/58/516RD+系列则扩展了1024字节RAM,共有1280字节RAM000H3FFH。 通过设置EXTRAM位见表1,在使用MOVXDPTR,A/MOVXA,DPTR指令时,如访问在内部RAM范围内将会访问到内部RAM,超出此范围才会访问外部RAM。访问内部RAM时,不影响P0口/P2口/P
32、3.6/P3.7。 需要注意的是,部分型号的AUXR是只写寄存器,如果去读,所读出的数值将是不确定的。 五.双DPTR数据指针标准的8051只有一个1 6位的DPTR数据指针,这样在进行数据块复制等动作时,必须对源地址指针和目标地址指针进行暂存,编程会非常麻烦。STC89C系列单片机内有两个DPTR数据指针DPTR0/DPTR1,可以通过设置DPS位AUXR1.0方便地选择,DPS置0则选中DPTRO,置1则选中DPTR1。通过执行INCAUXR1指令,能对DPS快速切换,并不影响AUXR1的高位。此用法与PHILIPS单片机完全一致。 六.扩晨P4口从引脚图上可以看出,PLCC-44、PQF
33、P-44两种封装方式比PDIP-40多出的4个引脚在STC89C51RC/RD+系列单片机上被做成了P4口SFR地址为0E8H,由P4.0P4.3四条口线组成,使用方式上与原有I/0完全一致,可以位操作。 七、内置看门狗电路RC/RD+型号的STC89C系列单片机均内置了看门狗电路。内置看门狗由看门狗定时器控制寄存器WDT_CONTR见表2控制。 EN_WDT位WDT_CONTR.5为看门狗允许位,置1时即启动看门狗。CLR_WDT位WDT_CONTR.4为看门狗清零位,置1则看门狗将重新计数,此位由硬件自动清零。IDLE_WDT位WDTl_CONTR.3为看门狗空闲模式位,当置为1时,看门狗
34、在“空闲模式”时继续计数,当清零时,看门狗在“空闲模式”时不计数。PS2PS0位WDT_CONTR.20用于设定看门狗溢出时间,看门狗溢出时间NPre-scale32768/晶振频率。其中N为每个机器周期的时钟数,标准模式为12,双倍速时为6。Pre-scale为PS2PS0位所设定的预分频值。 八.软复位功能STC89C系列单片机新增加的ISP_CONTR特殊功能寄存器SFR地址为0E7H,实现了单片机系统软复位热启动之一功能。用户只需简单地控制ISP_CONTR特殊功能寄存器的其中商位SWBS/SWRST就可以系统复位了。SWBS位ISP_CONTR.6选择从用户应用程序区启动0,还是从I
35、SP程序区启动1。要与SWRST位配合才可以实现,SWRST位ISP_CONTR.5置0则无操作,置1则实现系统复位,硬件自动清零。软复位与硬件复位一样,所有的特殊功能寄存器都会复位到初始值,I/O口也会初始化。 九.带A/D功能的89LE系列STC89LE51/52/54/58/516AD型号均内带一个8位精度的高速A/D转换器,扩展RAM均为256字节共512字节,仅能用MOVX A,Ri/MOVX A,Ri指令访问,不能设置6时钟/机器周期双倍速模式,其余均与前几部分相同。另有一款STC89LE516X2,比STC89LE516AD增加6时钟/机器周期双倍速模式。A/D转换器为电压输入型
36、,可做按键扫描、电池电压检测、频谱检测等。 STC89LE516AD/X2系列允许将P1.0P1.7作为A/D口使用,P1_ADC_EN特殊功能寄存器SFR地址为097H作为A/D转换输入通道允许控制,相应位为“1”时,对应的P1.x口被允许作为A/D转换使用,内部上拉电阻自动断开。2.2 硬件设计 本设计采用按键作为输入控制,通过温度多采样单元采集温度信息,经过LM324放大器放大及ADC0809数模转换器将其转换,由主机STC89C51进行处理并将实际温度值和设定温度值分别显示在共阳极数码显示管LED上。2.2.1 温度采样部分 温度采样单元用于采集被控制对象的温度采集参数,它由温度电压转
37、换,小信号放大及A/D转换三部分组成,其中将温度转化为电量的温度电压转换由温度传感器?热敏电阻实现,A/D转换选择模数转换器ADC0809将采集的温度模拟信号转换为8255能处理的二进制数字信号。 ADC0809是位A/D转换芯片,它是采用逐次逼近的方法完成A/D转换的。ADC0809由单+5V电源供电;片内带有锁存功能的8路模拟多路开关,可对8路05V的输入模拟电压分时进行转换,完成一次转换约需100S;片内具有多路开关的地址译码器和锁存器、高阻抗斩波器、稳定的比较器,256电阻T型网络和树状电子开关以及逐次逼近寄存器。ADC0809是引脚双列直插式封装,引脚及其功能(图2.1):1.D7D
38、0:8位数字量输出引脚。2.IN0IN7:8路模拟量输入引脚。3.VCC:+5V工作电压。4.GND:接地。5.REF(+):参考电压正端。6.REF(-):参考电压负端。7.START:A/D转换启动信号输入端。8.A、B、C:地址输入端。9.ALE:地址锁存允许信号输入端。10.EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。11.OE: 输出允许控制端,用以打开三态数据输出锁存器。12.CLK:时钟信号输入端,译码后可选通IN0IN7八个通道中的一个进行转换。 图2-1.1 ADC0809的管脚图 温度采样单元,如2.2所示,用于采集被控对象的温度参数,它由温度电
39、压转换、小信号放大及A/D转换三部分组成。其中,将温度转化为电量的温度电压转换由温度传感器-热敏电阻实现,小信号放大由桥式放大电路实现,A/D转换选择模数转换器ADC0809,将采集到的温度模拟信号转换为STC89C51能够处理的二进制数字信号。 图2-2 温度采样单元 该系统的下位机8255单片机作为控制核心,负责采集现场温度值。温度传感器将温度转换为电压信号,经模/数转换器ADC0809转换成8位数字量,并经8255的P1口进入单片机保存。上位PC机通过串行口与下位机联络,向下位机发送控制命令和接收下位机上传的数据以及进行人机交互。上位机采用VB 6.0进行人机交互界面设计,并利用其MSC
40、omm控件实现与下位机简单而高效的串行通信。充分发挥了单片机在实时数据采集和PC机对图形处理、显示以及数据库管理上的优点。使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而是形成了以网络为核心的分布式多点系统的发展趋势。2.2.2 控制温度 单片机是集成了中央处理部件,存储器、定时器和各种输入输出设备等接口部件。具有集成度高,功能强、速度快、体积小、功耗小、使用方便、价格便宜等优点,在工业生产中,电流、电压、温度、压力流量和开关量都是常用的被控参数。其中,温度控制也越来越重要。在工业生产的很多领域中,人们都需要对各类加热炉、热处理炉、反应炉中的温度进行检测和控制。采用单片机对温度进行
41、控制方便、简单、灵活。而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。 2.2.3 模数转换部分 模数转换是将模拟输入信号转换为N位二进制数字输出信号的技术。采用数字信号处理能够方便地实现各种先进的自适应算法,完成模拟电路无法实现的功能,因此,越来越多的模拟信号处理正在被数字技术所取代。与之相应的是,作为模拟系统和数字系统之间桥梁的模数转换的应用日趋广泛。为了满足市场的需求,各芯片制造公司不断推出性能更加先进的新产品、新技术,令人目不暇接。2.2.4 模数转换技术 本次设计还涉及到数模转换技术,而模数转换技术包括采样、保持、量化和编码四个过程。 1.采样就是将一个连续
42、变化的模拟信号xt转换成时间上离散的采样信号xn。根据奈奎斯特采样定理,对于采样信号xt,如果采样频率fs大于或等于2ff为xt最高频率成分,则可以无失真地重建恢复原始信号xt。实际上,由于模数转换器器件的非线性失真、量化噪声及接收机噪声等因素的影响采样速率一般取fs2.5f。通常采样脉冲的宽度tw是很短的,故采样输出是断续的窄脉冲。 2.要把一个采样输出信号数字化,需要将采样输出所得的瞬时模拟信号保持一段时间,这就是保持过程。 3.量化是将连续幅度的抽样信号转换成离散时间、离散幅度的数字信号,量化的主要问题就是量化误差。假设噪声信号在量化电平中是均匀分布的,则量化噪声均方值与量化间隔和模数转
43、换器的输入阻抗值有关。 4.编码是将量化后的信号编码成二进制代码输出。这些过程有些是合并进行的,例如,采样和保持就利用一个电路连续完成,量化和编码也是在转换过程中同时实现的,且所用时间又是保持时间的一部分。2.2.5 积分型模数转换器 积分型模数转换器称双斜率或多斜率数据转换器,是应用最为广泛的转换器类型。双斜率转换器包括两个主要部分:一部分电路采样并量化输人电压,产生一个时域间隔或脉冲序列,再由一个计数器将其转换为数字量输出。双斜率转换器由1个带有输人切换开关的模拟积分器、1个比较器和1个计数单元构成。积分器对输入电压在固定的时间间隔内积分,该时间间隔通常对应于内部计数单元的最大计数。时间到
44、达后将计数器复位并将积分器输入连接到反极性负参考电压。在这个反极性信号作用下,积分器被“反向积分”直到输出回到零,并使计数器终止,积分器复位。 积分型模数转换器的采样速度和带宽都非常低,但它们的精度可以做得很高,并且抑制高频噪声和固定的低频干扰如50 Hz或60 Hz的能力,使其对于嘈杂的工业环境以及不要求高转换速率的应用非常有效。2.2.6 显示部分 本部分电路主要使用七段数码管和移位寄存器芯片74LS164.单片机通过I2CC总线将要显示的数据信号传送到移位寄存器芯片74LS164寄存,再由移位寄存器控制数码管的显示,从而实现移位寄存点亮数码管显示。由于单片机的时钟频率达到12M,移位寄存
45、器的移位速度相当快,所以我们根本看不到数据是一位一位传输的。从人类视觉的角度看,就仿佛是全部数码管同步显示的一样。 移位寄存器74LS164的引脚如图2-6所示:图2-12移位寄存器74LS164引脚图 74LS164为串行输入、并行输出移位寄存器,其引脚功能如下: A、B ? 串行输入端; Q0Q7 ? 并行输出端; ? 清除端,低电平有效; CLK ? 时钟脉冲输入端,上升沿有效。 多片74LS164串联,能实现多位LED静态显示。每扩展一片164就可增加一位显示。MR接+5V,不清除。 在本系统中使用的移位寄存器74LS164时,是用芯片的贴片封装。贴片封装直接焊接在数码管电路的背面,这
46、样既能实现强大的功能又合理利用电路的空间,而且整个显示电路小巧玲珑,在总安装时方便。采用移位寄存器控制数码管显示出本系统的数据,也是本系统的一个优点。图2?13 LED 显示电路3 软件设计3.1主程序流程图 系统的软件部分由主程序流程图、中断子程序流程图、按键流程图和显示流程图四部分组成。系统的主程序流程图如图4-1,当有信号输入时,主程序启动,根据内部设定的条件逐步运行,达到设计目的。 图4-1主程序流程图3.2 读温度子程序 本文选用AD590传感器,读出温度子程序的主要功能包括初始化,判断AD590是否存在。或存在则进行一系列的读操作,若不存在则返回。其程序流程图如图4?3所示。图4?3读温度流程图3.3 计算温度子程序 计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图4?4所示。 4?4计算温度子程序3.4按键流程图 图4-3为系统的按键流程图。主要是通过人为的对外部按键的控制来调节系统的温度,从而实现系统对温度的手动和自动控制。 图4-3 按键流程图3.5 显示流程图图4-4为系统的显示流程图。主要是通过对传输过来的信号进行显