单片机温度控制系统设计目录(一)设计任务与要求; 1(二)设计方案 1(三)硬件设计 6(四)软件设计 7(五)调试过程 10(六)小结 11(七)参考资料 11(一)设计任务与要求;温度控制实验掌握ADC0809的使用方法。掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭以及数码管显示数据。了解集成温度传感器AD590的工作原理和应用,熟悉小信号放大器的工作原理和零点、增益的调整方法,了解微机对温度采样控制的基本方法。编制程序,利用ADC0809将温度模拟量转换为数字量,并通过8255A并行口传输数据的方法,通过数码管显示出来,并根据温度的高低控制发光二极管的亮与灭。设定单点温度控制点为30ºC,当小于30ºC时,L1指示灯亮,模拟电热器加热;当大于30ºC时L1灭,L2亮,模拟关掉电热器。
(二)设计方案设计思路: 本文介绍一种性能可靠、功能齐全、稳定性好的温度控制器,温度显示采用数码管,带动发光二极管进行显示。设定30 ºC为温度控制点,温度小于30 ºC,实验箱上L1灯亮;大于30 ºC,L1灭、L2亮。 设计电路先使用AD590温度传感器来获取温度。AD590温度传感器具有体积小、反应快、稳定性好、测量精度高等优点,是电流输出型温度传感器。AD590传感器输出信号通过10K电阻取出的电压信号,经零点调整,小信号放大后,输出的电压信号VT,供ADC0809采样用。将AD590采集到的温度模拟量转换为数字量。再通过8255A并行口传输数据,显示七段LED数码管显示以及发光二极管的亮与灭。
各使用到的芯片及其作用:
AD590 由于科学研究、工业和家用电器等方面对测温和温控的需要,各种新型的集成电路温度传感器不断被研制出来,AD590 便是其中之一。AD590 是AD 公司利用PN 结正向电流与温度的关系制成的电流输出型两端温度传感器。AD590 可直接输出与热力学温度成比例的电流信号,在输出端串联一个电阻则转换为电压信号。 图2-1 AD590 的外形电路图 图2-2 集成温度传感器电路符号 AD590 是电流型温度传感器, 通过对电流的测量可得到所需要的温度值。根据特性分挡,AD590 的后缀以I ,J ,K,L ,M表示。AD590L ,AD590M一般用于精密温度测量电路,其电路外形如图1 所示,它采用金属壳3 脚封装, 其中1 脚为电源正端V+ ; 2 脚为电流输出端I0 ;3 脚为管壳,一般不用。集成温度传感器的电路符号如图2-2 所示。
AD590 的主特性参数如下:工作电压:4~30V;工作温度: - 55~ + 150 ℃;保存温度: - 65~ + 175 ℃;正向电压: + 44V;反向电压: - 20V;焊接温度(10 秒) :300 ℃;灵敏度:1μA/ K。 图2-3感温部分的核心电路 图2-4 AD590 的内部电路 其中T1、T2 起恒流作用,可用于使左右两支路的集电极电流I1 和I2 相等; T3、T4 是感温用的晶体管, 两个管的材质和工艺完全相同, 但T3 实质上是由n 个晶体管并联而成, 因而其结面积是T4 的n 倍。 图中的T1~T4相当于图3 中的T1、T2 , 而T9 , T11 相当于图3 中的T3、T4。R5、R6 是薄膜工艺制成的低温度系数电阻,供出厂前调整之用。T7、T8 , T10 为对称的Wilson 电路,用来提高阻抗。T5、T12 和T10 为启动电路,其中T5 为恒定偏置二极管。T6 可用来防止电源反接时损坏电路, 同时也可使左右两支路对称。R1 ,R2 为发射极反馈电阻,可用于进一步提高阻抗。T1~T4 是为热效应而设计的连接方式。而C1 和R4 则可用来防止寄生振荡。该电路的设计使得T9 , T10 , T11 三者的发射极电流相等,并同为整个电路总电流I 的1/ 3。T9 和T11 的发射结面积比为8 :1 ,T10 和T11 的发射结面积相等。T9 和T11 的发射结电压互相反极性串联后加在电阻R5 和R6 上,因此可以写出:ΔUBE = (R6 - 2 R5) I / 3R6 上只有T9 的发射极电流,而R5 上除了来自T10 的发射极电流外, 还有来自T11 的发射极电流,所以R5 上的压降是R5 的2/ 3。162
单片机温度控制系统表2-5 AD590温度与有关参数一览表温度 AD590电流 经10KΩ电压 零点调整后电压 放大5倍后电压VT ADC数字量0℃ 273.2µA 2.732V 0.0V 0V 00H10℃ 283.2µA 2.832V 0.1V 0.5V 1AH20℃ 293.2µA 2.932V 0.2V 1V 33H30℃ 303.2µA 3.032V 0.3V 1.5V 4DH40℃ 313.2µA 3.132V 0.4V 2V 66H50℃ 323.2µA 3.232V 0.5V 2.5V 80H60℃ 333.2µA 3.332V 0.6V 3V 99H70℃ 343.2µA 3.432V 0.7V 3.5V B3H80℃ 353.2µA 3.532V 0.8V 4V CCH90℃ 363.2µA 3.632V 0.9V 4.5V E6H100℃ 373.2µA 3.732V 1V 5V FFH
ADC0809 ADC0809是CMOS8位A/D转换器,采用逐次逼近式进行A/D转换。芯片内有一个8路模拟开关、一个比较器、一个带有树状模拟开关的256R分压器和一个逐次逼近的寄存器,其内部逻辑框图如图2- 所示。ADC0809有8路模拟量输入通道。ALE为地址锁存信号,高电平有效时,ADDC~ADDA被锁存,从而可通过对ADDC、ADDB、ADDA 3端输入的地址译码,选通8路模拟量输入(IN0~IN7)的任意一路进入片内,进行A/D转换。 图2-6 ADC0809的内部结构 图2-7 ADC0809引脚图引脚说明及工作时序VCC ,GND :电源和地IN0~IN7 :8 路模拟量的输入端,当模拟量的变化频率很高时,需进行采样保持后再接入输入端; ADDA、ADDB、ADDD : 输入地址选择端, 当(ADDC、ADDB、ADDA) 从000 变化到111 时,分别选择IN0 到IN7 通道进行A/ D 转换; START:为A/ D 转换启动信号,启动脉冲的上升沿将所有内部寄存器清零,下降沿开始转换; AL E:地址锁存允许信号, 上升沿将输入地址(ADDC、ADDB、ADDA) 锁存,确定相应的模拟通道以便进行A/ D 转换;OE:数据输出允许端,高电平时打开片内的三态锁存缓冲器,将输出寄存器(存放着A/ D 转换的结果)的数据送到数据线上;EOC:转换结束信号,高电平有效,在START 信号上升沿之后0~8 个周期内变为低电平,转换结束变为高电平,可用作查询或中断信号用;CL K:时钟信号, ADC0809 工作频率f 不大于640kHz , 一般利用扩展槽上的CLOCK 信号(4. 77MHz) 8 分频得到的596kHz 信号。
树状开关和256R分压器组成一个基本D/A转换器。当给ADC0809一个启动信号(START)后,通过控制与时序电路以及逐次逼近寄存器,采用逐步逼近的方式进行A/D转换。ADC0809的START是A/D转换启动信号,高电平有效,EOC是转换结束信号,高电平有效,当A/D转换完毕,EOC的高电平可用作中断请求信号。ADC0809转换后的数字量通过三态缓冲器输出,当输出允许OE=‘1’时,打开三态输出门输出数字量。 图2-8 地址码与输入通道的对应关系 图2-9 ADC0809时序图
8255A 8255A是Intel系列的并行接口芯片,由于它是可编程的,可以通过软件来设置芯片的工作方式,用其连接外部设备时,通常不需要再附加外部电路,给使用带来极大的方便。因此,常用它作为微型计算机与其它外设之间的接口。可由程序来改变其功能,通用性强、使用灵活。通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。 8255A是一个具有两个8位(A口和B口)和两个4位(C口分高/低4位)并行I/O端口的接口芯片,它在Intel系列CPU与外设之间提供与TTL 电平兼容的接口,适应多种数据传送方式(如无条件传送、查询传送和中断传送)的要求。与此相应,8255A设置了方式0、方式1和方式2(双向传送)三种工作方式。用户可根据外设条件,通过向8255A写入工作方式控制字来灵活构成多种接口电路。 ①通信方式0是一种基本的输入输出方式,该方式适用于较简单的场合,这种场合可以不使用联络线。该方式的特点是:输出有锁存,而输入不被锁存,而且方式0是单向的I/O,即一次初始化指定了输入或输出,不能再改变;如果改变,则必须重新初始化。不能指定同一端口同时既为输入又为输出。 ②通信方式1是选通输入/输出方式。在这种方式中,A口和B口用于输入/输出的数据端口, C口某些位用于接收或产生应答联络信号。该方式的特点是:方式1在输入/输出数据时都被锁存,可以用查询方式和中断方式进行数据的输入/输出。 ③通信方式2是分时双向输入/输出方式,即同一端口的I/O线既可以作为输入也可以作为输出。该方式的特点是: A口可以工作于方式2,但是B口只能工作在方式0和方式1,在方式2输入/输出数据时都被锁存;方式2可以用于查询方式和中断方式进行数据的输入/输出,在方式2时,为双向传送设置的联络信号,实际上就是在方式1下输入和输出两种操作时的组合,只有中断申请信号INTR既可以作为输入的中断申请,又可以作为输出的中断申请。
图2-10 8255A的内部结构框图 图2-11 8255A的引脚图
8255A的引脚功能8255A采用40条引脚的双列直插式(DIP ,Dual in-line package)封装,其引脚信号有: A1、A0:片内寄存器选择信号(输入) D7~ D0: 与CPU侧连接的数据线(双向)PA7~ PA0:A口外设数据线(双向)PB7 ~PB0:B口外设数据线(双向)PC7~ PC0:C口外设数据线(双向)RSSET:复位信号(双向)控制信号 以及A1、A0的组合可以实现对3个数据口(PA、PB、PC)和控制口(控制寄存器)的读写操作,如表2-12所示。
A1 A2 RD WR CS 输入操作(读)001 010 000 111 000 端口A→数据总线端口B→数据总线端口C→数据总线 输出操作(写)0011 0101 1111 0000 0000 数据总线→端口A数据总线→端口B数据总线→端口C数据总线→控制字寄存器 断开功能(禁止)×1× ×1× ×01 ×11 100 数据总线为三态(高阻)非法状态数据总线为三态(高阻) 表2-12 8255A端口功能选择
(三)硬件设计 图3-1 课设接线图 连接线:CS4→FF80H,JX6→JX17,8MHZ→T,IN0→VT,PA0→L1,PA1→L2。JX17为系统提供的数据总线接口:
LED发光二极管指示电路:实验台上包括16只发光二极管及相应驱动电路。Ll-L16为相应发光二极管驱动信号输入端,该输入端为低电平“0”时发光二极管亮。(箱式实验机简化为12只发光二极管):
温度控制脉冲发生电路:实验台上提供8MHZ的脉冲源,实验台上标有8MHZ的插孔,即为脉冲的输出端: 数码管显示电路:
(四)软件设计流程图:
源程序清单:CODE SEGMENT ;T.ASM ;代码段开始ASSUME CS:CODE ;定义代码段开始ADPORT EQU 0ff80h ;定义ADPORT=0ff80hPA EQU 0FF20H ;字位口 ;定义PA=0FF20HPB EQU 0FF21H ;字形口 ;定义PB=0FF21HPC EQU 0FF22H ;键入口 ;定义PC=0FF22HP2CTL EQU 0FF2BH ;定义P2CTL=0FF2BHP2A EQU 0FF28H ;定义P2A=0FF28HP2B EQU 0FF29H ;定义P2B=0FF29HP2C EQU 0FF2AH ;定义P2C=0FF2AH ORG 2C20H ;程序地址由2C20H开始START: JMP START0 ;无条件转移指令到START0BUF DB ?,?,?,?,?,? ;定义一数组BUF有六个数data1: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h db 86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH ;定义单字节数据dbSTART0: CALL BUF1 ;调转转移到BUF1 MOV DX,P2CTL ;将P2CTL的内容送到DX MOV AL,80H ;AL=80Hlwfree.cn IN AL,DX ;将DX端口的内容输入到AL中 PUSH AX ;弹出AX cmp al,4dh ;做比较,与运算 jnc ct1 ;若不相等,转到ct1 MOV AL,0FEH ;AL=0FEHCON: MOV DX,P2A ;pa0-->l1 OUT DX,AL POP AX ;压栈 CALL CONVERS ;调转转移到CONVERS CALL DISP ;调转转移到DISP JMP ADCON ;直接跳转到ADCONCT1: MOV AL,0FDH ;pa1-->l2 JMP CON ;直接跳转到CONCONVERS:MOV AH,AL ;AH= AL AND AL,0FH ;AL与0FH做与运算 MOV BX,OFFSET BUF ;将BUF数组中的内容送到BX MOV [BX+5],AL ;[BX+5]= AL MOV AL,AH ;AL= AH AND AL,0F0H ;AL与0F0H做与运算 MOV CL,04H ;CL=04H SHR AL,CL ;AL循环右移04H MOV [BX+4],AL ;[BX+4]= AL RETDISP: MOV AL,0FFH ;00H MOV DX,PA OUT DX,AL MOV CL,0DFH ;20H ;显示子程序 ,5ms MOV BX,OFFSET BUFDIS1: MOV AL,[BX] MOV AH,00H PUSH BX MOV BX,OFFSET DATA1 ;将DATA1的内容送到BX ADD BX,AX ;BX= BX+ AX MOV AL,[BX] ;将BX寄存器的内容送到AL POP BX MOV DX,PB ;将PB的内容送到DX OUT DX,AL ;把AL的内容从DX端口输出 MOV AL,CL ;AL= CL MOV DX,PA ;将PA的内容送到DX OUT DX,AL PUSH CX ;CX出栈DIS2: MOV CX,00A0H ;CX=00A0H LOOP contentnbsp; ;循环跳转 POP CX ;CX压栈 CMP CL,0FEH ;01H ;CL与0FEH比较 JZ LX1 ;相等 INC BX ;BX自增1 ROR CL,1 ;SHR CL,1 ;循环右移1位 ;逻辑右移 JMP DIS1 ;直接跳转到DIS1LX1: MOV AL,0FFH ;AL=0FFH MOV DX,PB ;DX= PB OUT DX,AL ;把AL的内容从DX端口输出 RET ;返回BUF1: MOV BUF,0AH ;BUF=0AH MOV BUF+1,0DH ;BUF+1=0DH MOV BUF+2,05H ;BUF+2=05H MOV BUF+3,09H ;BUF+3=09H MOV BUF+4,00H ;BUF+4=00H MOV BUF+5,00H ;BUF+5=00H RETCODE ENDS ;代码结束END START ;程序结束(五)调试过程硬件连线与实验步骤:(1) 打开实验箱DJ88K,取出需要连接的线。(2) 用连接线连JX6→JX17,CS4→FF80H,IN0→VT,PA0→L1,PA1→L2,8MHZ→T。实验箱上连完后,在给实验箱接上电源。并将标准RS232异步通讯口与IBM-PC机连接。(3) 打开电源,并在PC机上打开DJ8086k微机原理与接口技术软件。(4) 打开源程序,调试—编译程序(编译成功提示读取RAM成功)—装载程序(将程序通过通讯口下载到实验箱中)(5) 因为汇编程序是从2C20H地址开始的。在P态下,按SCAL键,输入2C20,按EXEC键,显示“AD59XX”,“XX”为当前温度对应的十六进制值。(对应关系见表2-5)(6) 用手温摸测AD590的外壳,观察L1、L2灯的亮灭情况。
完成以上步骤后,我们发现L1黄灯亮。使用的实验数据是室温小于30℃,所以L1指示灯亮。 在实验过程中,我发现了一个问题,那褪俏颐遣⒉荒芸刂莆露鹊纳仙拖陆担赡苁茿D590的芯片传感器我们还在实验箱上没找到,应该还需要其他硬件设备,但由于条件缺乏,不能实现。原本设计的思路是用手温来使AD590温度传感器的温度上升,超过30℃能看到另一种现象,就是黄灯L1灭、绿灯L2亮。由于程序编制,我们将单点温度控制点为30ºC,若以后室温上升,能看到第二种情况。
温度控制(六)小结 在为期两个星期的微型计算机课程设计中,我们小组做的是温度控制设计。在这个学期中,我们学习了微型计算机这门课程。讲述了微型计算机的实现技术,对微机技术做了详细介绍,并对微机技术的新发展做适当的介绍和分析。 我们本次课程设计的主题是做温度控制实验。具体是先使用芯片AD590温度传感器来获得温度值,再通过芯片ADC0809进行A/D转换,将温度的模拟量转换为数字量,最后将其通过并行接口8255A在发光二极管以及八段数码管显示出来。课程设计刚开始,我对此不是很了解,没有什么设计概念。老师告诉我们先应该将实验中需要使用到的芯片弄懂,了解各个芯片的功能、运作以及他们之间是怎么相连的。这个建议非常有用,于是我们去图书馆借阅了相关书籍,里面详细介绍了各个芯片的概况、作用、功能、内部结构,引脚图等。并且有些书上也部分介绍了两块芯片之间的相连接情况,对我们的设计有了些提示性的作用,让我们初步了解了设计的方向。 因为我们做的是硬件设计,所以在第一个星期星期三的时候,老师带我们去了技术中心12楼的硬件设备实验室,并让我们初次使用了DJ88K实验箱,然后按照老师发下来的硬件实验接线表中提示的连好各个接口。第一次使用硬件设备让我们初步了解下硬件的设计的概念。后来星期五的时候,老师让我们下课后可以去硬件实验室进行调试。将各接线连接好了之后,老师给我们详细示范了各个实验的操作过程。通过PC机上的DJ8086k微机原理与接口技术软件来连接硬件实验箱,要将DJ88K实验箱与计算机的串行数据口连接,再接上电源,便可调试。调试过程比较简单,通过软件以及实验箱上的小键盘输入地址,完成后可看到实验结果。 通过本次微型计算机的课程设计,使我掌握了一些芯片的使用方法、硬件连线等。课程设计能帮助我们除了掌握课本上的理论知识外,更能帮助我们提高我们的动手实践能力。我们学习定位于技术型本科,所以我们也应该加强我们的实际应用能力。对于微型计算机这门课程,平时上理论课也能会有些抽象、难以理解。所以课程通过实践让我们有了更深一步的理解。 在这两个星期中,我为能够准时完成任务而感到高兴。虽然过程中付出了相当的努力,找资料,动手实践,写报告。但看到自己的成果,我无比欣慰。这是值得的。(七)参考资料1. 孙德文 《微型计算机技术》 高等教育出版社 2005年2.孙德文等 《微型机软硬件实用技术》 国防工业出版社 1994年3.潘新民等 《微型计算机控制技术》 电子工业出版社 2004年4.田艾平等 《IBM PC微机原理及接口技术》 煤炭工业出版社1995年lwfree.cn5.周明德等 《微型计算机系统原理及应用》 清华大学出版社 1998年6.顾元刚等 《汇编语言与微机原理教程》 电子工业出版社 2000年7.罗万均等 《汇编语言程序设计》 西安电子科技大学出版社1998年8. 卜艳萍等 《汇编语言程序设计教程》 清华大学出版社 2004年