《蛋白质水解温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《蛋白质水解温度控制系统设计.docx(28页珍藏版)》请在课桌文档上搜索。
1、蛋白质水解温度控制系统设计摘要本文介绍了以8031单片机为核心的蛋白质水解控制器的工作原理和设计方法。文中介绍了该控制器的硬件部分,包括:温度检测电路、温度控制电路和一些接口电路(如:EPRoM犷展接口、并行I/O接口、A/D转换接口等)。此外,文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:To中断服务程序、分段控制程序、给定值计算程序、采样程序、数字滤波程序以及PlD计算程序等。本设计也可用于其它的温度控制系统。Abstract:Thispaperintroducestheprincipleandthedesigningmethodsofproteolysiscontrol
2、ler,andthemainis8031single-chipcomputer.Atfirst,thepapergivesthehardwarepartsonthissystem.Thesecircuitsinclude:temperaturemonitor,temperaturecontrollerandafewmeets,whichincludeEPROMexpand,I/OparallelinterfaceandA/Dconversionetc.Inaddition,themainofthispaperisthesoftwareparts.Andthemodularprogramming
3、isusedinthepaper.Themainmodulesinclude:Tointerruptserviceroutine,segmentationroutine,predeterminevalueroutine,samplingroutine,digitalfilteringroutineandPIDcalculatingroutineetc.Thisdesignisusedfortheothersoftemperaturecontrollerincommon.KeyWord:Single-chipcomputerProteolysiscontrollerTemperaturemoni
4、torTemperaturecontrollerAnalogDigitalconversionProcessIDcalculation前言:蛋白质水解是食工加品领域中的主要应用之一,因为在不同的温度曲线下,蛋白质水解速度与水解度不同。这就需要一个优良的水解温度控制系统。现代社会,随着科学技术的不断进步,各种各样的智能控制系统越来越多,在众多的控制系统中,单片机扮演着重要的角色。利用各种各样的单片机作为控制系统的核心,是这些智能控制的标志。本设计就是采用MCS-51系列单片机对蛋白质水解炉温度控制,电阻炉炉温控制是这样一个反馈调节过程:由单片机定时对炉温进行检测,经A/D转换芯片得到相应的数字量
5、和需要的炉温量得到偏差,通过对偏差的处理获得控制信号,去调节炉子的加热功率,从而实现对炉温控制。全文可以分为硬件和软件两个部分,首先介绍了该控制系统器的硬件设计部分,包括温度检测电路、温度控制电路和一些接口电路(如:EPROM扩展接口、并行1/0接口、A/D转换接口等)。其次是软件设计部分,在这里采用模块化结构,主要模块有:TO中断服务程序、分段控制程序、给定值计算程序、采样程序、数字滤波程序以及PlD计算程序等。限于本人常识浅薄,加上时间仓促,错误和遗漏之处在所难免,敬请各位老师和同学不吝批语指出。设计要求1、分段对蛋白质溶液进行监测和控制,段数为319段;要求每段的温升-时间关系为电炉加热
6、功率:2000瓦;容积:20升;电源:AC220伏;控温范围:+20+100度。2、分段对蛋白质进行监测和控制,要求每段的升温速度为:Tto3、反应的温度要按预定的温度-时间关系变化。4、要有一定的控制精度和转换精度(一般采用数字式PlD控制)。5、要求设计一个清晰明了的整体方案,各个芯片的选用要具体,具有良好的扩展技术和接口技术。6、需要考虑到其他的一些技术,如:传感器技术,抗干扰技术和一些可靠性技术等。设计总体方案本设计是主要是利用单片机8031实现对温度的监测和控制,以达到蛋白质水解反应的具体温度。该系统的工作流程如下框图:工作流程为:传感器定时对炉温进行监测放大后,经芯片ADC0809
7、的A/D转换得到相应的数字量,再送到单片机803ICPU进行判断和运算,得到相应控制量去控制电阻炉功率,从而实现对温度的控制。硬件电路设计一、中央处理器的选择MCS-51系列单片机是8位增强型,其主要的技术特征是为单片机配置了完善的外部并行总线和具有多级识别功能的串行通讯接口(UART),规范了功能单元的SFR控制模式及适应控制器特点的布尔处理系统和指令系统。由于单片机具有较高的性能比,国内尤以MCS-51系列单片机应用最广,易于开发、使用灵活、而且体积小、易于开发、抗干扰能力强,可以工作于各种恶劣的条件下,工作稳定等特点。设计本着应用性,因此选择MCS-51系列的8031单片机作为中央处理器
8、,如图1所示。8031片内无程序存储器,只有128字节的数据存储器,与常见的微机的配置方式不同,数据存储器和程序存储器两者是分开的,各有自己的寻址系统、控制信号和功能。片内RAM和ROM最多可以扩展64K字节数据和程序存储器空间。采用8031的最小系统作为中央处理器,再加上必要的外围电路,形成自动控制电路。8031的内部资源如下: 一个8位CPU图1 一个片内振荡器及时钟电路交流市电回路。在给定周期T内,8031只要改变可控硅管的接通时间就能达到改变加热功率的目的,从而实现温度调节。下图示出了可控硅管在给定周期T内具有不同接通时间情况。显然,可控硅在给定周期T的100%时间内接通时的功率最大。
9、对于这样的执行机构,单片机只要输出能控制可控硅通断电时间的脉冲信号就可以了,这可用一条【/0线,通过程序输出控制脉冲。在此采用8031用软件在Pl.3引脚上产生受过零同步脉冲同步后经光耦管和驱动器输出送到可控硅的控制极上。为了达到过零触发的目的。需要交流电过零检测电路。此电路输出对应于50HZ交流电压时刻的脉冲,作为触发双向可控硅的同步脉冲,使可控硅在交流过零电压时刻触发导通。电路如图2+5V四、接口电路(一)程序存储器接口设计1、程序存储器的扩展性能(1) 程序存储器有单独的地址编号(0000HFFFFH),虽然与数据存储器的地址重叠,但不会占用;使用单独的控制信号和指令,程序存储的指令、数
10、据读取控制不用数据存储器的而控制和MoVX指令,而是由万成控制。读取数据用MOVC查表指令。(2) 由于大规模集成电路的发展,程序存储器使用的芯片数量愈来愈少,因此,地址选择多半采用线选法,而不用地址译码法。(3) 程序存储器和数据存储器共用地址总线与数据总线。MCS-51单片机访问外部存储器时,所使用的控制信号有:ALE:低八位地址锁存器控制PSEN:外部程序存储器“读取”控制2、程序存储器EPROM的扩展方法(1)EPROM的基本扩展电路单片机一般都采用片内无RC)M的供应状态芯片80310程序存储器扩展时,一般扩展容量都大于256字节,因此,EPROM片内地址线除了由PO口经锁存器提供8
11、位地址线外,还需由P2口提供若干地址线。EPROM所需的地址数决定于EPROM的容量,当EPROM为2K字节时地址线为11根(2K=2),4K字节时地址为12根(4K=22),余类推。所需要的高8位地址线由P2口提供。(2)程序存储器扩展电路芯片程序存储器扩展时,除必须有EPRoM芯片外,还必须有锁存器芯片。1)地址锁存器地址锁存信号为ALE,可使用带三态-ALE41LALE76543 2 10 Aaaaaaaa 2=htIOK缓冲输出的八D锁存器74LS373,也可以使用带清除端的八D锁存器74LS273oMCS-51单片机PO口地址锁存器连接方法如右图。2) EPRoM程序存储器紫外线擦除
12、电可编程只读存储器EPROM可作为MCS-51系列芯片的外部程序存储器。Intel公司典型产品有2716(2K8),2732(2K8),2764(8K8),27128(16KX8)和27256(32KX8)等。2732EPROM有五种工作方引脚号(18)(20)(24)(9-11,13-17)方式CEOEINPPVCCQ0-Q7读VILVILVCCDataOut编程VILVPPVCCDataIn编程检验VILVILVCCDataOut编程禁止VIHVPPVCC高阻维持VIH任意VCC高阻式,具体见上表。8031的I/O端口扩展常用芯片主要有通用I/O芯片和TTL、CMOS、锁存器、缓冲器电路芯
13、片两大类。通用I/O扩展芯片主要有Iniel公司的8255(3X8位)、8155(2X8位+6位,14位定时器/计数器)、8243(4X4位);Zilog公司的PIO(2X8位)等。对于MCS-51系列单片机可以直接和8155连接而不需要任何外加逻辑,可以直接为系统增加256个字节片外RAM,22位I/O线及一个14位定时器。8031和8155的连接方法如图所示。RDRDWRWRALfcALEP2.1IO/MP2.0CE80315Mhr-RESET10uF16VI)5.1k8155POEAADPO输出的低8位地址不需另加锁存器,故直接与8155的AD0AD7相连,即作为低8位地址线总线又作为数
14、据总线,地址锁存直接用ALE在8155中锁存高8位地址由建及IO/M的地址控制线决定。当P2.0=l和P2.1=0时,8155选中片内三个I/O端口,因此,在图中连接状态下的地址编号为:RAM字节地址:OOOOH-OOFFH命令/状态口:OlOOHPA口:OlOlHPB口:0102HPC口:0103H定时器低8位:0104H定时器高8位:0105H(三)MCS-51和A/D接口设计1、ADC0809是一种8位逐次逼近式A/D转换器,其内部有一个8位“三态输出锁存器”可以锁存A/D转换后的数字量,故它本身既可看作一种输入设备,也可以认为是并行I/O接口芯片。故ADCO809可以和微机直接接口,也
15、可通过像8155这样的其它接口芯片连接。大多数情况下,8031是和ADCO809直接相连的。ADCO809采用双列直插式封装,共有28条引脚,主要引脚功能为:IN0-IN7:为八路模拟电压输入线,用于输入被转换的模拟电压。ALE:为地址锁存允许输入线,高电平有效。ADDA、ADDB和ADDC:为地址输入线,用于选择INO-IN7上那一品各模拟电压送给比较器进行A/D转换。ADDAADDB和ADDC对INO-IN7的选择如下表所列:被选模拟电压ADDCADDBADDAINO000INl001IN2010IN3011IN4100IN5101IN6110IN7111START:为“启动脉冲”输入线,
16、上升沿清零SAR,下降沿启动ADC工作。EOC:为转换结束输出线,该线上高电平表示A/D转换已结束。OE:为“输出允许”线,高电平时能使2-2引脚上输出转换后的数字量。2、8031对ADC0809的接口如图,8031通过地址线P2.2和读写控制线RD、WR来控制转换器的模拟输入通道地址锁存、启动和输出允许。模拟输入通道地址的译码输入A、B、C由P0.0P0.3须经锁存器接入A、B、C。ADC0809工作;在P2.2=0和RD=O时,8031可以从ADC0809接收A/D转换后的数字量。这就是说:ADCO809可以视为8031的一个外部RAM单元,地址为03F8H(有很大的地址重叠范围,由OOO
17、ooOIlIIIIloOoB确定大因此,8031执行如下程序可以启动ADC0809工作。MOVDPTR,#03F8HMOVDPTR,A对ADCO809地址的确定:所选定模拟电压路数为IN0,其对应的地址为ABC=OOO,即P0.0P0.1P0.2=000;又P2.2=0时才能启动ADC0809工作和使8031从ADeO809接收A/D转换电压的数字量。故16位地址表示:P2.7P2.0P0.7POQ根据重叠地址范围定义(未参加译码的片选地址和片内地址从全“0”变到全“1”时的地址范围),而P2.7P2.3未参加译码可知其由很大的重叠范围地址,确定ADCo809其中一个地址为:0000OQllI
18、lllIOooB=O3F8H,其中“_”表示固定量。ADC0809所需时钟信号可以由8031的ALE信号提供。8031的ALE信号通常是每个机器周期出现两次,故它的频率是单片机时钟频率的l6o本系统8031主频是6MHZ,ALE信号频率为IMHZ,使8031的ALE上信号经过2分频后接到ADC0809的CLOCK输入端,就可获得500KHZ的A/D转换脉冲,当然,ALE上脉冲会在MOVX指令的每个机器周期少出现一次,但通常情况下影响不大。ADCO809时序图为:ALE地址模拟入START启动EOCIOusO_ tEoc从时序图可以看出,在启动0809后,EOC约在IOus后才变为低电平,EOC
19、线经过反相器和803IINTl线相连,这即是8031采用中断方式来和ADC0809传送A/D转换后的数字量的。为了给OE线分配一个地址,把803IRD和P2.2经或门和OE相连。平时,使OE处于低电平封锁状态,在响应中断后,8031执行中断服务程序中如下两条指令就可以使OE变为高电平,从而打开三态输出锁存器,让CPU提取A/D转换后的数字量。MOVDPTR,#03F8HMOVXA,DPTR;OE变为高电平,数字量送A(四)键盘/显示接口设计1、单片机应用系统中的键输入单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。键盘
20、有编码和非编码两种。非编码键盘硬件电路极为简单故本系统采用。(1)键输入接口与软件解决的任务A.键开关状态的可靠输入为了去抖动我们采用软件方法,它是在检测到有键按下时,执行一个IOms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响。B.对按键进行编码给定键值或给出键号对于按键无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值,以实现按键功能程序的散转转移。为使编码间隔小,散转入口地址安排方便,常采用依次序排列的键号。C.选择键盘监测方法对是否有键按下的信息输入方式有中断方式与查询方式两种。(2)行列式键盘
21、本系统用行列式键盘,即用I/O口线组成行列式结构,按键设置在行列的交点上。在按键数较多时,可节省I/O口线。本系统键盘采用的工作方式为编程扫描工作方式,它是利用CPU在完成其他工作的空余,调用键盘扫描子程序,来响应键输入要求。在执行键功能程序时,CPU不再响应键输入要求。编程扫描工作方式只有在CPU空闲时才调用键盘扫描子程序。键盘采用的扫描法扫描方式,扫描法是在判定有键按下后逐行(或列)置低电平,同时读入行(或列)状态,如果行(或列)状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。)LED显示器1.ED显示块是由发光二极管显示字段的显示器件,常使用七段LED。这种显示块有共阴极与
22、共阳极两种接法。N位LED显示器有N根位选线和8XN根段选线。根据显示方式不同,位选线与段选线的连接方法不同。段选线控制字符选择,位选线控制显示器的亮暗。1.ED显示方式有静态显示方式(因其占用I/O资源较多,故在位数较多时不采用)和动态显示方式,如八位LED动态显示电路只需要两个8位I/O口。其中一个控制段选码,另一个控制位选码。由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,八位LED只可能显示相同的字符,必须采用扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,段选控制I/O输出相应字符段选码,位选控制I/O口在该显示位送入选通电平以保证该位显示相应字符。如此轮流,使每
23、位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。段选、位选码每送一次后延时l5ms0(4)接口电路1)用8155扩展端口I/O组成行列式键盘对8155初始化,置PA为基本输出口、PC口为基本输入口。2)软件译码的动态显示接口也可通过8155扩展I/O口控制LED动态显示接口。只需8155提供2个8位输出口即可。可设置PB口为输出段选码,PA口为输出位选码。位选码占用输出口线决定于显示器位数。3)8155扩展I/O的键盘、显示接口在单片机系统中,为了节省I/O口线,把键盘和显示电路做在一起,构成键盘、显示电路。如附件二图,根据设置功能键4个和数字键10个共需14个按键,显示的位数用
24、4位显示。故我们设置4X4=16个键。1.ED显示器采用共阴极。段选码由8155PB口提供,位选码由PA口提供。键盘的列输入由PA口提供,行输出由PCOPC3提供。1.ED采用动态显示软件译码,键盘采用逐行扫描查询工作方式。1.ED的驱动采用北京集成电路设计中心生产的集电极开路输出八位驱软件设计一、概述1、软件功能分析整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了从软件的功能不同可分为两大类:一是监控软件,它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件,它是用来完成各种实质性的功能如测量、计算、显示、打印、通讯等。每一个执行
25、软件也就是一个小的功能执行模块。设计者应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。各执行模块规划好后,就可以规划监控程序了。首先要根据系统的总体功能和键盘设置选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。2、系统资源分配8031单片机系统中,片内、外RAM,ROM以及I/O存储空间的地址是统一的,地址分配如下:堆栈栈顶地址在片内RAM数据缓冲区:50Ho显示缓冲区设在片内RAM:78H7BH单元;2732EPRoM存储区地址为:OOOOH-OFFFH;ADCO809的地址为:03F8H;8155地址为:状态口OlOOH?
26、RAM01OOH-OIFFHA口OlOlH(输出口口B口0102H(输出口口C口0103H(输入口)。内部数据存储区单元的数据分布如下:Ui中间值2AH !给rKiH定Y标志位2BH ;值 L Kil35H!CPi(k)H3FH!Pl值Y36HjLPi(k)L40H2CH2DH37H38H KDHKDL TT 给定值给定值41H42HEH 2 13FH3OH1HH3H4H 2F3 3323 3 H)Lk)(kH H L P(PURHRLKPKP p rt 啾逾 给定值给定值 本算计本次计算Y 值-E(k)H一 E(k)L39HX- titmax43H44H3AH给定值计算Y上次-E(k-1)H
27、3BH时间、tmin45HI十算V 值i(k-l)L3CH越限计数器46H上上次计Y算值-E(k-2)H.E(k-2)L3DH3EHPlD最大值47H3、程序总体设计程序总体设计是指从系统高度考虑程序结构、数据形式、程序功能的实现手法和手段。程序总体设计包括抑定总体方案、确定算法和绘制程序流程等。在总体框图基础上,设计者还应结合数学模型确定各子认为的具体算法和步骤,并演化成计算机能处理的形式,然后画出字模块的所有流程图。4、系统时钟周期的设定本系统控制程序采用中断嵌套方式来设计,首先使TO计数器产生5秒钟定时中断,作为本系统的采样周期在TO中断服务程序启动A/D,读入采样数据,进行数字滤波,上
28、下限报警处理,PID计算,然后输出控制脉冲信号,脉冲宽度由Tl计数器溢出中断决定,在等待Tl中断时,将本次采样数值转换成对应的温度值放入显示缓冲区,然后调用显示子程序。从Tl中断返回后,再从TO中断返回主程序,并继续显示本次采样温度,等待下次To中断。MCS-51定时器/计数器工作方式工作方式计数器功能方式013位计数器方式I16位计数器方式2自动重装初值的8位计数器方式3TO为两个独立计数器,Tl为无中断重装8位计数器MCS-51对内部定时器/计数器的初始化(1)初始化步骤1)根据题目要求先给定时器方式寄存器TMOD送一个方式控制字,以设定定时器/计数器的相应工作方式。2)根据实际需要给定时
29、器/计数器选送定时器初值或计数器初值,以确定需要定时的时间和需要计数的初值。3)根据需要给中断允许寄存器IE选送中断控制字和中断优先级寄存器IP选送中断优先级字,以开放相应中断和设定中断优先级。4)给定时器控制寄存器送命令字,以启动或禁止定时器/计数器的运行。(2)定时器初值的计算在定时器模式下,计数器有单片机主脉冲经12分频后计数。因此,定时器定时时间T的计算公式为:T=(M-T。XT计数或TC=M-TzT计数。式中,M为模值,和定时器的工作方式有关;T计数是单片机时钟周期Tclk的12倍;TC为定时器的定时初值。若设主脉冲fclk=6MHZ,由上式可得最大定时时间:方式。时:TmaX=23
30、X2us=16.384ms方式1时:Tmax=2162us=131.072ms方式2时:TmaX=28X2us=0.256ms本系统中8031时钟频率为fclk=6MHZ,要求TO定时中断,周期为5S,作为采样周期。要使定时器能定时5S,这个值显然已超过了上面所算定时器的最大定时时间,为此,我们只有采用定时器定时和软件计数相结合的方法才能解决问题。我们可以在主程序中设定一个初值为I(M)的软件计数器和使TO定时50ms。这样,每当TO定时到50ms时CPU就响应它的溢出中断请求,从而进入它的中断服务程序。在中断服务程序中,CPU先使软件计数器减1,然后判断他是否为零。若它为零,则表示定时5S钟
31、已到,便可恢复软件计数器初值和启动AQ转换,读入采样数据等控制处理程序,Tl中断嵌套在TO中断之中,从Tl中断服务程序返回后可恢复现场和返回主程序,以等待下次TO中断;若它不为零,则表示定时5S未到,也返回主程序。如此重复上述过程,就可以得到采样周期为5S的To定时中断了。由于要定时50ms,故定时器TO必须工作于方式1,TO定时初值为:TC=M-TZT计数=2,6-50ms2us=40536D=9E58H具体程序见附录三。二、主程序主程序包括8031本身的初始化,8155初始化,本程序给出了有关标志暂存单元设定堆栈指针和显示缓冲区清零、TO初始化、开CPU中断、温度显示和键盘扫描等程序。程序
32、流程图如下:Tl中断程序清标志和暂存单元4-T-清标志D5H1清显示缓冲器区J停止输出to初始化ICPU开中断一返回扫描键盘Tl中断服务程序温度显示三、TO中断服务程序TO中断服务程序是温度控制系统的主体程序,用于启动A/D转换、读入采样数据、数字滤波、越限温度报警和越限处理、PID计算和输出可控硅的同步脉冲等。程序流程图如下页。TI计数器的溢出中断是用来控制8031的PL3引脚上输出可控硅的同步触发脉冲,8031在等待TI溢出中断空隙时间(形成PL3输出脉冲宽顶)完成把本次采样值转换成显示值而放入显示缓冲区和调用温度显示程序。Tl中断程序框图如上,其中D5H(清零或置位)是用来作为等待Tl中
33、断控制时间时调用温度显示程序所设置的。Tl嵌套在TO中断之中,所以要保证在TO再次溢出中断之前,Tl中断服务结束(即TI小于5S),并以To中断返回到主程序,否则程序不能正常运行。而门的初值是由PID计算值决定的,因此PID的最大输出必须小于5s所对应的数字值。四、子程序1.分段控制程序根据设计的要求,我们需要对蛋白质水解进行分段的温度控制,以便更符合蛋白质水解时的温度。这里的分段段数可以根据用户的要求自行设置,设置范围不大于19段,我们这里把分段数存放于地址48H中,又从以上主程序中可以知道系统的中断时间为5s,这样我们可以编制出流程图,如图4.1程序见附录四。图4.1在本系统中,我们需要有
34、给定值的计算,这样才能控制系统的升温在一定范围内尽量按线性变化,而不至于在某一瞬间有太严重的起伏。同样PID计算也就有一个计算标准,以算出某一时间的偏差来控制炉温。系统给定值的计算式如下:UR=ijnti+Umin具体程序见附录五。3.采样子程序采样子程序SAMP是对炉温的采样,我们设置在每一个采样周期内采样3次。通过判断ADC0809的EOC引脚上的电平就可以判定转换是否结束(当EOC=I时,表示转换己结束),故可用JBP3.3,HERE来使ADC0809采样下一次。程序流程图见图4.3。采样程序见附录六。4、数字滤波子程序数字滤波子程序FILTER通过模拟量输入通道采集到的温度量,可能混杂
35、了干扰噪声,需要进行数字滤波。这种滤波方法不需要增加硬设备,只需根据预定的滤波算法编制相应的程序即可达到信号滤波的目的。常用的数字滤波方法有:平均值法、中位值法、限幅法等。木系统采用中值滤波法,只需对2CH、2DH和2EH中三次采样值进行比较,取中间值存放到2AH单元内,以作为温度标度转换时使用。中值滤波程序见附录七,其程序框图见图4.4。5、PlD计算程序PID算法是按照偏差的比例、积分、微分进行的一种算法,计算机PID算法是用差分方程近似实现的。用微分方程表示的PID调节规律的理想算式为:u(t)=Kpe(t)+/e(t)dtTi+Tdde(t)dt式中,c(t)=r(t)-y(t)为偏差
36、信号,是调节器的输入信号,r(t)是给定值,y(t)为被控量,u(t)为调节器输出的控制信号,KP为比例系数,Ti为积分时间常数,Td为微分时间常数。计算机只能处理数字信号,若采样周期为T,第n次采样输入偏差为en,输出为un,PID算法中的微分de/dt用差分(en-en-1)/T代替,积分Je(t)dt用EekT代替,于是得到:Un=Kpen+ekT/Ti+Td(en-en-1)/T写成递推形式:Un=Un-1+Kpen-en-l+Ten/Ti+Td(en-2en-l+en-2)/T写成:U(n)=u(n-l)+KpE(n)-E(n-l)+KIE(n)+KDE(n)-2E(n-l)+E(n
37、-2)=u(n-l)+Pp+PI+PD这样程序流程图如图4.5所示。程序模块见附录九。其中程序中又用到的子程序模块有:双字节加法子程序DSUM,双字节求补子程序CPLI和双字节有符号数乘法子程序MULT1。图4.46.温度标度转换温度标度转换程序的H的是:要把实际采样的二进制值转换成BCD形式的温度值,然后存放到显示缓冲区78H-7BH,对一般线性仪器来说,标度转换公式为:Ax=AO+(Am-AO)(Nx-NO)/(Nm-NO)式中,Ao为一次测量仪表的下限,Am为一次测量仪表的上限,AX为实际测量值;NO为仪表下限所对应的数字量,Nm为仪表上限所对应的数字量,NX为测量所得数字量。在本设计中
38、,我们采用的仪表范围为OTOO度,又是8位二进制转换(00FFH),这样我们可以得出转换式子为:Tx=100Nx255=KXNx在程序中因为K值比较小,所以我们采用左移两位即对K值扩大256倍,然后再乘以Nx,得出的积只要取高8位,即可抵消K值256倍的扩大,根据寄存器A与寄存器B相乘,高8位存在寄存器A中,取出A值即可得到正确的结果。程序流程图见图2.7。具体程序清单见附录九。图2.77、键盘/显示程序键盘/显示系统在单片机控制系统中,键盘/显示系统常用来监视和分析键盘输入的命令和数据以及显示被控系统的工作状态。它分为硬件电路和软件程序两部分组成。硬件我们已经在前面讲过,这里主要讲述软件部分
39、。软件分为动态子程序、键盘扫描子程序和求键值子程序等组成。图4.7(1)为键盘/显示系统的主程序流程图。主程序见附录十。8155初始化R3R2RlRO1.31.21.l1.OTEMRESETENTER89SECTTIME45670123(2)键盘扫描系统键盘电路在这里采用的非编码方式,CPU必须对所有按键进行监视。一旦发现有键按下,CPU应通过程序加以识别,并转入相应的处理程序,实现该键功能。在监视键盘中是否有键按下时,若无键按下,则所读列值必为OFH,表明被按键不在本行;若有键按下,则列值必因被按按键的行列线接通而不等于0FH。CPU扫描键盘时可以通过程序读取按按键的行值和列值并求出相应关键
40、字和键值,然后再通过程序判断被按按键的键值就可以知道按下了什么键。因此,弄清行值和列值对关键字的关系,关键字对键值的关系是分析非编码键盘工作原理和阅读键盘扫描和识别程序的关键问题。表2-4为各键的行值、列值、关键字和键值的对应关系。求关键字必须先知道行值和列值,行值与列值可以由键盘分布图(见图A)知道。CPU把行序号移到高四位并和列值低四位相加便可得到相应的关键字,而行序号是由按键的行值右移到全“0”时得到的移位数减1即是。键值则是由查表次数减1得。由键值表可知,数字键得键值必小于10H,功能键得键值是大于和等于IOH的。因此,CPlJ判别被按按键是数字键还是功能键时:若被按按键的键值小于10
41、H,则转数字键处理程序;若被按按键的键值大于或等于10H,则CPU通过查表可以很快转入相应按键的处理程序。在单片机指令系统中,为了配合键信息输入而设置的有散转指令,可看成是键信息输入的软件接口。MCS-51系列的散转指令为JMPA+DPTRO按键识别程序由键盘扫描子程序和求键值子程序组成。键盘扫描子程序流程图,见图4.7(2);求键值子程序流程图,见图4.7(3)。关键字键值行值列值按键07HOOHOlH07H0OBHOlHOlHOBH1ODH02HOlHODHOEH03HOlHOEH317H04H02H07H4IBH05H02HOBH5IDH06H02HODH6IEH07H02HOEH727
42、H08H04H07H82BII09H04HOBH92DHOAH04HODHSECT2EHOBH04HOEHTIME37HOCH08H07HTEM3BHODH08HOBHRST3DHOEH08HODHENT表4.7图 4.7 (2)(3)动态显示系统为了减少硬件开锁,提高系统可靠性和降低成本,单片机控制系统通常采用动态扫描显示。动态显示采用软件法把欲显示十六进制数转换为相应字形码,故它通常需要在RAM区建立一个显示缓冲区。显示缓冲区内包括的存储单元个数常和系统中LED显示器个数相等。显示缓冲区的起始很重要,它决定了显示缓冲区在R呻的位置。显示缓冲区中每个存储单元用于存放相应LED显示管欲显示字符
43、的字形码地行序列号初值O送RI显示缓冲器指针J皆初值7XH-R0扫描模式置初N /X、俏 OIHiR3址偏移量,故CPU可以根据这个地址偏移量通过查字形码表来找出所需显示字符的字形码,以便送到字形口显示。在这里我们把显示缓冲区设为:78H7FH显示程序的流程图,见图4.7(4)o设计要求一、参数要求:蛋白质水解的容积:20L加热功率:2KW电源:AC220V控温范围:+15(室温)+10(TC二、系统功能要求分段对蛋白质溶液进行监测和控制,段数为319段;要求每段的温升-时间关系为:Tt,反应的温度要按预定的温度-时间关系变化。要有一定的控制精度和转换精度(一般采用数字式PID控制)。本系统具
44、有键盘和显示功能,对键盘设置有“段”、“温度”、“时间”三个功能键,在系统工作时能在显示器上显出当前炉温和设定值炉温。三、其它要求要求设计有一个清晰明了的整体方案,各个芯片的选用要具体,要具有良好的扩展技术和接口技术。需要考虑到其他的一些技术,如:传感器技术,抗干扰技术和一些可靠性技术等。设计总体方案蛋白质水解控制器是食品加工的必要机械之一,主要要求是控制蛋白质分解时的温度,确保其在预定的温度下反应分解。在不同的温度曲线下,其水解速度与水解度会不同,所以蛋白质水解控制器的核心是按需要的温度曲线对温度进行控制。此工作流程是:由温度传感器测量水解炉温的瞬时值而输出的电信号为模拟信号,经过变换器放大
45、后,送A/D转换器转换后为数字信号,该信号再经单片机判断和运算,得到应有的控制量,去控制加热功率,从而实现对温度的控制。本设计加热炉的容积为20L,采用电热丝的功率为2KW,蛋白质水解的温度范围为01000Co蛋白质溶液的比热按照水的比热来计算,即Cp=4.18J(KgK);蛋白质溶液的密度按照水的密度来计算,即P=LOOXIO3Kg-mt当忽略周围环境的影响时要求温升AT与需要热量关系为:Q=CpmT=CpPvT=8.36104T可得:(1)每分钟能升温:2000wX60s=8.36X1()4AT=T=1.435(2)每升IC所需时间:20001=8.36XlO41=t=41.8s系统设计中所要考虑的问题有:1.炉温变化规律控制,即炉温按照预定的温度-时间关系变化,这主要在控制程序设计中考虑,按照以上所计算每分钟最多升温1.4,每升至少用时41.8s。2.温度控制范围:如温度在15100C,这就涉及到测温元件、电炉功率等的选择。3.控制精度、超调量等指标,这就涉及到A/D转换精度,控制规律选择等。换通道、监测电路等。1、温度检测和变送器温度检测元件和变送器的类型选择和被控温度的范围及精度等级有关。根据蛋白质水解的温度控制范围15-100eC,选用电压型集成温度传