烘箱温度控制系统设计_第1页
烘箱温度控制系统设计_第2页
烘箱温度控制系统设计_第3页
烘箱温度控制系统设计_第4页
烘箱温度控制系统设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、第一部分 设计题目及设计要求设计内容:在烘箱内部装有一个1000W的电加热丝和一个PT100 铂热敏电阻温度传感器,用8088CPU 设计一个温度控制器,对烘箱温度(室温-100度)进行控制。要求系统可对控制温度进行设置(键盘),对当前温度进行显示(7段LED显示器)(设已知PT100的温度系数为0.01W/度)。第二部分 设计要求设计要求:画出电路原理图,说明工作原理,编写相应程序,其控制为简单控制,即当温度超过设定温度1度时停止加热,当低于设定温度1度时开始加热。第三部分 设计总体方案设计总体方案:本系统是以8088微处理器为核心,是一个典型的温度闭环控制系统,需要完成的功能是温度的设定、

2、温度的采集与显示以及温度的自动控制等。系统采用最简单的开关通断控制方式,即当烘箱温度大于设置值1度时断开加热电阻丝,当温度低于设定值1度值时接通电阻丝开始加热,从而保持恒温控制。根据设计的要求,可将系统分为如下几个子模块:温度检测模块,AD转换模块,键盘输入模块,接口扩展模块,温度显示模块,温度控制模块。由于本系统需要的接口较多,我们使用了两片可编程并行接口8255以提高系统的工作效率。第一片8255(1)用于连接键盘和十位和个位数码管显示;第二片8255(2)用于连接十分位的数码管显示,AD转换器和温度控制系统。系统原理图如下图所示:其详细原理是:温度的传感和放大部分通过PT100热敏电阻温

3、度传感器和运算放大器来实现温度的检测与电压放大,通过温度检测与信号调理模块来实现。该模块将得到的电压信号送到ADC0809进行模数转换。8088从ADC0809读转换后的数字量,由温度与数字量的转换关系,调用相应子程序将数字量转换成温度的BCD码。这时CPU8088将该温度值(即实际温度值)与先前通过键盘输入的值(即设定值)进行比较,若实际温度值高于设定温度值的1度时,调用停止加热子程序,若实际值低于设定值的1度时,则调用开始加热子程序。这两个子程序执行完毕之后,检测一次按键,若无按键被按下,则返回到温度采集模块重新采集新的温度值与设定值进行比较;若有按键被按下,则回到按键检测过程重新开始执行

4、程序。系统硬件连接示意图:系统总流程图:第四部分 主要元件主要元件介绍: 8088CPU简介及其总线形成原理 1979年,INTEL公司推出了8088芯片,它仍旧是属于16位微处理器,内含29000个晶体管,时钟频率为4.77MHz,地址总线为20位,可使用1MB内存。8088内部数据总线是16位,外部数据总线是8位。作为微处理器,再加上必须的支持芯片,如时钟发生器,地址锁存器,总线驱动器 ,存储器和I/O接口等,才能构成一台完整的微型计算机。 根据外部设备的数量和系统复杂程度,8088可以选用两种系统总线构成模式,最小模式和最大模式。最小模式是单CPU系统,在这种系统中,8088的MN/MX

5、引脚接高电平,系统全部的控制信号都直接由CPU提供。最大模式是多CPU系统,此时MN/MX引脚接低电平,必须通过8288总线控制器对CPU的状态信息进行译码才能产生系统必须的控制信号。 最小模式系统构成如图1所示。这时8088的MN/MX引脚接至VCC,它直接产生存储器和I/O端口的读写命令,如IO/M,RD,WR,INTA,直接产生地址锁定信号ALE,控制数据收发器的控制信号DT/R,DEN。 图1 8088的最小总线模式 8255简介及其工作方式 8255是Intel公司生产的为x86系列CPU配套的可编程并行接口芯片,其通用性较强,使用灵活。8255内部包含3个独立的I/O端口(A口、B

6、口和C口)以及一个控制寄存器,共有3种工作方式(本设计中三个端口工作在方式0和方式1下):1)方式0:基本输入输出方式。在这种工作方式下,A口、C口的高4位、B口以及C口的低4位可分别定义为输入或输出,各端口相互独立,故共有16种不同的组合,且C口具有按位进行置位和复位的能力。此方式最适合于无条件传送方式。本设计中三个端口均工作在方式0下。2)方式1:选通输入输出方式。在这种方式下,A口和B口仍作为数据的输入输出口,C口的某些位用来提供选通信号以控制数据的输入输出。3)方式2:双向传输方式。只有A口可以工作在这种方式下。利用C口的5条线来提供双向传输所需的控制信号。当A口工作于方式2时,B口可

7、以工作在方式0或方式1,而C口剩下的3条线可作为输入输出线或用作B口方式1下的控制线。8255具体的工作方式通过软件向控制寄存器中写入相应的控制字来实现,这个过程称为8255的初始化。8255的外部引线如图2所示。 图2 8255外部引线 存储器简介1.EPROM2764 2764是8K*8b的紫外线擦出、电可编程只读存储器,单一+5V供电,工作电流为75mA,维持电流为35mA,读出时间最大为250nS,28脚双列直插式封装。各引脚的含义为: A0-A12为13根地址线,可寻址8K字节;D0-D7为数据输出线;CE为片选线;OE为数据输出选通线;PGM为编程脉冲输入端;Vpp是编程电源;Vc

8、c是主电源。正常工作(只读)时,Vpp=Vcc=+5V, PGM=+5V。编程时,Vpp+25V(高压),PGM端加入宽度为50ms的负脉冲。 EPROM 2764的外部引线如图3所示。它的引线与SRAM芯片6264是兼容的。这给使用者带来很大方便。因为在软件调试过程中,程序经常需要修改,此时可将程序先放在6264中,读写修改都很方便。调试成功后,将程序固化在2764中,由于它与6264的引脚兼容,所以可以把2764直接插在原6264的插座上。这样,程序就不会由于断电而丢失。2.SRAM62646264是一种8K×8的静态存储器,主要包括512×128的存储器矩阵、行列地址

9、译码器以及数据输入输出控制逻辑电路。地址线13位,其中A12A3用于行地址译码,A2A0和A10用于列地址译码。在存储器读周期,选中单元的8位数据经列I/O控制电路输出;在存储器写周期,外部8位数据经输入数据控制电路和列IO控制电路,写入到所选中的单元中。6264有28个引脚,如图所示,采用双列直插式结构,使用单一5 V电源。其中,D0D7接8根双向数据线,CS接片选信号线,OE为输出允许信号,WE为写允许信号,Vcc为+5V电源,GND是接地端,NC表示空端。 EPROM 2764 的外部引线第五部分 子模块介绍 温度检测模块详细原理:本系统的温度检测的设计是以PT100热敏电阻为检测元件的

10、,PT100铂电阻温度传感器, 0时电阻值为100,100时为138.5。精度高,稳定性好,应用温度范围广,是中低温区(-200650)最常用的一种温度检测器,不仅广泛应用于工业测温,而且被制成各种标准温度计。由于其电阻值小,灵敏度高,所以引线的阻值不能忽略不计,采用三线式接法可消除引线线路电阻带来的测量误差。原理如下:PT100引出的三根导线截面积和长度均相同(即r1=r2=r3),测量铂电阻的电路一般是不平衡电桥,铂电阻(Rpt100)作为电桥的一个桥臂电阻,将导线一根(r1)接到电桥的电源端,其余两根(r2、r3)分别接到铂电阻所在的桥臂及与其相邻的桥臂上,这样两桥臂都引入了相同阻值的引

11、线电阻,电桥处于平衡状态,引线线电阻的变化对测量结果没有任何影响。由于测温的范围是0100 ,将0对应的PT100阻值100和100 时对应的阻值138.5分别带进电桥计算,得到温差为100 时电桥两端的出入约为0.15v,这时需要将该电压值调理到适合ADC0809的输入通道匹配电压值05v,于是用LM324将该电压放大33倍,接近5v。由于一般电源供应多器件之后,电源是带杂波的,因此使用稳压二极管作为稳压元件,再利用可变电阻分压输出电压接AD转换器,那么AD转换输出的数字量就和摄氏温度成线性比例的关系。电路图 AD转换模块器件简介:我们选择使用ADC0809来进行AD转换,ADC0809是逐

12、位逼近型8位单片AD转换芯片。片内含8路模拟开关,可允许8路模拟量输入。片内带有三态输出缓冲器,可直接与总线相连。它的转换精度和转换时间都不是很高,但其性能价格比有比较明显的优势,是目前应用较为广泛的芯片之一。ADC0809工作过程:1) 首先输入3位地址信号,ADDA、ADDB、ADDC。2) 在通道地址信号有效期间,使ALE引脚上产生一个由低到高的电平变化,即脉冲上跳沿,它将输入的3位通道地址锁存到内部地址锁存器。3) 接着给START引脚加上一个由高到低变化的电平,启动AD转换。4) 变换开始后,EOC引脚呈现低电平,一旦变换结束,EOC又重新变为高电平。5) CPU在检测到EOC变高后

13、,输出一个正脉冲到OE端,将转换结果取走。详细应用过程:模拟输入通道地址A,B,C直接接地,因此ADC0809只对通道IN0输入的电压进行模数转换。为了减少输入噪声其他通道直接接地。ADC0809的数据线D0-D7与第一片8255的PA0-PA7相连接,其EOC接在PB2上,ALE和START接在PB0上,OE接在PB1上。PB2接加温电路。ADC0809接受由温度采集模块送来的模拟电压信号。CPU8088通过8255向ADC0809的ALE和START端口送一个高电平,这时ADC0809将地址信息锁存起来,并启动模数转换器开始转换模拟信息。当转换完成之后,ADC0809的EOC将变为高电平,

14、这时8088读到该高电平时,向ADC0809的OE端口送一个高电平读允许信号,并从它的8位数据端口读转换完成后的数字量。 电路图流程图: 键盘输入模块详细原理:温度的预设值需要用键盘输入,矩阵键盘所需的连线非常少,是一般微机常用的键盘结构。本系统需要输入0-9的数字,所以设计成4*4的矩阵键盘,其中只有前十个按键有效。按键的识别采用反转法。 电路图矩阵键盘键码的读出这里采用反转法,首先初始化第一片8255,定义PC口高四位为输出,低四位为输入。然后使PC口高4位先输出0,读低四位即列线的状态,如果列线有低电平,说明有键按下,保存列值。再定义PC口高四位为输入,低四位为输出,使低四位输出刚才保存

15、的列值,读高四位得到行值并保存。组合行值和列值,查表后即可得到对应的键值。流程图 接口扩展模块详细原理:两片8255的数据口D0-D7与CPU的数据总线相连接,控制8255内部的各种操作。控制线RESET用来使8255A复位。CS和地址线A1及A0用于芯片选择和通道寻址。分别与译码电路和8088的地址线A1,A0相连接。 电路图首先确定第一块8255的地址为0000H0003H,第二块8255的地址为0004H0007H,按照该地址分配使用8088的低16位地址线确定译码电路,分别选中两片8255的。由于8088的AD0AD19具有分时复用的功能,使用时首先送出地址,选中对应芯片后送出数据。所

16、以两片8255的数据端口再次接8088的AD0AD7。 数据显示模块详细原理:用第一片8255的A口和B口分别接2片LED数码管,分别用来显示十位数和个位数;第二片8255的C口接1片LED数码管用来显示十分位。显示时8088首先向第1片8255送控制字,然后向A口送十位数转换的字段码,将温度的十数位显示在LED上,同样的方法依次选中LED之后将温度的个位和十分位显示在LED ,每秒更新一次温度值。个位的数码管的dp端接高电平,使其上面的小数点点亮。 电路图流程图: 温度控制模块详细原理:当第一片8255的PB3为高电平时,三极管导通,继电器吸合,加热系统开始压加热;反之,输入低电平,三极管截

17、止,继电器断开,停止加热。在图中二极管的作用是吸收继电器端开时产生的浪涌电压。 电路图数据处理流程图:(7)存储器扩展模块 用74LS138对RAM6264和ROM2764存储器进行片选,用A15A13作片选信号。A20A16与或门相连接选通输入端。地址分配如下。第六部分 代码DATA SEGMENT KEY DB 77H,7BH,7DH,B7H,BBH,BDH,D7H,DBH,DDH,E7H BUF DB 1OO DUP(?) LED DB 3FH,06H,5BH,4FH,60H,6DH,7DH,07H,7FH,6FHDATA ENDSSTACK SEGMENT DB 30 DUP(?)ST

18、ACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATESTART: MOV AX,DATE MOV DS,AX L6: MOV AX,0 CALL SHOW OUT 00H,AL;将取得的字码段输出到十位LED上 MOV DI,OFFSET BUF MOV DI,BL;保存十位 CALL DELAY;延迟 CALL SHOW OUT 01H,AL;将取得的字码段输出到个位的LED上 MOV DI+1,BL;保存个位 CALL DELAY MOV AL,92HOUT 07H,AL;将8255(2)C口设为输出 CALL SHOWOUT 06H,AL;将取得的字码段

19、输出到十分位的LEDMOV DI+2,BL;保存十分位L4:CALL DELAY CALL ZHUANHUAN MOV AL,DI;取设定温度的十位 MOV BL,DI+4;取检测温度的十位 CMP AL,BL;将设置温度的十位和检测温度的十位比较 JA L1;跳到L1,直接加热 MOV AH,DI+1;取设定温度的个位 MOV AL,DI+2;取设定温度的十分位 MOV CL,4 SHL AH,CL ADD AH,AL;将个位和十分位相加 MOV BH,DI+5;取检测温度的个位MOV BL,DI+3;取检测温度的十分位 SHL BH,CLADD BH,ALCMP AH,BHJA L3ADD

20、 AH,10H;相当于个位加1CMP AH,BHJAE L1JMP L2L3:SUB AH,10H;相当于个位减1 CMP AH,BH JA L1 JMP L2L1:MOV AL,80HOUT 07H,AL;将8255(2)的B口设为输出MOV AL,08HOUT 05H,AL;PB3输出为1,加热JMP L5L2:MOV AL,80H OUT 07H,AL MOV AL,00H OUT 05H,AL;PB3输出为0,不加热 JMP L5 L5:MOV AL,81HOUT 03H,ALMOV AL,0OUT 02H,ALIN AL,02H ;读C口低4位值AND AL,0FHCMP AL,0F

21、H;看是否有键按下JE L4;没有键按下,则跳到L4JMP L6;否则跳到L6INPUT PROC :NEAR MOV AL,81H;方式选择控制字,PC7-PC4输出,PC3-PC0输入OUT 03H,ALMOV AL,0OUT 02H,AL;将C口高4值输出WAIT1:IN AL,02H;读取C口低4位值 AND AL,0FH;清零掉高4位 CMP AL,0FH;看是否有键按下 JE WAIT1;没有键按下,跳到WAIT1 MOV AH,AL;保留低4位 MOV AL,88H;PC7-PC4输入,PC3-PC0输出 OUT 03H,AL MOV AL,AH OUT 02H,AL;把得到的低

22、4位值再输出到低4位口上IN AL,02H;读取C口高4位的值AND AL,F0H;保留高4位OR AL,AH;组合读到的值RETINPUT ENDPSHOW PROC NEAR CALL INPUT MOV BL,00HAND BX,000FHWAIT2:MOV CL,KEYBX;取键值INC BL CMP AL,CLJNE WAIT2;不相等跳回WAIT2DEC BLMOV AL,LEDBX;取得显示的字码段RETSHOW ENDPZHUANHUAN PROC NEAR MOV BX,0;BX作为累加器 MOV CL,8;总共采集8次数据 MOV AL,90H OUT 07H,AL;给82

23、55控制端写控制字,定义B口为输出AD1: MOV AL,1 OUT 05H,AL;给PB口写命令字,使ALE和START变高电平,地址锁存 MOV AL,0 OUT 05H,AL;给PB口写命令字,使ALE和START变低电平,AD转换启动 CALL DELAY1;调用延时子程序,等待AD转换结束 MOV AL,92H OUT 07H,AL;重新给控制端写控制字,定义B口为输入WAIT:IN AL,DX TEST AL,04H;检测PB3口EOC是否为高电平 JNZ WAIT MOV AL,90H OUT 07H,AL;重新给控制端写控制字,定义B口为输出 MOV AL,06H OUT 05H,AL; 若EOC是高电平,送高电平给OE MOV DX,04H IN AL,DX;读PA口数据 CBW;将AL扩展为AX AND AX,00FFH;高8位置0 ADD BX,AX;累加读出数据 LOOP AD1;再次采集 MOV CL,3 SHR BX,CL;将采集总数除以8取平均值 CALL BCDZHRETZHUANGHUAN ENDPBCDZH PROC NEAR MOV

温馨提示

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

评论

0/150

提交评论