资源预览内容
第1页 / 共56页
第2页 / 共56页
第3页 / 共56页
第4页 / 共56页
第5页 / 共56页
第6页 / 共56页
第7页 / 共56页
第8页 / 共56页
第9页 / 共56页
第10页 / 共56页
亲,该文档总共56页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。基于8086微处理器的温度测控系统设计摘要本文介绍了一种基于8086微处理器的温度测控系统, 采用温度传感器AD590采集温度数据, 用CPU控制温度值稳定在预设温度。当温度低于预设温度值时系统启动电加热器, 当这个温度高于预设温度值时断开电加热器。 第一章 设计主要工作思路方案一: 设计一种可控制的温度加热系统, 实现温度的上升或下降。其中, 温度的传感和放大部分经过AD590温度传感器集成芯片和运算放大器来实现温度的上升或下降, 经过给加热系统通断电来实现。当需要加热时, 8255的PC6输出高电平; 当需要降温时, 8255的PC6输出低电平, 关闭加热系统, 让加热器自然冷却而起到降温效果。加热或降温的控制信号经过8255的PA0读取拨动开关的状态来实现。系统流程图如图1-1所示: 读开关状态开始N降温8255 PC6口=0PA0=1显示提示信息 Y采集A/D值求其平均值升温8255 PC6口=1 返回转换为BCD码并显示字符读开关状态Y有键按下否N返回DOC图 1-1分析和讨论: 该方案达到了温度的上升或下降控制, 但温度上升到多少或下降到多少都得由人来控制, 为了让微机来自动控制, 引入了方案二。 方案二: 设计一种温度控制方法将温度控制在某一设定值。 其硬件与方案一差不多, 只是它的加热控制信号是直接经过软件来控制, 而不是经过PA0拨动开关来实现。在该实验利用PC机键盘输入设定温度值。当系统采集的温度值低于设定值时, 开通加热系统, 反之, 当温度高于设定值时, 关闭加热系统。依然利用8255的PC6口控制加热系统。其流程图如图1-2所示: 开始显示提示信息设置温度设置温度大于实际温度N停止加热Y加热显示温度有键按下? N Y返回DOC图 1-2分析和讨论: 该系统实现了将温度控制到一设定值, 并保持稳定, 但温度值只能设定一次。当在控制过程中, 如果有时想将温度再调高点就办不到了, 为此引入了第三方案。方案三: 设计一种温度控制方法将温度控制到某一设定值, 并保持稳定。同时还能够根据实际需要重新设置温度并进行重新控制调节, 使温度达到一新的设定值, 并保持稳定。这里的重新设置和控制能够进行无限多次, 当然这个设置值得在某一最大值范围之内, 这里把最大值设为76。当设置温度大于76时, 系统就会报错并退出系统。其流程图见第五章图 5-1。经过对以上三方案得分析、 比较, 我觉得方案三比较完善些, 于是我采用方案三作为本场次设计的总体方案。第二章 温度控制系统的总体概况1.1 温度控制系统的总体结构 温度信息由温度传感器测量并转换成微安级的电流信号, 经过运算放大电路将温度传感器输出的小信号进行跟随放大, 输入到A/D转换器( ADC0809) 转换成数字信号输入主机。数据经过标度转换后, 一方面经过数码管将温度显示出来; 另一方面, 将该温度值与设定的温度值进行比较, 调整电加热炉的开通情况, 从而控制温度。在断开电加热器, 温度依然异常, 报警器发出声音报警, 提示采取相应的调整措施。其温度控制系统的原理框图如图1-1所示。电压跟随器运算放大电路温度传感器AD转换器微处理器加热控制电路报警译码显示图 1-1 系统原理框图1.2 系统硬件选择和设计1、 系统扩展接口的选择 本次设计采用的是8086微处理器, 选择8255A可编程并行接口作为系统的扩展接口, 8255A的通用性强, 适应灵活, 经过它CPU可直接与外设相连接。2、 温度传感器与AD转换器的选择本系统选用温度传感器AD590构成测温系统。AD590是一种电压输入、 电流输出型集成温度传感器, 测温范围为-55150, 非线性误差在0。30, 其输出电流与温度成正比, 温度没升高1K( K为开尔文温度) , 输出电流就增加1uA。其输出电流I=(273+T)uA。本设计中串联电阻的阻值选用2K, 因此输出电压V+=(2730 + 10T)MV.另外, 为满足系统输入模拟量进行处理的功能, 对其再扩展一片ADC0809, 以进行模拟数字量转化。3、 显示接口芯片为满足本次设计温度显示的需要, 我们选择了8279芯片, INTEL8279芯片是一种通用的可编程的键盘、 显示接口器件, 单个芯片就能完成键盘键入和LED显示控制两种功能。备注: 系统硬件接线应尽量以插接形式连接, 这样便于多用途使用和故障的检查和排除。 第三章 系统主要元件功能与原理介绍3.1 8086微处理器及其体系结构3.1.1 8086微处理器的一般性能特点( 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.2 8086CPU的编程结构编程结构: 是指从程序员和使用者的角度看到的结构, 亦可称为功能结构。从功能上来看, 8086CPU可分为两部分, 即总线接口部件BIU( Bus Interface Unit) 和执行部件EU( Execution Unit) 。8086CPU的内部功能结构如图31所示:图3-1 8086/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、 8086 BIU的特点8086的指令队列分别为6/4个字节, 在执行指令的同时, 可从内存中取出后续的指令代码, 放在指令队列中, 能够提高CPU的工作效率。地址加法器用来产生20位物理地址。8086可用20位地址寻址1M字节的内存空间, 而CPU内部的寄存器都是16 位, 因此需要由一个附加的机构来计算出20位的物理地址, 这个机构就是20位的地址加法器。例如: CS0FE00H, IP0400H, 则表示要取指令代码的物理地址为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、 8086 CPU内部寄存器8086 内部的寄存器能够分为通用寄存器和专用寄存器两大类, 专用寄存器包括指针寄存器、 变址寄存器等。( 1) 通用寄存器 8086 有4个16位的通用寄存器( AX、 BX、 CX、 DX) , 能够存放16位的操作数, 也可分为8个8位的寄存器( AL、 AH; BL、 BH; CL、 CH; DL、 DH) 来使用。其中AX称为累加器, BX称为基址寄存器, CX称为计数寄存器, DX称为数据寄存器, 这些寄存器在具体使用上有一定的差别, 如表21所示。( 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, 用来存放8086 CPU在工作过程中的状态( 5) 段寄存器 系统中共有4个16位段寄存器, 即代码段寄存器CS、 数据段寄存器DS、 堆栈段寄存器SS和附加段寄存器ES。这些段寄存器的内容与有效的地址偏移量一起, 可确定内存的物理地址。一般CS划定并控制程序区, DS和ES控制数据区, SS控制堆栈区。(6) 处理器状态字PSW 8086 内部标志寄存器的内容, 又称为处理器状态字PSW。其中共有9个标志位, 可分成两类: 一类为状态标志, 一类为控制标志。其中状态标志表示前一步操作( 如加、 减等) 执行以后, ALU所处的状态, 后续操作能够根据这些状态标志进行判断, 实现转移; 控制标志则能够经过指令人为设置, 用以对某一种特定的功能起控制作用( 如中断屏蔽等) , 反映了人们对微机系统工作方式的可控制性。PSW中各标志位的安排如图32所示:图32 标
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号