1、毕业设计说明书MCS-51 单片机温度控制系统 作 者 :学 号:学院 (系 ):专 业 :指导教师: 评 阅 人: 1 引言 .31.1 课题研究的目和意义 31.2 温度控制系统的国内外现状 31.3 温度控制系统方案 41.4 论文的主要任务和所做的工作 52 单片机温度控制系统总体设计及原理 .62.1 系统的主要功能 62.2 系统的工作原理 62.3 系统的主要技术指标 72.4 系统的总体结构 73 温度控制系统的硬件设计 .83.1 温度测量放大电路 83.1.1 温度传感器的选择及基本工作原理 .83.1.2 放大电路的设计 .93.2 主要的接口电路 103.2.1 模数转
2、换电路 .103.2.2 键盘接口和数码显示 .113.2.3 程序存储器和并行接口的扩展及报警电路 .123.2.4 温度控制电路 .154 温度控制系统的软件设计 .184.1 主程序设计及中断服务程序设计 184.1.1 温度控制主程序流程简图 .184.1.2 中断服务程序设计 .194.2 温度控制程序子程序 214.2.1 键盘扫描和温度显示程序设计 .214.2.2 炉温采样、数字滤波程序设计 .234.2.3 温度标度转换算法 .264.3 PID 控制算法 .284.3.1 PID 算法基本原理 284.3.2 PID 算法及子程序 305 结论与展望 .32附录 B:键盘/
3、LED 接口图 .34附录 C:系统源程序 .35参 考 文 献 .44致 谢 .46本科毕业设计说明书第 3 页 共 44 页MCS-51 单片机温度控制系统摘 要单片机在检测和控制系统中得到了广泛的应用,温度是一个系统经常需要测量、控制和保持的量,而温度是一个模拟量,不能直接与单片机交换信息,采用适当的技术将模拟的温度量转化为数字量在原理上虽然不困难但成本较高,还会遇到其它方面的问题。因此对单片机温度控制系统的研究有重要目的和意义。 本文主要介绍了以 MCS-51 系列单片机 8031、AD574、8155、可控硅、LM311等芯片组成的温度检测电路,模/数转换电路,键盘/LED 显示电路
4、,报警电路,信号放大电路;在描述了外围硬件电路的同时,还做了大量的软件工作,包括数据处理软件,PID 控制算法。本设计有效的提高了控制系统的实时性和控制精度大大改善了炉温控制的自动化程度,具有较高的实用价值。关键词:单片机,PID 算法 ,温度采样,温度控制MCS-51 SINGLE-CHIP TEMPERATURE CONTROL SYSTEMAbstractThe single chip microcomputer is required extensively in measurement and control systems, and the temperature need to
5、be surveyed, controlled and maintained by a system frequently. But the temperature is an analog, can not exchange information with the single chip directly. In principle, it is not difficult to transform the simulated temperature into the digital quantity, if adopting Proper technique .But gets the
6、electric circuit more complex, the lost is more expensive, and other questions can be met. So it is very important for research of single chip temperature control.This article mainly introduced 8031 of series MCS-51、ADC0809、8155、LM311、controllable silicon, which composed temperature measurement and
7、control circuit、A/D transfer circuit、keyboard/LED display、signal magnifying circuit alarming circuit; Some important techniques in a design scheme of the software of the temperature by single-chip Microcomputer are introduced also, such as date processing software, control algorithms software.This s
8、ystem enhances real-time character of control system and control precision effectively, improves the automatic degree of furnace temperature and higher practice valueKey words: Single-chip Microcomputer, PID algorithm, Temperature sampling, Temperature control本科毕业设计说明书第 5 页 共 44 页1 引言1.1 课题研究的目和意义在现
9、代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用 MCS-51 单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,为自动化和各个测控领域中广泛应用的器件,在工业生产中称为必不可少的器件,尤其是在日常生活中发挥的作用也越来越大。因此,单片机对温度的控制问题是一
10、个工业生产中经常会遇到的问题。本论文以上述问题为出发点,设计实现了温度实时测量、显示、控制系统。本设计方案具有较高的测量精度,更加适合对温度精度要求较高的化工生产、电力工程等行业,并希望通过本设计得到举一反三和触类旁通的效果。1.2 温度控制系统的国内外现状通过网上查询、翻阅图书了解到目前国内外市场以单片机为核心的温度控制系统很多,而且方案灵活,且应用面比较广,可用于工业上的加热炉、热处理炉、反应炉,在生活当中的应用也比较广泛,如热水器,室温控制,农业中的大棚温度控制。以上出现的温度控制系统产品,根据其系统组成、使用技术、功能特点、技术指标。选出其中具有代表性的几种如下:1 虚拟仪器温室大棚温
11、度测控系统在农业应用方面虚拟仪器温室大棚温度测控系统是一种比较智能,经济的方案,适于大力推广,改系统能够对大棚内的温度进行采集,然后再进行比较,通过比较对大棚内的温度是否超过温度限制进行分析,如果超过温度限制,温度报警系统将进行报警,来通知管理人员大棚内的温度超过限制,大棚内的温控系统出现故障,从而有利于农作物的生长,提高产量。本系统最大的优点是在一台电脑上可以监测到多个大棚内的温度情况,从而进行控制。该系统 LabVIEW 虚拟仪器编程,通过对前面板的设置来显示温室大棚内的温度,并进行报警,进而对大棚内温度进行控制。该系统有单片机,温度传感器,串口通信,和计算机组成。计算机主要是进行编程,对
12、温度进行显示、报警和控制等;温度传感器是对大棚内温度进行测量,显示;单片机是对温度传感器进行编程,去读温度传感器的温度值,并把半温度值通过串口通信送入计算机;串口通信作用是把单片机送来的数据送到计算机里,起到传输作用。2 电烤箱温度控制系统该方案采用美国 TI 公司生产的 FLASH 型超低功耗 16 位单片机 MSP430F123 为核心器件,通过热电偶检测系统温度,用集成温度传感器 AD590 作为温度测量器件利用该芯片内置的比较器完成高精度 AD 信号采样,根据温度的变化情况,通过单片机编写闭环算法,从而成功地实现了对温度的测量和自动控制功能。其测温范围较低,大概在 0-250 之间,具
13、有精度高,相应速度快等特点。3 小型热水锅炉温度控制系统该设计解决了北方冬季分散取暖采用人工定时烧水供热,耗煤量大,浪费人力,温度变化大的问题。设计方案硬件方面采用 MCS-51 系列 8031 单片机为核心,扩展程序存储器 2732,AD590 温度检测元件测量环境温度和供水温度,ADC0809进行模数转换,同向驱动器 7407、光电耦合器及 9103 的功放完成对电机的控制。软件方面建立了供暖系统的控制系统数学模型。本系统硬件电路简单,软件程序易于实现。它可用于一台或多台小型取暖热水锅炉的温度控制,可使居室温度基本恒定,节煤,节电,省人力。1.3 温度控制系统方案结合本设计的要求和技术指标
14、,通过对系统大致程序量的估计和系统工作速度的估计以及 I/O 口需求量的估计,考虑价格因素。选定 8031 单片机作为系统的主要控制芯片,外围扩展并行接口 8155,程序存储器 EPROM2732,12 位模数转换器 AD574,采用镍铬/镍硅热电偶进行温度检测其测温范围为 0-1000,外接指示灯作为报警电路,8031 对温度的控制是通过双向可控硅实现的。双向可控硅管和加热丝串接在交流 220V、50Hz 市电回路。在给定周期 T 内,8031 只要改变可控硅管的接通时间即可改变加热丝的功率,以达到调节温度的目的。本科毕业设计说明书第 7 页 共 44 页1.4 论文的主要任务和所做的工作本
15、论文主要是完成一种低成本、低价格、功能齐全、及温度测量、温度显示、温度控制于一体的单片机温度控制系统的理论设计。包括硬件电路和主要的控制算法。研究的关键问题是:炉温的精确测量;双向可控硅控制的温度控制电路设计;温度控制算法的选择,本设计采用 PID 控制算法;以及温度标度转换、数字滤波炉温采样等软件设计。根据本设计所要完成的任务本论文完成了如下工作:1 介绍了研究和设计的背景和意义,调查并综述了当前温度控系统市场的国内外现状,2 提出了符合设计要求的高精度温度控制系统方案,并阐述了其工作原理。3 完成了硬件电路的设计,它包括温度检测放大传送电路;包含 MCS-51 系列单片机 8031,外围扩
16、展并行接口 8155,程序存储扩展 2732,模数转换器 AD574等芯片的接口电路;通过双向可控硅管实现的温度控制电路;键盘接口和 LED显示电路,以及实时报警电路。4 基本完成了软件部分设计,它包括键盘扫描、温度控制显示,炉温采样、数字滤波,数据处理,越限报警处理,PID 计算、温度标度转换等的算法。2 单片机温度控制系统总体设计及原理2.1 系统的主要功能(1)对炉温的温度检测和升温、恒温控制。(2)显示检测温度值。(3)当超越上限或下限时自动报警。(4)设定和修改要保持的温度值。2.2 系统的工作原理在温控系统中,需要将温度的变化转换为对应的电信号的变化,由于热电偶的结构简单制造容易,
17、测量范围广,在高温测量中有较高的精度,所以选用镍铬/镍硅热电偶做热电传感器,测温范围 0-1000,最高可测量 1300。热电偶把测量的炉温温度信号转换成弱电压信号,经过信号放大电路,放大后的信号输人到 A/D 转换器(AD574 )转换成数字信号输人主机 (单片机 8031),并送往外接显示电路,主机对电炉温度和设定温度进行比较后如果越限,则软件触发用 8031 的 P1 口控制报警系统输出控制脉冲,该控制脉冲与单稳态同步触发器输出的同步脉冲送人控制门(与非门),门电路信号输人光偶管转换成电流信号,经过三级放大电路输人可控硅的门极,可控硅导通由程序控制同步触发脉冲的来临时间,从而控制可控硅的
18、通断时间,以达到对电炉加热丝温度的调节和功率的改变,实现对电炉的恒温和升温控制。工作流程说明如下:开始,先接通电源,然后将开关打到开的位置,六段数码管显示器就自动显示出当前温度,并且显示出设置温度的缺省值。此时继电器不工作。按下 F1 按键,温度控制系统进入温度控制点的设制。这个时候,显示设置温度的数码管闪烁。 此时可以通过键盘输入预设置的温度。当按下“确定”按键的时候,单片机就会根据所写入的程序,对系统进行控制。当设置的温度高于当前的温度时,单片机通过可控硅控制极上触发脉冲控制加热电路连通。温度慢慢升高。本科毕业设计说明书第 9 页 共 44 页当设置的温度低于当前的温度时,单片机通过可控硅
19、控制极上触发脉冲控制加热电路断开。温度慢慢下降。就这样通过温度芯片的反馈信息,实现水的温度保持在设置温度上,从而达到自动控制温度的功能。2.3 系统的主要技术指标测温范围 :0-1000 温度分辨率:0.5VLED 显示位数:62.4 系统的总体结构系统的硬件电路有温度检测、信号放大、A/D 转换、键盘接口、LED 显示、单稳态触发电路、可控硅控制电路等部分组成,系统结构图见图 1.1炉温采样点温度传感器 滤波信号放大AD 转换单片机系统(8031)双向可控硅光耦驱动过零脉冲提取计时电炉220VLED 显示键盘图 2.1 系统框图3 温度控制系统的硬件设计3.1 温度测量放大电路3.1.1 温
20、度传感器的选择及基本工作原理测量温度的方法虽然很多,但从感受温度的途径来分,不外两大类:一类是接触式的,即通过测温元件与被测物体的接触而感知物体的温度;另一类是非接触的,即通过接收被测物体发出的辐射热来判断温度。由于本系统测量的温度值在:01000,所以最常用的最经济的方法是用热电偶来测量。 当两种不同的导体或半导体连接成闭合回路时,若两个接点温度不同,回路间就会出现热电动势,并产生电流。从物理上看,这一热电势主要是由接触电势组成的。当两种不同导体 J、B 接触时,由于两边的自由电子密度的不同,在交界面上产生电子的相互扩散。若 J 中自由电子密度大扩散的多,使 J 失去较多的电子而带正电荷,相
21、反,B 带负电荷。致使在盘 J、B 接触处产生电场,以阻碍电子的进一步积累,最后达到平衡。在 J、B 两导体间的电位差称为接触热电势。电炉常用热电偶的材料要求:1耐高温-热电偶的测温范围主要取决于热电极的高温性能,也就是说,在高温介质中,热电极的物理化学性能越稳定,则由它组成的热电偶的测温范围就越宽。2灵敏度高,线性好-要求电偶所产生的温差热电势足够大,并与温度呈线性关系; 3要求热电有为材料除能满足上述几点要求外,并希望它的电阻系数和电阻温度系数尽可能地小,且其价格便宜、货源充足。热电偶型号比较多,不同的型号有不同的测温区,对于本系统镍铬镍硅热电偶其分度号为 K,正极成分是 910铬、0.4
22、硅,其余为镍,负极成分为 2.53硅,0.6铬,其余为镍。这类热电偶的优点是有较强的抗氧化性和抗腐蚀性,其化学稳定性好,热电势较大,热电势与温度间的线性关系好,其热电极材料的价格便宜,可在 1000以下长期连续使用,短期测温可达 1300。最高温度 1300,所以镍铬-镍硅热电偶就可以了。 市场上卖的热电偶一般都集成温度补偿电路,理论上应使冷端温度为基点即本科毕业设计说明书第 11 页 共 44 页0,而实际上冷端通常为室温,如果不带可利用 PN 结结电压随温度上升而线形下降的特性来进行补偿,或设置恒温槽。 3.1.2 放大电路的设计0-1000的温度对应 0mV41.3mV ,热电偶出来的
23、mV 电压,大概热端变化一度,热电耦有 40 微伏的电位差输出,无法直接进行 A/D 转换,必须进行放大处理。采用 OOP07 运放组成低漂移高精度前置放大器,对几十微伏变化信号测量比较精确,其放大倍数与 / 成正比,可根据需要设计。其中 OP07 的3RF21、4、5 端与 构成调零电路。再接一级有运放 741 构成的续接放大器就可将1RW毫伏级信号放大到需要的幅度,放大倍数可自己设定,741 的 1、4、5 端与构成调零电路。741 的输出送给后面的模数转换电路。具体接法如图 3.12图 3.1 放大电路因为传感器输出电压为 0mV-42.30mV,而 AD574 段输入电压为 0V10V
24、,所以应该放大 240 倍, 取 OP07 放大 10 倍,741 放大 24 倍,取 =150, =2004R2F由运放原理知道: =20 =3 1RF4=24 =4.83RF23.2 主要的接口电路3.2.1 模数转换电路A/D 转换电路是测控仪表制作的另一个关键所在。 A/D 转换的位数,精度,速度,性能都直接影响着系统的相关性能。考虑到本系统要求精度比较高,选用美国 AD 公司研制的 12 位逐次逼近式 AD574A,它适合高精度快速采集,所以本系统不用设计采样保持电路,节省了硬件。AD574 的主要特性如下:A/D 分辨率:12 或 8 位。转换时间:25 s转换精度:0.05%。单
25、极性模拟输入:0V10V,0V20V双极性模拟输入:5V,10V正电源供电:+12V+15V负电源供电:-12V-5V内部集成有转换时钟,参考电压源和三态输出锁存器,可直接与 16 位或 8 位机直接相连,而且无需外接时钟。其逻辑真值表如表 3.1表 3.1 AD574 真值表CE_S_C/R_8/12A0功能0 不起作用 1 不起作用1 0 0 0 启动 12 位转换1 0 0 1 启动 8 位转换1 0 1 接+5V 12 位数据并行输出1 0 1 接地 0 高八位数据输出1 0 1 接地 1 低 4 位数据尾接 0输出该转换电路的具体接法如图 3.2,因为片内有时钟,故无须外加,该电路采
26、用本科毕业设计说明书第 13 页 共 44 页单极性输入方式,可对 0V10V 模拟信号转换,其中图 3.1 中管脚 8,10,12 把AD574 置成单极性 10V 输入,无论启动、转换,还是结果输出,都要保证 CE 端为高电平,故用 8031 的 和 端通过与非门 74LS00 与 AD574 的 CE 端相连。_RD_W转换结果分高八位、低四位与 P0 口相连,分两次读入,所以 接地。 在_8/12_C/R读取转换结果时保持相应的电平,将来自单片机的控制信号经 74LS373 锁存后再从 Q0 接入,选通信号经译码器译码后选通,AD574 有两个选口地址,由 A0 口区分,把译码器 Q7
27、Q6Q5Q4Q3Q2Q1=B 端接到 则 AD574 的两个选口地址为 F0_CS和 F1H,其中写 F0H 启动 12 位转换,写 F1H 启动 8 位转换,读 F0H 用于读取高八位数字量,读 F1H 用于读取低 4 位数字量,图 3.2 模数转换电路单片机可采用中断、查询、软件延时等方式读取转换结果。本设计时按查询法输入 A/D 转换后的数字量。3.2.2 键盘接口和数码显示在单片机应用系统中,同时需要使用键盘与显示器接口时,为了节省 I/O 口线常常把键盘和显示电路接在一起,构成实用键盘和显示电路,图 3.3 是典型实用的、采用 8155 并行扩展口构成的键盘、显示器电路,图中设置了
28、16 个键,如增加 PC 口可以增加到 61 个,单片机应用系统中除了复位按键有专门的复位电路 ,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。键盘有编码和非编码两种。非编码键盘硬件电路极为简单故本系统采用。6 个 LED 显示器采用共阴极方式,段选码由 8155PB 口提供,位信号有 PA 口提供。键盘的列扫描也由 PA 口提供,查询输入由 PC0PC1 提供,LED 采用动态显示软件,键盘采用逐列扫描查询工作方式。键盘设定如下:键盘共有 12 个按键,用于方便设定温度。数字按键 10 个,输入数字 09 和小数点;确认键一个,设置的确认,修改设置温度时进行确
29、认;清除键一个,设置的清除,修改设置温度时进行删除;F1 键一个,显示及设置转换到预设温度点,按此按键后,显示预设置温度的数码管闪烁;此外,还有两个功能键。图 3.3 键盘接口/LED 显示本科毕业设计说明书第 15 页 共 44 页3.2.3 程序存储器和并行接口的扩展及报警电路MC5-51 系列单片机有三种基本型号:8031,8051 及 87510 它们的管脚及指令系统完全兼容,只是在结构及特性方面有一些差异。8031 是目前应用最多的。8031 内含一个 8 位的 CPU,128 个字节的 ROM, 21 个特殊功能寄存器(SFR) ,4个 8 位并行 I/O 口,1 个双工串行口,2
30、 个 16 位的定时器/ 计数器,但程序寄存器需用外扩 EPROM 芯片。本设计选用了 4KB 的 EPROM2732。外接 6MHZ 的晶振体,即每个周期为 2 微妙,复位信号采用上电复位,通过外部复位电路的电容充电来实现的。这样只要电源 VCC 的上升时间不超过 1ms,就可以实现自动上电复位,即接通电源就完成了系统的初始化。因为 P0 口既要作为地址输出口,还要作为数据读入口所以外接了一个74LS373 八位双向数据锁存器,用来锁存地址信号。74LS373 是否工作由来自8031 的 ALE 数据锁存允许信号控制,当 ALE 高电平时锁存器开始工作。扩展的并行接口 8155 用于键盘和
31、LED 显示接口由图 3.4 可见,在 P2.0=0 和P2.1=0 时,8155 选中它内部的 RAM 工作;在 P2.0=1 和 P2.1=0 时,8155 选中它内部的三个 I/O 端口工作。相应的地址分配为:0000H - 00FFH 8155 内部 RAM0100H 命令/状态口0101H A 口0102H B 口0103H C 口0104H 定时器低 8 位口0105H 定时器高 8 位口8155 用作键盘/LED 显示器接口电路 A 口和所有 LED 的八段引线相连,各LED 的控制端 G 和 8155C 口相连,故 A 口为字形口,C 口为字位口,8031 可以通过 C 口控制
32、 LED 是否点亮,通过 A 口显示字符。2732 是 4KB 的 EPROM 型器件。8031 的 和 2732 的 相连,P2.4 和_PSEN_OE相连,故 2732 的地址空间为:0000H0FFFH_EAD574 的 10VIN 通道和放大电路的输出端相连,所以 10VIN 通道上输入的0V+10V 范围的模拟电压经 A/D 转换后可由 8031 通过程序从 P0 口输入到它的内部 RAM 单元,在 P1.0=0 和 WR=0 时,8031 可使 ALE 和 START 变为高电平而启动 AD574 工作;在 P1.0=0 和 RD=0 时,8031 可以从 AD574 接收 A/D
33、 转换后的数字量。也就是说 AD574 可以视为 8031 的一个外部 RAM 单元,地址为03F8H(地址重复范围很大) ,因此,8031 执行如下程序可以启动 AD574 工作。MOV DPTR, #03F8HMOVX DPTR,A若 8031 执行下列程序:MOV DPTR, #03F8HMOVX A,DPTR则可以从 AD574 输入 A/D 转换后的数字量。本设计的报警电路直接由 8031 的 P1.0,P1.1 ,P1.2 控制外接指示灯。编程实现灯的开关,若测量的温度不越限,则 P1.1 口的绿灯亮,若测量的温度越下限 P1.0口的红灯亮,若测量的温度越上限则 P1.2 口的灯亮
34、。以上电路的具体连接如图3.4本科毕业设计说明书第 17 页 共 44 页图 3.4 程序存储器和并行接口的扩展及报警电路3.2.4 温度控制电路晶闸管又叫可控硅。自从 20 世纪 50 年代问世以来已经发展成了一个大的家族,它的主要成员有单向晶闸管、双向晶闸管、光控晶闸管、逆导晶闸管、可关断晶闸管、快速晶闸管,等等。今天大家使用的是单向晶闸管,也就是人们常说的普通晶闸管,它是由四层半导体材料组成的,有三个 PN 结,对外有三个电极:第一层 P 型半导体引出的电极叫阳极 A,第三层 P 型半导体引出的电极叫控制极G,第四层 N 型半导体引出的电极叫阴极 K,它和二极管一样是一种单方向导电器。晶
35、闸管的特点:是“ 一触即发 ”。但是,如果阳极或控制极外加的是反向电压,晶闸管就不能导通。控制极的作用是通过外加正向触发脉冲使晶闸管导通,却不能使它关断。那么,用什么方法才能使导通的晶闸管关断呢?使导通的晶闸管关断,可以断开阳极电源或使阳极电流小于维持导通的最小值(称为维持电流)。如果晶闸管阳极和阴极之间外加的是交流电压或脉动直流电压,那么,在电压过零时,晶闸管会自行关断。该控制部分的原理框图如图 3.5:图 3.5 温度控制原理框图8031 对温度的控制是通过可控硅调功电路实现的,双向可控硅观和加热丝串接在交流 220V、50HZ 交流市电回路中。在给定的周期 T 内,8031 只要改变可控
36、硅管的接通时间便可改变加热丝功率,以达到调解温度的目的。可控硅在给定周期 T 内具有不同接通时间的情况。显然可控硅在给定周期 T 的 100%时间内接通时的功率最大。可控硅接通时间可以通过可控硅控制极上的触发脉冲控制。该触发脉冲由8031 用软件在 P1.3 引脚上产生,受过零脉冲同步后经光耦管和驱动器输出送到可控硅的控制级上。过零同步脉冲是一种 50HZ 交流电压过零时刻的脉冲,可使可控硅在交流电压正弦波过零时刻触发导通。过零同步脉冲由过零触发脉冲电路产生,图中电压比较器 LM311 用于把 50HZ 正弦交流电压变成方波。方波的正边沿和负边沿分别220伏交流电变压器比较器双向可控硅单稳态触
37、发器同步光耦及驱动单片机触发脉冲加热丝本科毕业设计说明书第 19 页 共 44 页作为两个单稳态触发器的输入触发信号,单稳态触发器输出的两个窄脉冲经二极管或门混合后就可得到对应于交流 200V 市电的过零同步脉冲。此脉冲一方面作为可控硅的触发同步脉冲加到温度控制电路,另一方面还作为计数器脉冲加到 8031的 T0,T1 端。光电耦合器,是近几年发展起来的一种半导体光电器件,把电子信号转换成为光学信号,然后又回复电子信号的半导体器件。由于它具有体积小、寿命长、抗干扰能力强、工作温度宽及无触点输入与输出及在电气上完全隔离等特点,被广泛地应用在电子技术领域及工业自动控制领域中,它可以代替继电器、变压
38、器、斩波器等,而用于隔离电路、开关电路、数模转换、逻辑电路、过流保护、长线传输、高压控制及电平匹配等。具体接法如图 3.6图 3.6 温度控制电路4 温度控制系统的软件设计4.1 主程序设计及中断服务程序设计4.1.1 温度控制主程序流程简图温度控制程序的设计应考虑如下问题:1 炉温采样,数字滤波程序2 键盘扫描,键码识别和温度显示程序3 温度标度转换程序4 PID 计算程序(双字节加法程序 DSUM,双字求补程序 CPL1,双字节带符号乘法程序 MULT1)为简化起见,本设计思想只给出有关 8031 本身的初始化,8155 初始化,标志、暂存单元和显示缓冲单元区清零、T0 初始化,断开 CP
39、U 中断、温度显示和键盘扫描等程序,详细见附录源程序清单,程序框图如图 4.1 所示。 本科毕业设计说明书第 21 页 共 44 页开 始8031 系统初始化输入被控参数8155 初始化键盘显示器监控程序运 行 吗?N开中断Y图 4.1 主程序流程简图在主程序设计中,由于 T0 被设定为计数器方式 2,初值为 06H,故它的溢出中断时间为 250 个过零同步触发脉冲。为了保证系统正常工作,T1 中断服务程序的执行时间必须满足 T0 的这一时间要求,因为 T1 的中断是嵌套在 T0 中断之后的。4.1.2 中断服务程序设计因为本设计中 T1 的中断是嵌套在 T0 中断之后的,而 T0 中断是温度
40、控制系统的主程序,用于启动 A/D 转换、读入采集数据、数字滤波、越限温度报警和越限处理、PID 计算输出可控硅的同步触发脉冲等。P1.3 引脚上输出的该同步触发脉冲宽度由 T1 计数器的溢出中断控制,8031 利用等待 T1 溢出中断的时间完成把本次采样值转换成显示值放入显示缓冲区和调用温度显示程序。8031 从 T1 中断服务程序返回后便可恢复现场和返回主程序,以待下次 T0 中断。在 T0 中断服务程序中,还需要用到一系列程序,例如:采样温度子程序、数字滤波子程序、越限处理程序、PID 计算程序、标度转换程序和温度显示程序。PID 计算程序中,也需要用到双字节加法程序 DSUM,双字求补
41、程序 CPL1,双字节带符号乘法程序 MULT1。T1 中断服务程序流程图如图 4.2 ,T2 中断程序流程图如图 4.3.T1 中断程序清标志位 D5H停止输出返回图 4.2 T1 中断程序流程图本科毕业设计说明书第 23 页 共 44 页保护现场采样炉温数字滤波上限? 上限处理清本次越限标志恢复现场返回上限? 清上次越限标志下限? 下限? 上次越限? T1 中断完? YN Y置本次越限标志计算 PIDYY取最大 PID 值输出下限报警求 补求 补从 P1.3 输出T1 初始化温度标度转换越限计数器+1越限 N 次?温度显示上限报警清越限标志恢复现场返回图 4.3 T0 中断服务程序流程图4
42、.2 温度控制程序子程序4.2.1 键盘扫描和温度显示程序设计1 为了简化电路,降低成本,将所有的段选线并联在一起,由一个 8 位 I/O口控制,而选通断采用分时选通,LED 显示器工作于共阴极动态显示,逐位轮流点亮各个 LED,每一位保持 1ms,在 10ms20ms 内再一次点亮重复不止,这样利用人的视觉暂留,好像 6 位 LED 同时点亮了,显示子程序流程图如图 4.4。DIS指向显示缓冲区末址 7EH先点亮最右边的 LED送位控制信号查表取字形码送出一位显示延时 1ms指向下一格缓冲单元 R0-1最左边一位显示吗?位控制信号左移一位结束YNLP0图 4.4 显示程序流程2 本设计采用行
43、列式矩阵键盘,单片机对它的控制采用程序扫描即中断查询本科毕业设计说明书第 25 页 共 44 页方式,A 口为选通口,B 口为显示口,C 口为查询输入口。键盘扫描子程序功能如下:(1)判断键盘上有无键按下,方法为:PA 口输出全扫描字 00H,读 PC 口状态,若 PC0PC1 口全为 1,则键盘无键按下,若不全为 1 则有键按下。(2)去键的机械抖动影响:在判断有键按下后,软件延时一断时间(5ms10ms)后再判断键盘状态,如果仍为有键按下状态,则认为确实有键被按下;否则,按照键抖动处理。(3)判别闭合键的键号:对键盘的列线进行扫描,扫描口为 PA0PA7,依次输出扫描字为 FEH,FDH,
44、FBH ,F8H,EFH,DFH,BFH,7FH,读出 PC 口的状态,若全为 1 则列线输出为 0 的 这一列上没有键闭合;否则,这一列有键闭合。闭合键的键号等于处于低电平的列号加上低电平的行的首键号,例如:PA 口的输出为,读出 PC1PC0 为 01,则 1 行 1 列的键闭合,(4)CPU 对键的一次闭合仅作一次处理,采用的方法是等待键释放后再将键号送入累加器 A 中。键盘扫描子程序流程图如图 4.5调用子程序延迟 12ms开始有键闭合否?有键闭合否?闭合键释放?判断闭合键键号栈键入键号A返回YYYNNN图 4.5 键盘扫描子程序流程图 4.2.2 炉温采样、数字滤波程序设计采样子程序
45、 SAMP:流程图如图 4.6本科毕业设计说明书第 27 页 共 44 页采样值起始地址送 R0采样次数送 R2选通 IN0 启动 AD574延时A/D 完成?所有采样结束返回YNN图 4.6 采样子程序流程图一般微机应用系统前向通道中,输入信号均含有个中噪音和干扰,它们来自被测信号源、传感器、外界干扰。为了进行准确的测量和控制,必须消除被测信号中的噪音和干扰,噪音有两大类:一类为周期性的,另一类为不规则随机的 。前者的典型代表为 50HZ 的工作干扰。对于这类信号要采用硬件滤波电路能有效地消除影响。后者为随机信号,可采用数字滤波方法予于消除。所谓数字滤波,就是通过程序计算或判断来减少干扰在信
46、号中的比重,故实际上它是一中程序滤波。经常采用的是中值滤波、去极值法可对采样的信号进行数字滤波,以消除常态干扰。数字滤波子程序 FILTER:用滤波来控制对现场的采样值的干扰。数字滤波程序的算法很多,现以中值滤波为例作说明。中值滤波原理得很简单,只需对 2CH 、2DH 2EH 中三次采样值进行比较,取中间值存放到 2AH 单元内,以作为温度标度转换时使用。图 4.7 为数字滤波程序流程图。(2CH)送 A(2CH)(2DH)?(2CH)(2DH)?(2EH)(2CH)?(2DH)(2EH)?(2DH)(2EH)?(2CH)(2EH)?(2CH)和(2DH)互换2(CH)送 2AH返 回YNY
47、YN(2DH)送 2AH2DHNN(2DH)送 2AH2DH(2EH)送 2AH2DH(2EH)送 2AH2DHYNNYY本科毕业设计说明书第 29 页 共 44 页图 4.7 数字滤波程序流程4.2.3 温度标度转换算法 A/D 转换器输出的数码虽然代表参数值的大小,但是并不代表有量纲的参数值,必须转换成有量纲的数值才能进行显示,标度转换有线性转换和非线性转换两种,本设计使用的传感器线性好,在测量的量程制内基本能与温度成线性关系。温度标度转换程序 TRAST:目的是要把实际采样的二进制值转换的温度值转换成 BCD 形式的温度值,然后存放到显示缓冲区 78H7DH。对一般的线性仪表来说,标度转换公式为: = + AX0)0mN0X(4.1) 式中, 为一次仪表的下限,0为一次量程仪表的上限;为实际测量值(工程量) ;m为仪表下限所对应的数字量;N0为仪表上限所应的数字量;为测量所得数字量。 X例如:若某热处理仪表量程为 200800,在某一时刻计算机采样得到的二进制值 U(K)=CDH 则相应的温度值为:= + =200+(800-200) =682AX0)0mN0X250根据上述算法,只要设定热电偶的量程,则相应的温度转换子程序 TARST 很容易编写,只要把这一算式变成程序,将 A/D 转换后经数字滤波处理后的值代入,即可计算出真实的温度值。具体算法如图 4.8