【基于单片机的温度显示和控制系统设计(附程序)11000字(论文)】_第1页
【基于单片机的温度显示和控制系统设计(附程序)11000字(论文)】_第2页
【基于单片机的温度显示和控制系统设计(附程序)11000字(论文)】_第3页
【基于单片机的温度显示和控制系统设计(附程序)11000字(论文)】_第4页
【基于单片机的温度显示和控制系统设计(附程序)11000字(论文)】_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

PAGE45PAGE基于单片机的温度显示和控制系统设计第一章前言 21.1本文研究的目的和意义 21.2系统实现的功能 21.3设计的要求与方案 3第二章总体设计分析 42.1组成框图 42.2主要功能模块的简介 42.2.1传感器温度采集 42.2.2温度设置 42.2.3LCD液晶显示 52.2.4温度控制 5第三章硬件设计 73.1主控系统 73.1.1STC12C5A60S2单片机简介 73.1.2最小应用系统模块 93.2传感器温度采集模块 113.2.1器件选型与简介 113.2.2整个模块设计与分析 133.3温度设置模块 143.4LCD液晶显示模块 153.4.1器件选型与简介 153.4.2整个模块设计与分析 183.5温度控制模块 193.5.1光耦器件选型与简介 193.5.2可控硅器件选型及简介 203.5.3整个模块设计与分析 20第四章软件设计 224.1主程序设计 224.2子程序部分 234.2.1A/D转换程序 234.2.2温度设置程序 244.2.3LCD显示程序 264.2.4PID温度控制程序 30总结 34参考文献 35附录一(电路原理图及PCB图) 36附录二(部分程序) 37致谢 45摘要:温度是工业生产以及科学实验中的重要参数之一。温度的控制在许多领域中都有着积极的意义。在很多行业中都有大量的用电加热设备,如硅碳棒等。本次课题即是针对高温控制系统-硅碳棒电加热温度控制器的设计进行的分析与设计,我们采用了以STC12C5A60S2单片机为主体,铂铑10-铂热电偶温度采集模块,温度设置模块,LCD液晶显示模块以及温度控制模块相搭配的控制系统。本系统中单片机将采集到的温度与设定的温度进行比较,由此来判定硅碳棒上是否继续加热。此外还加入了显示模块,将采集到的温度以及设定的温度进行实时显示,使得整个设计更加完整,更加灵活。关键词:硅碳棒;单片机;温度控制第一章前言1.1本文研究的目的和意义温度是日常生活中的重要参数。对温度的控制效果将直接影响到产品的质量及其使用寿命,因此,温度控制成为各个领域中的一项很关键的技术,研究高性能的温度控制器具有重要意义。硅碳棒的使用温度高,又具有耐高温、抗氧化、耐腐蚀、升温快、寿命长、高温变形小等特点,同时具有良好的化学稳定性。与自动化电控系统配套,还可得到精确的恒定温度,又可根据需要按曲线自动调温。使用硅碳棒加热既方便,又安全可靠。现已广泛应用于各类加热设备的电加热元件。本次研究的硅碳棒电加热温度控制器的关键在于温度控制器的控温方面,采用PID控制方式。这是由于传统的定值开关温度控制法通过硬件电路或者软件计算判别当前温度值与设定温度值之间的关系,进而对系统加热源进行通断控制。这种开关控温方法较简单,是当系统温度上升至设定点时就关断电源,当系统温度下降至设定点时就开通电源,因而无法克服温度变化过程的滞后性,导致系统温度波动大,控制精度低,不适于高精度温度控制。PID控制器中引入了参数整定和自适应控制理论,其具有算法简单,可靠性高等特点。由于PID控制器模型中考虑了系统的误差,误差变化以及误差积累三个因素,因此其控制性能一定优越于定值开关控温法。采用此方法实现的温度控制器,其控制品质的好坏主要取决于三个PID参数,即比例值,积分值,微分值。只要PID参数选取的正确,对于一个确定的受控系统,其控制精度比较令人满意。硅碳棒电加热温度控制器的可靠性高、精度高、操作简单、功耗低、成本低。所以本系统的设计是十分必要的。1.2系统实现的功能设计基于STC12C5A60S2单片机的硅碳棒电加热温度控制器,用于控制温度。功能如下:根据给定的温度,调节硅碳棒的控制电压,从而调节温度,实现温度的闭环控制。温度通过通讯方式传入系统,硅碳棒电源电压为220V,功率为10kw,温度调节范围在0~1300度,测量精度为1%。采用双向可控硅温度控制电路对其采用计算机软件方法来进行PID调节功能,使温度到达设定温度。1.3设计的要求与方案所设计的硅碳棒电加热控制器应具有以下功能:(1)温度采集:此部分是使用型号为WRP-130的铂铑10-铂热电偶为测温元件,再将其输出电压经过处理变送再经过电压跟随后,与STC12C5A60S2单片机中的A/D转换相配合,从而实现对初始温度的采集;(2温度设置:此部分依靠四个拨盘与单片机配合实现对最终温度的设置;(3)LCD液晶显示部分:采用FYD12864-0402B液晶显示模块,对温度采集所得温度以及设定温度进行显示;(4)温度控制部分:此部分首先采用过零触发双硅输出光耦MOC3061实现对单片机及可控硅温度控制器的隔离功能;然后采用双向可控硅MAC97A6构成过零比较电路,与单片机配合,运用PID控制方式来控制正弦波导通的周期个数,从而实现对温度的控制功能。第二章总体设计分析2.1组成框图根据设计思想所要完成的功能,该硅碳棒电加热温度控制器采用单片机作为微处理单元进行控制。其次由传感器温度采集电路,温度设置电路,LCD液晶显示电路以及温度控制电路组成。系统的组成框图如下图2-1所示。传感器温度采集电路STC12C5A60S2传感器温度采集电路STC12C5A60S2单片机温度设置电路温度控制电路LCD液晶显示电路图2-1组成框图2.2主要功能模块的简介2.2.1传感器温度采集测温电路的设计是采用型号为WRP-130的铂铑10-铂热电偶,其测温范围在0-1300度,精度在+/_2.4%,其具有性能稳定,抗氧化性能强以及测量精度高等优点,可以较为准确的测温。利用其感温效应,把随被测温度变化的电压采集过来,将其经变送过后的信号送入电压跟随器后,传入STC12C5A60S2单片机中进行A/D转换,实现由模拟量到数字量的转换,再利用STC12C5A60S2单片机进行数据的处理,从而采集得到温度。2.2.2温度设置通过用四个拨盘以及四个电阻连接STC12C5A60S2单片机,应用编程来设置要给定的四位数的温度。其中S1与单片机的一个I/O口连接,用软件编程,使其每按一下温度增加1度;S2也与单片机的一个I/O口连接,用软件编程,使其每按一下温度增加10度;S3也与单片机的一个的I/O口连接,用软件编程,使其每按一下温度增加100度;S4也与单片机的一个I/O口连接,用软件编程,使其每按一下温度增加1000度。2.2.3LCD液晶显示采用FYD12864-0402B液晶显示模块,该液晶模块每屏可显示4行8列共32个16*16点阵的汉字,每个显示RAM可显示1个中文字符或2个16*8点阵全高ASCII字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。在本系统中,利用该模块与单片机进行相连,对其进行编程使用,用来显示温度采集所得温度以及温度设置给定的四位数的温度。2.2.4温度控制温度控制是本系统的关键,而此部分的关键在于可控硅,我们采用PID控制方式来控制温度。在本系统中是通过控制可控硅管的正弦波导通的周期个数来调节输出功率。所以首先采用光耦,其以光为媒介传输电信号。一般由三部分组成:光的发射,光的接收及信号的放大。输入的电信号驱动发光二极管(LED),使之发出一定波长的光,然后被光探测器接收而产生光电流,再经过进一步放大后输出。这就完成了电-光-电的转换,从而起到对输入、输出电信号的良好隔离的作用。因为外围电路通常是交流电压为220V,强电是不能和弱电有任何电器接触的,所以为防止强电进入单片机内,必须采用光耦。又因为本系统电路需要进行过零检测,而过零触发双硅输出光耦MOC3061自带过零检测的功能,所以被选为本系统的光耦元件,用其对单片机和可控硅温度控制电路进行隔离。然后采用双向可控硅MAC97A6构成过零比较电路,当输入是高电平时,电路导通;当输入是低电平时,则电路不导通。与单片机结合,软件部分采用PID控制方法对温度进行控制,由于其算法简单,可靠性高等优点被广泛使用,尤其是适用于可建立精确数学模型的确定性控制系统,其中数字PID调节器的参数可以在现场实现在线整定,因此具有较大的灵活性。第三章硬件设计本设计的题目为硅碳棒电加热温度控制器的设计,其主要是应用以STC12C5A60S2单片机作为控制核心,传感器温度采集、温度设置、LCD液晶显示以及温度控制模块相结合的系统。3.1主控系统3.1.1STC12C5A60S2单片机简介STC12C5A60S2/AD/PWM单片机是STC生产的单时钟机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统的8051,但是速度却快8-12倍。内部集成了MAX810专用的复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25万次/秒),且针对电机控制,强干扰场合。1.增强型的8051CPU,1T,单时钟机器周期,指令代码完全兼容传统的80512.工作电压:5.5V-3.5V(5V单片机)3.工作频率范围:0-35MHz,相当于普通8051的0-420MHz4.工作温度范围:-40~+85度(工业级)/0~75度(商业级)5.用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节……6.片上集成了1280字节RAM7.A/D转换,10位精度ADC,共八路,转换速度可达250K/S(每秒钟25万次)8.时钟源:外部高精度晶体/时钟,内部R/C振荡器(温漂为+/_5~+/_10%以内)用户在下载用户程序时,可选择是使用内部R/C振荡器或是外部晶体/时钟在常温下,内部R/C振荡器频率为:11MHz~17MHz精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,所以以实际测试为准9.内部集成了MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)10.有EEPROM功能11.看门狗12.通用I/O口(36/40/44个),复位后为:准双向口、弱上拉(普通8051传统的I/O口)可以设置成四种模式:准双向口/弱上拉,强推免/强上拉,仅为输入/高阻,开漏。每个I/O口驱动能力均可以达到20mA,但整个芯片最大不要超过120mA13.共有4个16位定时器2个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但是有独立波特率发生器做为串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器14.3个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟,独立波特率发生器可以在P1.0口输出时钟15.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,PowerDown模式可由外部中断唤醒,INT0_/P3.2,INT1_/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可以通过寄存器设置到P4.2)CCP1/P1.4(也可通过寄存器设置到P4.3)16.ISP(在系统可编程)/IAP(在应用可编程),无需专用的编程器,也无需专用的仿真器,可以通过串口(P3.0/P3.1)直接下载用户程序,数秒钟即可完成一片17.外部掉电检测电路:在P4.6口有一个低压门槛比较器,为1.33V,误差为+/_5%18.PWM(2路)/PCA(可编程计数器阵列,2路)——也可以来当2路D/A使用——也可以来再实现2个定时器——也可以来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)19.通用全双工异步串行口(UART),由于STC12系统是高速的8051,可再用定时器或PCA软件实现多串口20.STC12C5A60S2系统有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)21.I/O口不够时,可用2到3根普通I/O口线外接74HC164/165/595(均可级联)来扩展I/O口,还可以用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。图3-1STC12C5A60S2引脚图3.1.2最小应用系统模块目前的单片机开发系统只能够仿真单片机,却没有给用户提供一个通用的系统。由设计的要求,只要做很小集成度的系统应用在一些小的控制单元。其基本的应用特点包括以下几点:(1)全部I/O口线均可供用户使用;(2)内部存储器容量有限;(3)应用系统开发具有特殊性。图3-2最小系统图单片机最小系统如图3-2所示,其中有4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,都可以用于数据的输出和输入,P3口具有第二功能,为系统提供一些控制信号。时钟电路用于产生单片机工作所必须的时钟控制信号,内部电路在时钟信号的控制下,严格地按照时序指令工作。单片机内部有一个用于构成振荡的高增益反向放大器,该高增益反向放大器的输入端为芯片的引脚XTAL1,输出端为芯片的引脚XTAL2。这两个引脚跨接石英振荡器和微调电容,这就构成了一个稳定的自激振荡器。电路中的石英振荡器通常选振荡频率为11.0592MHz的。微调电容通常选用两个22pf的,该电容的大小会影响振荡器频率的高低,振荡器的稳定性以及起振的快速性。复位电路是单片机的一个重要的工作方式,该电路一般是由外部的复位电路来实现的。在本最小系统中,STC12C5A60S2单片机的复位采用最简单的上电复位的方式,高电平有效。R5和C3构成的微分电路,在接电的瞬间产生一个微分脉冲,其宽度大于两个机器周期,则单片机复位。为保证微分脉冲宽度足够大,R5、C3的时间常数应大于两个机器周期,所以电容取10UF,电阻取10K。3.2传感器温度采集模块3.2.1器件选型与简介本系统测量的温度范围较广,所以选用了热电偶,其是利用热电效应制成的温度传感器。热电偶回路中所产生的热电势是由两种导体的接触电势和单一导体的温差电势所组成。本系统中所选的铂铑10-铂热电偶是将硅碳棒的温度转换成电信号的信号转换元件。然而由于热电偶的电气特性,其产生的电信号必须进行调理才能被精确、可靠的采集,所以将其进行变送,得到温度范围在0~1300度所对应的0~5V的电压信号。将该0~5V的电压信号,送给一个电压跟随器,它的作用就是对信号进行隔离,改变输入输出电阻值,使得阻抗得到匹配。它有效的提高了输入电阻值,降低了对输入的微小信号量的要求,与此同时它使输出电阻值减小,使电路的负载能力得到提高。电压跟随器采用的是:HA17358运放芯片,为单电源运放,且其使用宽电源电压范围和单功率电源电压,宽共模电压和提供具有一个0V输入和0V输出的可能操作,频率特性和输入偏置电流是温度补偿的。其芯片引脚图如下图3-3所示。图3-3HA17358引脚图在得到模拟信号以后需要进行A/D转换,所谓A/D转换器即为模拟/数字转换器(AnalogtoDigitalConverter简称ADC),是将输入的模拟信号转换为数字信号。在主控系统中,我们选取STC12C5A60S2单片机,而STC12C5A60S2单片机又是自带A/D转换的,所以我们不用再另外选取A/D转换器。下面对STC12C5A60S2单片机中的A/D转换功能进行介绍。STC12C5A60S2单片机ADC(A/D转换器)的结构如图3-4所示。图3-4ADC结构图当AUXR.1/ADRJ=0时,A/D转换结果寄存器格式如下:ADC_B9ADC_B8ADC_B7ADC_B6ADC_B5ADC_B4ADC_B3ADC_B2ADC_RES[7:0]------ADC_B1ADC_B0ADC_RES[1:0]当AUXR.1/ADRJ=1时,A/D转换结果寄存器格式如下:ADC_RES[1:0]ADC_B9ADC_B8ADC_B7ADC_B6ADC_B5ADC_B4ADC_B3ADC_B2ADC_B1ADC_B0ADC_RES[7:0]从上图3-4可以看出,通过模拟多路开关,将通过ADC0~7的模拟量输入送至比较器。使用ADC之前,应该先给ADC上电,即置位ADC控制寄存器中的ADC_POWER位。当ADRJ=0时,如果要取10位结果,则按下面公式计算:10-bitA/DConversionResult:(ADC_RES[7:0],ADC_RESL[1:0])=1024*Vin/Vcc当ADRJ=0时,如果要取8位结果,则按下面公式计算:8-bitA/DConversionResult:(ADC_RES[7:0])=256*Vin/Vcc当ADRJ=1时,如果要取10位结果,则按下面公式计算:10-bitA/DConversionResult:(ADC_RES[1:0],ADC_RESL[7:0])=1024*Vin/Vcc式中,Vin为模拟输入通道的输入电压,Vcc为单片机的实际工作电压,用单片机的工作电压作为模拟的参考电压。3.2.2整个模块设计与分析温度采集电路如图3-5所示:图3-5温度采集电路在本系统中直接将铂铑10-铂热电偶采集的电信号经变送后得到的0~5V的电压信号,送给一个电压跟随器,通过电压跟随器对信号进行隔离,改变输入输出电阻值,使阻抗得到匹配。在本系统中,选用STC12C5A60S2的P1.1口,将其通过软件设置为A/D转换口,此内容将在第四章进行介绍。3.3温度设置模块图3-6键盘设置图这里要给单片机设定的温度,所以选用了四个拨盘及四个4.7K的电阻连单片机的P2.0~P2.3口,通过编程来设置要给定的四位数的温度。S1与P2.0口连接,用软件编程,使每按一下温度增加1度S2与P2.1口连接,用软件编程,使每按一下温度增加10度S3与P2.2口连接,用软件编程,使每按一下温度增加100度S4与P2.3口连接,用软件编程,使每按一下温度增加1000度如图3-6所示。3.4LCD液晶显示模块3.4.1器件选型与简介在液晶显示部分,本系统将采用现成的FYD12864-0402B液晶显示模块对温度采集所得温度以及温度设置的四位数的温度进行显示。其基本特征有以下几点:1.低电源电压(VDD:+3.0~+5.5V)2.显示分辨率:128*64点3.2MHZ时钟频率4.显示方式:STN,半透以及正显6.驱动方式:1/32DUTY,1/5BIAS7.通讯方式:串口、并口8.内置有128个16*8点阵字符9.内置有汉字字库,提供8129个16*16点阵汉字(简繁体均可)10.内置有DC—DC转换电路,无需外加负压11.无需片选信号,简化软件设计12.背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/1013.工作温度:0~+55度;储存温度:-20~+60度其原理方框图如下图3-7所示。图3-7FYD12864-0402B原理方框图其串行接口管脚信号如下表3-1:表3-1FYD12864-0402B串行接口管脚表管脚号名称LEVEL功能1VSS0V电源地2VDD+5V电源正(3.0V-5.5V)3V0-对比度(亮度)调整4CSH/L模组片选端,高电平有效5SIDH/L串行数据输入端6CLKH/L串行同步时钟:上升沿时读取SID数据15PSBLL:串口方式17/RESETH/L复位端,低电平有效19AVDD背光源电压+5V20KVSS背光源负端0V其并行接口管脚信号如下表3-2所示。表3-2FYD12864-0402B并行接口管脚表管脚号管脚名称电平管脚功能描述1VSS0V电源地2VCC3.0-5.5V电源正3V0-对比度(亮度)调整4RS(CS)H/LR/S="H",表示DB7-DB0为显示数据R/S="L",表示DB7-DB0为显示指令数据5R/W(SID)H/LR/W="H",E="H",数据被读到DB7-DB0R/W="L",E="HL",DB7-DB0的数据被写到IR或DR6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式16NC-空脚17/RESETH/L复位端,低电平有效18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)20KVSS背光源负端3.4.2整个模块设计与分析图3-8液晶显示与单片机的接口电路图如图3-8所示是FYD12864-0402B液晶显示与单片机的接口电路图。本系统选用的是FYD12864-0402B的并行接口。3.5温度控制模块3.5.1光耦器件选型与简介光耦合器(OpticalCouple,英文缩写为OC)亦称光电隔离器,简称光耦。其以光为媒介传输电信号,对输入、输出电信号有良好的隔离作用。其主要的优点包括:信号单向传输,输入端与输出端完全实现了电气隔离,输出信号对输入端无影响,且抗干扰能力强,工作稳定,无触点,使用寿命长,传输效率高等。在本系统中,选用MOC3061,为过零检测双向可控硅输出光电耦合器,是一种新型的光电耦合器件。其引脚图如下图3-9。图3-9MOC3061引脚图3.5.2可控硅器件选型及简介双向可控硅是一种功率半导体器件,也称双向晶闸管。在本系统中,选用型号为BTB12-600B的双向可控硅。其主要用途在:变频电路,调光,调温,调光等控制电路。其主要参数有:通态平均电流IT(RMS)为12A,通态浪涌电流ITSM为120A,正向耐压VDRM>600V,反向耐压VRRM>600V,触发电流IGT(I/II/III/IV)<50/50/50/100mA,通态压降VTM<1.55V(ITM=17A),触发电压VGT=1.5V,结温为125度,其管脚排列为T1-T2-G。管脚图如图3-10所示。图3-10BTB12-600B管脚图3.5.3整个模块设计与分析图3-11温度控制电路图如图3-11所示,图中光电耦合双向可控硅驱动器MOC3061,是用来驱动双向可控硅(BCR)BTB12-600B的,并且也起到隔离的作用。R7为触发限流电阻,R8为双向可控硅门极电阻,有防止误触发,提高抗干扰能力等作用。当单片机STC12C5A60S2的P1.0引脚输出负脉冲信号时,MOC3061导通,触发双向可控硅导通,接通交流负载。如果双向可控硅接感性交流负载时,由于电源电压超前负载电流一个相位角,所以,当负载交流为零时,电源电压为反向电压,此外,再加上感性负载自感电动势的作用,使双向可控硅承受的电压值要远远超过电源电压。虽然双向可控硅是反向导通的,但是也容易击穿,所以必须使双向可控硅能承受这种反向电压。所以,一般在双向可控硅两级间并联一个RC阻容吸收电路,即C6与R9,以此实现双向可控硅的过电压保护。第四章软件设计4.1主程序设计主程序是系统的监控程序。在程序运行的过程中,主程序的任务是首先对系统进行初始化,包括按键程序以及各个端口的初始化工作,以实现参数输入,并控制硅碳棒电加热器的正常运行。在初始化完成后就进行温度数据采集及处理,以及智能控制等部分。其中温度数据采集及处理主要包括实时采集硅碳棒的温度信号,计算出实际温度与设定值的差值以及温差的变化率,并对硅碳棒的温度信号进行处理。而智能控制则是指温度控制系统的控制方法。显示采集所得温度显示采集所得温度计算温差e(k)和温差变化率开始系统初始化键盘设置给定温度LCD显示给定的温度值经处理过后的信号传入单片机读取A/D转换值并计算当前温度PID控制方式程序求出输出控制量控制输出图4-1主程序流程图 4.2子程序部分4.2.1A/D转换程序本设计是将模拟信号转换成数字信号,温度经过处理后转换成电压信号,进入单片机进行A/D转换后成数字量。其中温度范围的计算原理为:每个温度对应一个电压值。在0~1300度的温度范围内,电压范围在0~5V的范围内,随着温度的增长,电压呈现接近线性状态的增长,即可计算出温度。STC12C5A60S2单片机的A/D转换流程图如下图4-2所示。选择A/D转换速度选择A/D转换速度选择P1.1作为A/D转换通道A/D转换是否结束?启动A/D转换将ADC_FLAG(模数转换器结束标志位)清零保存A/D转换结果结束开始图4-2A/D转换流程图4.2.2温度设置程序键盘是人与微机打交道的主要设备。在本次设计中,设定温度采用4个拨盘的方式给定。这四个键分别代表,个,十,百,千位,由程序给定。在本系统的键盘设置中,键闭合和键释放的信息获取,键抖动的消除,键值的查找以及一些保护措施的实施等任务,都是由软件来实现完成的。本键盘设置的键输入程序应该完成的任务有:(1)监测有无键按下:键的闭合与否,反映在电压上呈现高电平或低电平,所以通过电平的高低状态来进行检测,即可确认按键是否按下;(2)判断是哪个键按下;(3)完成按键的任务。按键的触点在闭合和断开时都会产生抖动,这时触点的逻辑电平是不稳定的。所以这里采用采用软件延时的方法避开抖动,这一延时程序一般是大于5ms的。在第一次检测到有键按下时,执行一段延时子程序,再确定电平是否仍然保持闭合状态电平,如果保持,则确实有键按下。这种软件延时的方法很切实可行的消除了软件抖动的影响。键盘子程序流程图如图4-3所示。初始化地址参数初始化地址参数键入去抖动判断P2.3是否有信号?千位+1判断P2.2是否有信号?百位+1调用显示程序调用显示程序判断P2.1是否有信号?十位+1调用显示程序判断P2.0是否有信号?个位+1调用显示程序开始返回主程序图4-3温度设置子程序流程图4.2.3LCD显示程序在本系统中,采用FYD12864-0402B液晶显示模块。该模块控制芯片提供两套控制命令,基本指令和扩充指令如下:基本指令(当RE=0时)的指令表如下表4-1所示。表4-1基本指令表指令指令码功能RSR/WD7D6D5D4D3D2D1D0清除显示0000000001将DDRAM填满"20H",并设定DDRAM的地址计器(AC)"00H"地址归位000000001X设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置:这个指令不改变DDRAM的内容显示状态开/关0000001DCBD=1:整个显示0NC=1:游标0NB=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位;这个指令不改变DDRAM的内容功能设定00001DLXREXXDL=0/1:4/8位数据RE=1:扩充指令操作RE=0:基本指令操作设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM地址设定DDRAM地址0010AC5AC4AC3AC2AC1AC0设定DDRAM地址(显示位址)第一行:80H-87H第二行:90H-97H读取忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写数据到RAM10数据将数据D7-D0写入到内部的RAM(DDRAM/CGRAM/IRAM/GRAM)读出RAM的值11数据从内部RAM读取数据D7-D0(DDRAM/CGRAM/IRAM/GRAM)扩充指令(当RE=1时)的指令表如下图4-2所示。表4-2扩充指令表指令指令码功能RSR/WD7D6D5D4D3D2D1D0待命模式0000000001进入待命模式,执行其他指令都可终止待命模式卷动地址开关开启000000001SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM和CGRAM地址反白选择00000001R1R0选择2行中的任一行作反白显示,并可决定反白与否,初始值R1R0=00,第一次设定为反白显示,再次设定变回正常睡眠模式0000001SLXXSL=0:进入睡眠模式SL=1:脱离睡眠模式扩充功能设定00001CLXREG0CL=0/1:4/8位数据RE=1:扩充指令操作RE=0:基本指令操作G=1/0:绘图开关

该LCD液晶显示模块的子程序流程图如下图4-4所示。显示内容写入缓存显示内容写入缓存LCD12864启动延时液晶屏正常显示初始化LCD12864定义接口给定主程序入口地址开始返回图4-4液晶显示子程序流程图4.2.4PID温度控制程序从实现温度控制原理图如下图4-5所示。图4-5经典PID控制系统原理图3.改进型PID控制算法控制:此方法在经典PID算法的基础上,在其软件方面进行改进,提高了控制精度,所以次方法目前最常用,其控制原理图如下图4-6所示。图4-6改进型PID控制系统原理图PID控制方式子程序流程图如下图4-7所示。开始开始给定值与采样值偏差e(k)e(k)Δe(k)=e(k)-e(k-1)e(k-1)=e(k)计算控制增量ΔU(k)=KP×[e(k)-e(k-1)]+KI×e(k)+KD×[e(k)-2e(k-1)+e(k-2)]计算控制量U(k)=ΔD(k)+U(k-1)U(k-1)=U(k)U(k)输出限幅输出U(k)图4-7PID控制方式子程序流程图本系统的温度控制采用PD控制,因为硅碳棒具有较大的热惯性,而PID运算中的积分项(I)具有较明显的延迟效应所以不能保留,我们必须把积分项去掉。而微分项(D)有较强的预见性,能加快反应速度,抑制超调量。所以采用PD控制。该方式根据温度给定值和采集值之间的偏差调节,给出调节量。本系统中采用对可控硅管的正弦波进行过零比较,控制其导通的周期个数,从而达到使温度升高的目的。随后整个系统再通过检测前一阶段控制后的温度,进行近一步的控制修正,最终实现预期的温度监控目的。总结本系统的设计本着简单,使用性,易于扩展的指导思想,采用STC12C5A60S2为中央处理器加上各种外围电路构成整个单片机控制系统。在设计中运用温度传感器(热电偶)采集温度,通过处理、放大、转换,与设定值进行比较,从而得到控制信号,用以控制硅碳棒电加热器的温度,以此实现硅碳棒电加热器温度的控制功能。为了方便使用,本系统采用STC12C5A60S2单片机,其自带A/D转换器(ADC),使系统的设计方便不少。该硅碳棒电加热控制器的设计,虽小但功能齐全,有温度采集,键盘设置,LCD液晶显示以及温度控制。该温度控制方面,采用了过零比较电路,运用MOC3061,过零检测双向可控硅输出光电耦合器,一种新型的光电耦合器件,对单片机以及硅碳棒电加热器进行隔离,因为该芯片自带过零检测功能,所以不用另外设计电路进行过零检测,为系统的设计带来了方便。由于时间和经验的限制,本硅碳棒电加热温度控制器的设计还存在不少需要改进的地方,来使系统达到更有的控制效果。此外,系统还有很多可以利用的资源没有充分的得到利用,例如STC12C5A60S2中的ADC的输入道还没用完全被开发,以及其I/O口也没有完全被利用。在设计上也还有很多潜力可以挖掘。硅碳棒电加热器的温度控制是本设计的关键,其如果采用PID控制方法与其他方法相结合对温度进行控制,对温度的控制效果会更好,但由于个人的能力有限问题并未实行。本次设计是对我大学四年里所学的知识进行一次综合的利用。在设计中,涉及到了许多知识,几乎涵盖了我在大学所学的所有知识,其中包括单片机,温度控制,电子技术,传感器等多领域知识。通过这次的设计,让我学会了不少东西,包括学会查找问题,分析问题,处理问题等等的方法,为我今后的工作、学习打下了坚实的基础。参考文献[1]丁利辉.硅碳棒式加热炉的炉温控制系统设计[J].有色金属加工,2013,06:54-56.[2]张世生.基于硅碳棒的电炉温度控制研究[J].制造业自动化,2014,01:118-121.[3]黄运生,孙奇兵,陈学.硅碳炉温度与表面负荷的最优控制[J].微计算机信息,2013,12:7-9.[4]卢永霞,赵占雄,姚瑞英,杨辉静.三菱PLC特殊模块在感应电炉温度控制中的应用[J].铸造技术,2013,12:1755-1757.[5]厉成金.工业电炉温度控制系统中数字PID算法的改进研究[J].河南化工,2013,19:53-56.[6]于峰杰.某密闭电炉温度软测量及控制[D].郑州大学,2014.[7]努尔哈孜·朱玛力.可编程序控制器在电炉温度控制系统中应用的研究[J].新疆大学学报(自然科学版),2014,02:229-232.[8]毕厚煌,何家宁,郭凯,黎土煜.中频感应电炉温度补偿控制系统研究与分析[J].特种铸造及有色合金,2016,07:700-702.[9]王长成.中频感应电炉温度控制系统设计[J].铸造技术,2014,07:1571-1572.[10]周建壮.基于自校正PID算法的电炉温度控制系统设计[J].长春教育学院学报,2014,12:50-51.[11]王恩亮.基于MSP4305438A的中频电炉温度控制设计[J].鄂州大学学报,2014,10:104-106.[12]王付敏.高精度热处理电炉温度控制及其EMC系统的设计与实现[D].电子科技大学,2014.[13]周正林,张昕.基于单片机的电炉温度控制系统设计[J].信息技术,2013,12:115-116.[14]袁平.PID控制在中低频电炉温度控制系统中的应用[J].铸造技术,2013,10:1413-1415.[15]关艳翠.自校正PID算法在电炉温度控制中的应用[J].科技信息,2013,06:441-442.附录一(电路原理图及PCB图)

附录二(部分程序)A/D转换部分;**********************************************************A/D转换子程序#include<intrins.h>VoidDelay_ms(unsignedintcnt){unsignedchari;while(cnt--!=0){for(i=0;i<600;i++);}}voidRead_init(unsignedcharCHA){unsignedcharAD_FIN=0;//存储A/D转换标志CHA&=0x01;//选择ADC的8个接口中的一个(00000001清0高5位)ADC_CONTR=0x40; //ADC转换的速度(0XX00000其中XX控制速度)_nop_();ADC_CONTR|=CHA;//选择A/D当前通道_nop_();ADC_CONTR|=0x80;//启动A/D电源DELAY_MS(1);//使输入电压达到稳定(1ms即可)}unsignedintADC_Read(void){ unsignedcharAD_FIN=0;//存储A/D转换标志ADC_CONTR|=0x08;//启动A/D转换(00001000令ADCS=1)_nop_();_nop_();_nop_();_nop_();while(AD_FIN==0)//等待A/D转换结束{AD_FIN=(ADC_CONTR&0x10);//00010000测试A/D转换结束否}ADC_CONTR&=0xE7;//11110111清ADC_FLAG位,关闭A/D转换 return(ADC_RES*4+ADC_RESL);//返回A/D转换结果(10位ADC数据高8位在ADC_RES中,低2位在ADC_RESL中)};*********************************温度设置部分;*********************************************************温度设置子程序#include<reg51.h>#defineuintunsignedintsbitK0=P2.0;sbitK1=P2.1;sbitK2=P2.2;sbitK3=P2.3;uinttemp;voidkeybord();voidinit();voiddisplay_1();voidmain(){init();while(1){keybord();display();}}voidinit()//初始化函数{scan=1;temp=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;}voidkeybord(){if(K4==1){Delay_ms(50);//延时去抖动if(K4==1)//S4有按键,温度加1000度{temp=+1111101000;Display_1();}elseif(K3==1)//S3有按键,温度加100度{Delay_ms(50);if(K3==1){temp=+1100100;Display_1();}elseif(K2==1)//S2有按键,温度加10度{Delay_ms(50);if(K2==1){temp=+1010;Display_1();}elseif(K1==1)//S1有按键,温度加1度{Delay_ms(50);if(K1==1){temp=+1Display_1();}}***************************3.LCD液晶显示部分;*********************************************************LCD液晶显示子程序LCD接口:1:GND2:VCC3:V04:RS5:RW6:E7~14:DB0-DB715:PSB16:NC17:RST18:VOUT19:A20:K#include"STC12C5A60S2.h"#include"type.h"#include"lcd.h"#include"delay.h"#defineLCD_dataP0//带字库液晶12864数据口sbitRS=P1.3;sbitRW=P1.4;sbitE=P1.5;sbitPSB=P1.6;sbitRST=P2.7;voidLCD_init(void){Clr_SID();Clr_SCLK();Delay_ms(100);//延时等待液晶完成复位W_1byte(0,0,0x30);//功能设置:一次送8位数据,基本指令集Delay_ms(2);W_1byte(0,0,0x0c);//显示设定:开显示,不显示光标,不做当前显示位反白闪动Delay_ms(2);W_1byte(0,0,0x01);//清屏,将DDRAM的位址计数器调整为“00H”Delay_ms(2);W_1byte(0,0,0x02);//DDRAM地址归位Delay_ms(2);W_1byte(0,0,0x80);//功能设置,点设定:显示字符/光标从左到右移位,DDRAM地址加1Delay_ms(2); }**********************************写一个字节的数据到12864液晶,包括指令和数据说明:RW=1,从液晶读数据到MCU;RW=0,写一个数据到液晶;(一般RW都设为0,即只向液晶写数据,不读数据)RS=1,写入的是数据;RS=0,写入的是指令;一般模式:RW=0,RS=1;写数据RW=

温馨提示

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

评论

0/150

提交评论