1、微机原理及应用课程设计课题: 模拟空调控制系统的设计 班 级 电气3081 作者姓名: 罗旭东 学号 电气3081 指导教师: 段卫平 淮阴工学院电子与电气工程学院目录(一)设计目的与要求;1(二)设计方案1(三)硬件设计7(四)软件设计7(五)调试过程8(六)小结11(七)参考资料1112(一)设计目的与要求;1实验题目:模拟空调实验。2实验目的:微机原理及应用是一项重要的实践性教育环节,是学生在小校期间必须接受的一项工程训练。在课程设计过程中,在教师指导下,运用工程的方法,通过一个简单课题的设计练习,可使学生初步体验微机应用系统的设计过程、设计要求、完成的工作内容和具体的设计方法,了解必须
2、提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。 通过课程设计,应能加强学生如下能力的培养:(1) 独立工作能力和创造力;(2) 综合运用专业及基础知识,解决实际工程技术问题的能力;(3) 查阅图书资料,产品手册和各种工具书的能力;(4) 工程绘图的能力;(5) 编写技术报告和编制技术资料的能力;3. 设计要求(1)独立完成设计任务(2)绘制系统硬件总框图(3)绘制系统原理电路图(4)绘制系统工程设计图(机箱、控制面板、线路板图、元件布局图、装配连线图等)(5)编制软件框图(6)完成详细完整的程序清单和注释(7)制定编写调试方案(8)编写用户操作使用说明书(9)写出设
3、计工作小结。对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定参考计算,元器件选择,原理分析等作出说明,并对完成的设计作出评价,对自己整个设计工作中经验教训,总结收获和今后研修方向。(二)设计方案设计思路:设定单点温度控制点为30,当小于30时,L1指示灯亮,模拟电热器加热,当大于30时L1灭,L2亮,模拟关掉电热器。在设计过程中会用到很多芯片,为了能够更加熟练的将各个部件连接,确保调试的成功,其中必不可少的工作就是了解各个芯片的作用,画出逻辑结构模型。集成温度传感器:集成温度传感器实质上是一种半导体集成电路,它是利用晶体管的b-e结压降的不饱和值VBE与热力学温度T和通过发射
4、极电流I的下述关系实现对温度的检测: 式中,K波尔兹常数; q电子电荷绝对值。 集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便等优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0时输出为0,温度25时输出2.982V。电流输出型的灵敏度一般为1mA/K。下图为感温部分的核心电路:电源EST1T2I1I2T3输出RLT48UBE1+RI AD590芯片:AD590的简介:AD590是美国模拟器件公司生产的单片集成两端感温电流源。它是电流输出型温度传感器,工作电压430V,检测温度范围-55+150,它有非常好的线性
5、,灵敏度为1a/k .AD590传感器输出信号通过10K电阻取出的电压信号,经零点调整,小信号放大后,输出的电压信号VT,供ADC0809采用。AD590的主要特性如下: 1、 流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即: mA/K 2、 式中: 流过器件(AD590)的电流,单位为mA; 3、 T热力学温度,单位为K。 4、 AD590的测温范围为-55+150。 5、 AD590的电源电压范围为4V30V。电源电压可在4V6V范围变化,电流 变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。 6、 输出电阻
6、为710MW。 7、 精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55+150范围内,非线性误差为0.3。 为何把AD590信号放大,再进行模数转换?模拟信号输入的话,差分可不放大,共模模拟信号太小的话,会淹没在背景噪音中,所以必须放大而且放大后精度也会提高很多不过现在ADC的内部都自带可编程增益放大器(PGA)的,所以不用前置放大。总而言之,AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合。由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。AD590 的内部电路 AD59
7、0 的外形电路图 集成温度传感器电路符号ADC0809芯片:ADC0809是CMOS8位A/D转换器,采用逐次逼近式进行A/D转换。芯片内有一个8路模拟开关、一个比较器、一个带有树状模拟开关的256R分压器和一个逐次逼近的寄存器。内部逻辑图ADC0809有8路模拟量输入通道。ALE为地址锁存信号,高电平有效时,ADDCADDA被锁存,从而可以 通过对ADDC、ADDB、ADDA3端输入的地址译码,选通8路模拟量输入(IN0IN7)的任意一路进入片内,进行A/D转换。引脚结构IN0IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;
8、输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如下表所示。CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7数字量输出及控制线:11条 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期
9、间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, VREF(),VREF()为参考电压输入。8255A芯片:8255A的基本特性:(1) 8255A是一个具有两个8位(A和B口)和两个4位(C口高低四位),最多可达24位的并行输入输出端口的接口芯片,它为Intel系列C
10、PU与外部设备之间提供TTL电平兼容的接口,如打印机、AD、DA转换器、键盘、步进电机以及需要同时两位以上信息传送的一切形式的并行接口。并且它的PC口还具有按位置位复位功能,为PC口作为联络信号时的按位控制提供了强有力的支持。(2) 8255A能适应CPU与IO接口之间的多种数据传送方式的要求。如无条件传送,应答方式(查询)传送,中断方式传送,与此相应,8255A设置了方式0、方式1以及方式2(双向传送)。(3) 8255A可执行功能很强,内容丰富的两条命令(方式字和控制字)为用户如何根据外界条件(IO设备需要哪些信号线以及它能提供哪些状态线)来使用8255A构成多种接口电路,为组建微机应用系
11、统提供了灵活方便的编程环境。它不仅作为并行接口用于Intel公司的CPU 系列,还可用于其他几乎所有CPU以及单片机。是一种名付其实的通用并行接口芯片。8255A执行命令过程中和执行命令完毕之后,所产生的状态,保留在状态字中,以供查询。(4) 8255A PC口的使用比较特殊,除作数据口外,当工作在1方式和2方式时,它的部分信号线被分配作专用联络信号;PC 口可以进行按位控制;在CPU取8255A状态时,PC口又作1,2方式的状态口用等等。这是使用8255的难点所在,学习时要特别予以注意。(5) 8255A芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成,因此,以后的编程主要也是对这三类寄
12、存器进行访问。8255A内部结构框图端口A: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入锁存器,可作为数据输入或输出端口, 并工作于三种方式中的任何一种。 端口B: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入缓冲器,可作为数据输入或输出端口, 但不能工作于方式2。端口C: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入缓冲器, 可在方式字控制下分为两个4位的端口(C端口上和下),每个4位端口都有4位的锁存器, 用来配合端口A与端口B锁存输出控制信号和输入状态信号,不能工作于方式1或2。A组和B组控制的作用如下:A组控制逻辑控制端口A及端口C的上
13、半部;B组控制逻辑控制端口B及端口C的下半部。8255A的引脚功能:8255A 采用40条引脚的双列直插式(DIP,Dual in-line package)封装,其引脚信号有:CS:片选信号(输入)选该信号低电平有效,由系统地址总线经 I / O 地址译码器产生。CPU通过发高位端口地址信号使它变成低电平时,才能对8255A进行读写操作。RD:读信号(输入),该信号低电平有效CPU通过 执行IN指令,发读信号将数据或状态信号从8255A读至CPU。WR:写信号(输入),该信号低电平有效, CPU通过执行OUT指令,发写信号,将命令代码或数据写入8255A。A1、A0:片内寄存器选择信号(输入
14、),芯片内部端口地址信号线,与系统地址 总线低位相连。该信号用来寻址8255A内部寄存器。两位 地址,可形成片内四个端口地址。D7D0:与CPU侧连接的数据线(双向),双向数据线。CPU通过它向8255A发 送命令、数据;8255A通过它向CPU回送状态、数据。PA7PA0:A口外设数据线(双向)PB7PB0:B口外设数据线(双向)PC7PC0:C口外设数据线(双向)RESET:复位信号(输入),复位信号线,该信号高电平有效。它清除控制寄存器并将8255A的A、B、C三个端口均置为输入方式;输出寄存器和状态寄存器被复位,并且屏蔽中断请求;24条面向外设的信号线呈现高阻悬浮状态。这种势态一直维持
15、,直到用方式命令才能改变,使其进入用户所需的工作方式。下图为8255A的引脚图:1 402 393 384 375 366 357 348 339 3210 8255A-5 3111 3012 2913 2814 2715 2616 2517 2418 2319 2220 21PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB3(三)硬件设计CS4FF80H,JX6JX17,8MHZT,IN0VT,PA0L1,PA1L2。(四)软
16、件设计开始采样当前温度显示当前温度AD59XX(H)当前温度4DH(30)电热器加热L1亮关闭电热器加热L2亮Y源程序代码: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=0FF2BHP2AEQU 0FF28H ;定义P2A=0FF28HP2B
17、EQU 0FF29H ;定义P2B=0FF29HP2CEQU 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 ;调转转移到BU
18、F1 MOV DX,P2CTL ;将P2CTL的内容送到DX MOV AL,80H ;AL=80H OUT DX,AL ;把AL的内容从DX端口输出ADCON: MOV AX,00 ;AX=00 MOV DX,ADPORT ;将ADPORT的内容送到DX OUT DX,AL MOV CX,0500H ;CX=0500H;DELAY: LOOP DELAY ;循环跳转 MOV DX,ADPORT IN AL,DX ;将DX端口的内容输入到AL中 PUSH AX ;弹出AX cmp al,4dh ;做比较,与运算 jnc ct1 ;若不相等,转到ct1 MOV AL,0FEH ;AL=0FEHCO
19、N: 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做与运
20、算 MOV CL,04H ;CL=04H SHR AL,CL ;AL循环右移04H MOV BX+4,AL ;BX+4= AL RETDISP: MOV AL,0FFH ;00HMOV DX,PAOUT DX,ALMOV CL,0DFH ;20H ;显示子程序 ,5msMOV BX,OFFSET BUFDIS1: MOV AL,BX MOV AH,00HPUSH BXMOV BX,OFFSET DATA1 ;将DATA1的内容送到BX ADD BX,AX ;BX= BX+ AX MOV AL,BX ;将BX寄存器的内容送到ALPOP BXMOV DX,PB ;将PB的内容送到DXOUT DX,
21、AL ;把AL的内容从DX端口输出MOV AL,CL ;AL= CLMOV DX,PA ;将PA的内容送到DXOUT DX,ALPUSH CX ;CX出栈DIS2:MOV CX,00A0H ;CX=00A0H LOOP $ ;循环跳转 POP CX ;CX压栈CMP CL,0FEH ;01H ;CL与0FEH比较JZ LX1 ;相等INC BX ;BX自增1ROR CL,1 ;SHR CL,1 ;循环右移1位 ;逻辑右移JMP DIS1 ;直接跳转到DIS1LX1: MOV AL,0FFH ;AL=0FFHMOV DX,PB ;DX= PBOUT DX,AL ;把AL的内容从DX端口输出RET
22、 ;返回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.连接硬件接口,CS4FF80H,JX6JX17,8MHZT,IN0VT,PA0L1,PA1L2。2.打开电源,并在PC机上打开DJ8086k微机原理与接口技术软件。 3.打开源程序,调试编译程序
23、(编译成功提示读取RAM成功)装载程序(将程序通过通讯口下载到实验箱中) 4.在P态下,按SCAL键,输入2C20,按EXEC键,显示“AD59XX”,“XX”为当前温度对应的十六进制值。(对应关系见表格)。AD590温度与有关参数一览表温度AD590 电流经10k电压零点调整后电压放大5倍后电压VTADC数字量02732A2732V0.0V0V00H102832A2832V0.1V0.5V1AH202932A2932V0.2V1V33H303032A3032V0.3V1.5V4DH403132A3132V0.4V2V66H503232A3232V0.5V2.5V80H603332A3332V
24、0.6V3V99H703432A3432V0.7V3.5VB3H803532A3532V0.8V4VCCH903632A3632V0.9V4.5VE6H1003732A3732V1.0V5VFFH 5.完成以上步骤后,我们发现L1黄灯亮。使用的实验数据是室温小于30,所以L1指示灯亮。(按照实际情况显示)。出现的问题:不能自由控制温度高低解决方案:暂时无法解决(由于实验条件的限制,暂时无法自由的控制温度高低调控)实验结果:L1灯亮,表示当时的室温为低于30 。(六)小结为期两周的实训即将接近尾声,在这短暂的时光里,我看到了很多,了解了很多,学会了很多。在第一周,老师布置了实验题目,分好了实验小
25、组,并且简单的讲解了一下实验的要求,以及实验任务与目的。其主要内容是:利用实验箱与PC机相连接,在室温下,通过观察L1,L2灯的明暗变化,来判断当前情况下的室温高低,即:当室温大于30摄氏度时,L2灯亮;当室温小于30摄氏度时,L1灯亮。主要目的是:了解集成温度传感器AD590的工作原理和应用,熟悉小信号放大器的工作原理和零点、增益的调整方法。了解微机对温度采样控制的基本方法。在清楚了该做什么,需要做什么之后,老师带我们熟悉了硬件部分的实验箱,并且按照要求进行连线。通过一周的努力,我们合力编写出了程序,并且在最后进行实践,成功的调试出了程序。名义上,我们小组负责的是一个关于温度控制的硬件实验,
26、但实际上它的要求非常高,不仅需要自己编写程序,反复推敲,更需要将各硬件之间正确连接,从PC中下载程序到实验箱,观察实际出现的状况,发现问题,解决问题。在实验过程中,我们碰到了一个明显的问题,在实验过程中,我们无法依靠自己的意志,自由的控制温度的高低变化,这是有很大局限性的,因为实验条件的限制,我们无法去自由的调控,虽然如此,但是其基本功能还是可以满足的。通过这次实验,我学会了各个可编程接口芯片的应用,内部逻辑结构,引脚功能的概述和运用方法,并且运用AD590,ADC0809,8255A这三个芯片,连接成一个简单的温度控制电路,来完成实验。从中,我懂得了微型计算机的奥妙,小小的芯片,通过不同的组合便能得到不同的功用,虽然我们的微型计算机课程已经结束了,但是在以后的日子里,我会继续深造,研究好微型计算机技术,并在以后的日子里不枉我学过一场,将它发扬光大。(七)参考资料1谭浩强。C程序设计(第三版)。北京:清华大学出版社,2005 2谭浩强。C程序设计题解与上机指导(第三版)。北京:清华大学出版社,20053 Herbert Schildt。C语言大全(第四版)。北京:电子工业出版社, 20044Samuel P.Harbison ,Guy L.SteeleC语言参考手册(第5版)。北京:机械工业出版社,20035程序设计语言课程设计指导。12