基于8086的多路温度测控系统---微机原理课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于8086微处理器的温度测控系统设计摘要本文介绍了一种基于8086微处理器的温度测控系统,采用温度传感器AD590采集温度数据,用CPU控制温度值稳定在预设温度。当温度低于预设温度值时系统启动电加热器,当这个温度高于预设温度值时断开电加热器。第一章设计主要工作思路方案一:设计一种可控制的温度加热系统,实现温度的上升或下降。其中,温度的传感和放大部分通过AD590温度传感器集成芯片和运算放大器来实现温度的上升或下降,通过给加热系统通断电来实现。当需要加热时,8255的PC6输出高电平;当需要降温时,8255的PC6输出低电平,关闭加热系统,让加热器自然冷却而起到降温效果。加热或降温的控制信号通过8255的PA0读取拨动开关的状态来实现。系统流程图如图1-1所示:开始显示提示信息采集A/D值求其平均值读开关状态PA0=1升温8255PC6口=1降温8255PC6口=0NY图1-1分析和讨论:该方案达到了温度的上升或下降控制,但温度上升到多少或下降到多少都得由人来控制,为了让微机来自动控制,引入了方案二。方案二:设计一种温度控制方法将温度控制在某一设定值。其硬件与方案一差不多,只是它的加热控制信号是直接通过软件来控制,而不是通过PA0拨动开关来实现。在该实验利用PC机键盘输入设定温度值。当系统采集的温度值低于设定值时,开通加热系统,反之,当温度高于设定值时,关闭加热系统。仍然利用8255的PC6口控制加热系统。其流程图如图1-2所示:转换为BCD码并显示字符读开关状态有键按下否返回DOC返回NY开始显示提示信息设置温度设置温度大于实际温度加热显示温度有键按下?停止加热NYNY图1-2分析和讨论:该系统实现了将温度控制到一设定值,并保持稳定,但温度值只能设定一次。当在控制过程中,如果有时想将温度再调高点就办不到了,为此引入了第三方案。方案三:设计一种温度控制方法将温度控制到某一设定值,并保持稳定。同时还可以根据实际需要重新设置温度并进行重新控制调节,使温度达到一新的设定值,并保持稳定。这里的重新设置和控制可以进行无限多次,当然这个设置值得在某一最大值范围之内,这里把最大值设为76℃。当设置温度大于76℃时,系统就会报错并退出系统。其流程图见第五章图5-1。经过对以上三方案得分析、比较,我觉得方案三比较完善些,于是我采用方案三作为本场次设计的总体方案。第二章温度控制系统的总体概况1.1温度控制系统的总体结构温度信息由温度传感器测量并转换成微安级的电流信号,经过运算放大电路将温度传感器输出的小信号进行跟随放大,输入到A/D转换器(ADC0809)转换成数字信号输入主机。数据经过标度转换后,一方面通过数码管将温度显示出来;另一方面,将该温度值与设定的温度值进行比较,调整电加热炉的开通情况,从而控制温度。在断开电加热器,温度仍返回DOC然异常,报警器发出声音报警,提示采取相应的调整措施。其温度控制系统的原理框图如图1-1所示。图1-1系统原理框图1.2系统硬件选择和设计1、系统扩展接口的选择本次设计采用的是8086微处理器,选择8255A可编程并行接口作为系统的扩展接口,8255A的通用性强,适应灵活,通过它CPU可直接与外设相连接。2、温度传感器与A\D转换器的选择本系统选用温度传感器AD590构成测温系统。AD590是一种电压输入、电流输出型集成温度传感器,测温范围为-55℃~150℃,非线性误差在±0。30℃,其输出电流与温度成正比,温度没升高1K(K为开尔文温度),输出电流就增加1uA。其输出电流I=(273+T)uA。本设计中串联电阻的阻值选用2KΩ,所以输出电压V+=(2730+10T)MV.另外,为满足系统输入模拟量进行处理的功能,对其再扩展一片ADC0809,以进行模拟—数字量转化。3、显示接口芯片为满足本次设计温度显示的需要,我们选择了8279芯片,INTEL8279芯片是一种通用的可编程的键盘、显示接口器件,单个芯片就能完成键盘键入和LED显示控制两种功能。备注:系统硬件接线应尽量以插接形式连接,这样便于多用途使用和故障的检查和排除。电压跟随器运算放大电路温度传感器A\D转换器微处理器加热控制电路报警译码显示第三章系统主要元件功能与原理介绍3.18086微处理器及其体系结构3.1.18086微处理器的一般性能特点(1)16位的内部结构,16位双向数据信号线;(2)20位地址信号线,可寻址1M字节存储单元;(3)较强的指令系统;(4)利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口;(5)中断功能强,可处理内部软件中断和外部中断,中断源可达256个;(6)单一的+5V电源,单相时钟5MHz。另外,Intel公司同期推出的Intel8088微处理器一种准16位微处理器,其内部寄存器,内部操作等均按16位处理器设计,与Intel8088微处理器基本上相同,不同的是其对外的数据线只有8位,目的是为了方便地与8位I/O接口芯片相兼容。3.1.28086CPU的编程结构编程结构:是指从程序员和使用者的角度看到的结构,亦可称为功能结构。从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。8086CPU的内部功能结构如图3-1所示:图3-18086/8088CPU内部功能结构图1、执行部件(EU)功能:负责指令的执行。组成:包括①ALU(算术逻辑单元)、②通用寄存器组和③标志寄存器等,主要进行8位及16位的各种运算。2、总线接口部件(BIU)功能:负责与存储器及I/O接口之间的数据传送操作。具体来看,完成取指令送指令队列,配合执行部件的动作,从内存单元或I/O端口取操作数,或者将操作结果送内存单元或者I/O端口。组成:它由①段寄存器(DS、CS、ES、SS)、②16位指令指针寄存器IP(指向下一条要取出的指令代码)、③20位地址加法器(用来产生20位地址)和④6字节(8088为4字节)指令队列缓冲器组成。3、8086BIU的特点①8086的指令队列分别为6/4个字节,在执行指令的同时,可从内存中取出后续的指令代码,放在指令队列中,可以提高CPU的工作效率。②地址加法器用来产生20位物理地址。8086可用20位地址寻址1M字节的内存空间,而CPU内部的寄存器都是16位,因此需要由一个附加的机构来计算出20位的物理地址,这个机构就是20位的地址加法器。例如:CS=0FE00H,IP=0400H,则表示要取指令代码的物理地址为0FE400H。4、BIU与EU的动作协调原则总线接口部件(BIU)和执行部件(EU)按以下流水线技术原则协调工作,共同完成所要求的信息处理任务:①每当8086的指令队列中有两个空字节,或BIU就会自动把指令取到指令队列中。其取指的顺序是按指令在程序中出现的前后顺序。②每当EU准备执行一条指令时,它会从BIU部件的指令队列前部取出指令的代码,然后用几个时钟周期去执行指令。在执行指令的过程中,如果必须访问存储器或者I/O端口,那么EU就会请求BIU,进入总线周期,完成访问内存或者I/O端口的操作;如果此时BIU正好处于空闲状态,会立即响应EU的总线请求。如BIU正将某个指令字节取到指令队列中,则BIU将首先完成这个取指令的总线周期,然后再去响应EU发出的访问总线的请求。③当指令队列已满,且EU又没有总线访问请求时,BIU便进入空闲状态。④在执行转移指令、调用指令和返回指令时,由于待执行指令的顺序发生了变化,则指令队列中已经装入的字节被自动消除,BIU会接着往指令队列装入转向的另一程序段中的指令代码。从上述BIU与EU的动作管理原则中,不难看出,它们两者的工作是不同步的,正是这种既相互独立又相互配合的关系,使得8086可以在执行指令的同时,进行取指令代码的操作,也就是说BIU与EU是一种并行工作方式,改变了以往计算机取指令→译码→执行指令的串行工作方式,大大提高了工作效率,这正是8086获得成功的原因之一。5、8086CPU内部寄存器8086内部的寄存器可以分为通用寄存器和专用寄存器两大类,专用寄存器包括指针寄存器、变址寄存器等。(1)通用寄存器8086有4个16位的通用寄存器(AX、BX、CX、DX),可以存放16位的操作数,也可分为8个8位的寄存器(AL、AH;BL、BH;CL、CH;DL、DH)来使用。其中AX称为累加器,BX称为基址寄存器,CX称为计数寄存器,DX称为数据寄存器,这些寄存器在具体使用上有一定的差别,如表2-1所示。(2)指针寄存器系统中有两个16位的指针寄存器SP和BP,其中SP是堆栈指针寄存器,由它和堆栈段寄存器SS一起来确定堆栈在内存中的位置;BP是基数指针寄存器,通常用于存放基地址。(3)变址寄存器系统中有两个16位的变址寄存器SI和DI,其中SI是源变址寄存器,DI是目的变址寄存器,都用于指令的变址寻址方式。(4)控制寄存器IP标志寄存器是系统中的两个16位控制寄存器,其中IP是指令指针寄存器,用来控制CPU的指令执行顺序,它和代码段寄存器CS一起可以确定当前所要取的指令的内存地址。顺序执行程序时,CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节;当IP单独改变时,会发生段内的程序转移;当CS和IP同时改变时,会产生段间的程序转移。标志寄存器的内容被称为处理器状态字PSW,用来存放8086CPU在工作过程中的状态(5)段寄存器系统中共有4个16位段寄存器,即代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES。这些段寄存器的内容与有效的地址偏移量一起,可确定内存的物理地址。通常CS划定并控制程序区,DS和ES控制数据区,SS控制堆栈区。(6)处理器状态字PSW8086内部标志寄存器的内容,又称为处理器状态字PSW。其中共有9个标志位,可分成两类:一类为状态标志,一类为控制标志。其中状态标志表示前一步操作(如加、减等)执行以后,ALU所处的状态,后续操作可以根据这些状态标志进行判断,实现转移;控制标志则可以通过指令人为设置,用以对某一种特定的功能起控制作用(如中断屏蔽等),反映了人们对微机系统工作方式的可控制性。PSW中各标志位的安排如图3-2所示:图3-2标志寄存器这些标志位的含义如下:①状态标志:6个A、CF—进位标志位,做加法时最高位出现进位或做减法时最高位出现借位,该位置1,反之为0。B、PF—奇偶标志位,当运算结果的低8位中l的个数为偶数时,则该位置1,反之为0。C、AF—半进位标志位,做字节加法时,当低四位有向高四位的进位,或在做减法时,低四位有向高四位的借位时,该标志位就置1。通常用于对BCD算术运算结果的调整。(例:11011000+10101110=110000110其中AF=1,CF=1)D、ZF—零标志位,运算结果为0时,该标志位置1,否则清0。E、SF—符号标志位,当运算结果的最高位为1,该标志位置1,否则清0。即与运算结果的最高位相同。F、OF—溢出标志位,当OF=1,表示带符号数在进行算术运算时产生了算术溢出;OF=0则无溢出。3.1.3存储器组织1、存储容量8086有20根地址总线,因此,它可以直接寻址的存储器单元数为220=1Mbyte2、物理地址8086可直接寻址1Mbyte的存储空间,其地址区域为00000H—FFFFFH,与存储单元一一对应的20位地址,我们称之为存储单元的物理地址。3、存储器的分段及段地址由于CPU内部的寄存器都是16位的,为了能够提供20位的物理地址,系统中采用了存储器分段的方法。规定存储器的一个段为64KB,由段寄存器来确定存储单元的段地址,由指令提供该单元相对于相应段起始地址的16位偏移量。这样,系统的整个存储空间可分为16个互不重叠的逻辑段,如图3-3所示。存储器的每个段的容量为64KB,并允许在整个存储空间内浮动,即段与段之间可以部分重叠、完全重叠、连续排列,非常灵活,如图3-4所示。图3-3存储空间段结构图3-4分段逻辑结构4、偏移地址偏移地址是某存储单元相对其所在段起始

1 / 41
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功