毕业设计(论文)-基于8086微处理器的温度测控系统设计.doc_第1页
毕业设计(论文)-基于8086微处理器的温度测控系统设计.doc_第2页
毕业设计(论文)-基于8086微处理器的温度测控系统设计.doc_第3页
毕业设计(论文)-基于8086微处理器的温度测控系统设计.doc_第4页
毕业设计(论文)-基于8086微处理器的温度测控系统设计.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

基于8086微处理器的温度测控系统设计摘要本文介绍了一种基于8086微处理器的温度测控系统,采用温度传感器AD590采集温度数据,用CPU控制温度值稳定在预设温度。当温度低于预设温度值时系统启动电加热器,当这个温度高于预设温度值时断开电加热器。系统操作简便、自动化程度高、扩展方便且具有良好的人机交互的能力。该系统通过实验,取得了较为满意的控制效果。可应用在一些精度要求不太高的系统中。为了降低整个系统的成本,在满足性能的要求下,选择低成本器件,简化系统设计。关键词:微处理器 温度传感器 A/D转换器 控制系统Design of Temperature Control based on a 8086 MicroprocessorABSTRACTThe paper introduces a temperature control system based on a 8086 microprocessor. The temperature sensor AD590 is adopted in this system to gather temperature data and uses CPU to control the temperature. When the temperature is lower than the appropriate temperature, this system turns on the heater. When this temperature is higher than the appropriate temperature, the heating system is turned off.This system has high automatic degree, good human-computer interaction and easy to extend, economy and practicality is good. The system was tested and the test result showed that this system could achieve quite good control performance . It is used in the system which is not need high accuracy. In order to reduce the cost of whole system , low cost devices are selected and the system structure is simplified in the design while performance requirement are met.Key words: Microcomputer Temperature AD converter control system前言 在能源日益紧张的今天,电热水器,饮水机,电饭煲之类的家用电器在保温时,由于其简单的温控系统,利用温敏电阻来实现温控,因而会造成很大的能源浪费浪费。近年来,温度控制系统不仅在工业设计、工程建设中应用广泛,而且在人们的日常生活中也常常需要用到温度控制。大到大型钢铁厂、化工厂等,小到酒店、温室、家电等。温度监控的应用随处可见,随着人们生活质量的提高及温度控制技术的成熟,温度控制将更好的服务于社会。随着电子技术的发展,特别是大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么微型计算机控制技术的出现则是给现代工业控制测控领域带来了一次新的革命。目前,微处理器8086在工业控制系统诸多领域得到了广泛的应用,由于它具有极好的稳定性,更快和更准确的运算精度。温度控制系统在现代工业设计、工程建设及日常生活中的应用越来越广泛,早期的温度控制主要应用于工厂中,例如钢铁的水溶温度控制,不同等级的钢铁要通过不同温度的铁水来实现,这样就可能有效的利用温度控制来掌握所需要的产品了。 目前,微机测控系统的发展非常迅速,应用也极为广泛,它由于体积小、功能强、性能稳定、价格低廉等优点,使其在工业控制系统诸多领域得到了极为广泛的应用。在此基础上发展起来的智能仪器无论是在测量的准确度、灵敏度、可靠性、自动化程度、应用功能等方面或在解决测试技术问题的深度及广度方面都有了巨大的发展,以一种崭新的面貌展现在人们的面前。随着大规模集成电路及计算机技术的迅速发展,以及人工智能在测试技术方面的广泛运用,智能仪器有了更大的发展。温度测试仪器的智能化已是现代仪器仪表发展的主流方向。第一章 设计主要工作思路方案一:设计一种可控制的温度加热系统,实现温度的上升或下降。其中,温度的传感和放大部分通过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 标志寄存器这些标志位的含义如下:状态标志:6个A、CF进位标志位,做加法时最高位出现进位或做减法时最高位出现借位,该位置1,反之为0。B、PF奇偶标志位,当运算结果的低8位中l的个数为偶数时,则该位置1,反之为0。C、AF半进位标志位,做字节加法时,当低四位有向高四位的进位,或在做减法时,低四位有向高四位的借位时,该标志位就置1。通常用于对BCD算术运算结果的调整。(例:1101 1000+1010 1110=1 1000 0110其中AF1,CF1)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的存储空间,其地址区域为00000HFFFFFH,与存储单元一一对应的20位地址,我们称之为存储单元的物理地址。3、存储器的分段及段地址由于CPU内部的寄存器都是16位的,为了能够提供20位的物理地址,系统中采用了存储器分段的方法。规定存储器的一个段为64KB,由段寄存器来确定存储单元的段地址,由指令提供该单元相对于相应段起始地址的16位偏移量。这样,系统的整个存储空间可分为16个互不重叠的逻辑段,如图3-3所示。存储器的每个段的容量为64KB,并允许在整个存储空间内浮动,即段与段之间可以部分重叠、完全重叠、连续排列,非常灵活,如图3-4所示。 图3-3 存储空间段结构 图3-4 分段逻辑结构4、 偏移地址偏移地址是某存储单元相对其所在段起始位置的偏移字节数,或简称偏移量。它是一个16位的地址,根据指令的不同,它可以来自于CPU中不同的16位寄存器(IP、SP、BP、SI、DI、BX等)。5、 物理地址的形成物理地址是由段地址与偏移地址共同决定的,段地址来自于段寄存器(CS、DS、ES、SS),是十六位地址,由段地址及偏移地址计算物理地址的表达式如下:物理地址=段地址16+偏移地址例如:系统启动后,指令的物理地址由CS的内容与IP的内容共同决定,由于系统启动的CS=0FFFFH,IP=0000H,所以初始指令的物理地址为0FFFF0H,我们可以在0FFFF0H单元开始的几个单元中,固化一条无条件转移指令的代码,即转移到系统初始化程序部分。6、 存储器分段组织带来存储器管理的新特点首先,在程序代码量、数据量不是太大的情况下,可使它们处于同一段内,即使它们在64Kbyte的范围内,这样可以减少指令的长度,提高指令运行的速度;其次,内存分段为程序的浮动分配创造了条件;第三,物理地址与形式地址并不是一一对应的,举例:6832H:1280H,物理地址为695A0H。第四,各个分段之间可以重叠。3.1.4 8086 CPU的引脚信号和功能8086CPU芯片是双列直插式集成电路芯片,都有40个引脚,其中32个引脚在两种工作模式下的名称和功能是相同的,还有8个引脚在不同的工作模式下,具有不同的名称和功能。下面,我们分别来介绍这些引脚的输入/输出信号及其功能。VCC、GND:电源、接地引脚(3),8088/8086CPU采用单一的+5V电源,但有两个接地引脚。AD15AD0(Address Data Bus):地址/数据复用信号输入/输出引脚(16),分时输出 低16位地址信号及进行数据信号的输入/输出。A19/s6A15/s3(Address Status Bus):地址/状态复用信号输出引脚(4),分时输出地址的高4位及状态信息,其中s6为0用以指示8086/8088CPU当前与总线连通;s5为1表明8086/8088CPU可以响应可屏蔽中断;s4、s3共有四个组态,用以指明当前使用的段寄存器,00ES,01SS,10CS,11DS。(4)NMI(Non-Maskable Interrupt)、INTR(Interrupt Request):中断请求信号输入引脚(2),引入中断源向CPU提出的中断请求信号,高电平有效,前者为非屏蔽中断请求,后者为可屏蔽中断请求信号。(5) (Read):读控制输出信号引脚(1),低电平有效,用以指明要执行一个对内存单元或I/O端口的读操作,具体是读内存单元,还是读I/O端口,取决于控制信号。(6) CLK/(Clock):时钟信号输入引脚(1),时钟信号的方波信号,占空比约为33%,即1/3周期为高电平,2/3周期为底电平,8088/8088的时钟频率(又称为主频)为4。77MHz,即从该引脚输入的时钟信号的频率为4。77MHz。(7)Reset(Reset):复位信号输入引脚(1),高电平有效。8088/8086CPU要求复位信号至少维持4个时钟周期才能起到复位的效果,复位信号输入之后,CPU结束当前操作,并对处理器的标志寄存器、IP、DS、SS、ES寄存器及指令队列进行清零操作,而将CS设置为0FFFFH。(8) READY(Ready):“准备好”状态信号输入引脚(1),高电平有效,“Ready”输入引脚接收来自于内存单元或I/O端口向CPU发来的“准备好”状态信号,表明内存单元或I/O端口已经准备好进行读写操作。该信号是协调CPU与内存单元或I/O端口之间进行信息传送的联络信号。(9) (Test):测试信号输入引脚(1),低电平有效,TEST信号与WAIT指令结合起来使用,CPU执行WAIT指令后,处于等待状态,当TEST引脚输入低电平时,系统脱离等待状态,继续执行被暂停执行的指令。(10)MN/MX(Minimum/Maximum Model Control):最小/最大模式设置信号输入引脚(1),该输入引脚电平的高、低决定了CPU工作在最小模式还是最大模式,当该引脚接+5V时,CPU工作于最小模式下,当该引脚接地时,CPU工作于最大模式下。(11)/S7(Bus High Enable/Status):高8位数据允许/状态复用信号输出引脚(1),输出。分时输出有效信号,表示高8为数据线D15D8上的数据有效和S7 状态信号,但S7未定义任何实际意义。4.2 8255A并行IO接口 一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口。它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4PC7),B组包括B口及C口(低4位,PC0PC3)。A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。 4.2.1 8255引脚功能RESET:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:芯片选择信号线,当这个输入引脚为低电平时,即=0时,表示芯片被选中,允许8255与CPU进行通讯;=1时,8255无法与CPU做数据传输。 RD:读信号线,当这个输入引脚为低电平时,即=0且=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,即=0且=0时,允许CPU将数据或控制字写入8255。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。A0、A1:地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器。当A0=0,A1=0时,PA口被选择;当A0=0,A1=1时,PB口被选择;当A0=1,A1=0时,PC口被选择;当A0=1。A1=1时,控制寄存器被选择。4.1.2 并行输入/输出端口8255A芯片内包含有3个8位的端口,它们是A口,B口和C口。这3个端口均可作为CPU与外设通讯时的缓冲器或锁存器,当需要“状态”或“联络”信号时,C口可以提供,此时,将C口的高4位为A口所用,C口的低4位为B口所用。3个端口通过各自的输入/输出线与外设联系。4.1.3 A组和B组控制8255A内部的3个端口分为两组。A组由A口和C口高4位组成,B组由B口和C口低4位组成。A组和B组分别有自己的控制部件,可接收来自读/写控制电路的命令和CPU送来的控制字,并根据它们来定义各个端口的操作方式。4.1.5 数据总线缓冲器这是一个双向三态的8位数据缓冲器,它是8255A和CPU之间的数据接口。CPU执行输出指令时,可将控制字或数据通过该缓冲器传送给8255A。CPU执行输入指令时,8255A可将状态信息或数据通过它传送给CPU。因此,数据总线缓冲器是CPU与8255A交换信息的必经之路。4.1.6 读/写控制电路8255A的读/写控制电路能接收CPU的控制命令,并根据命令向片内各功能部件发出操作命令。例如当CS信号为低电平时,表示8255A芯片被选中,该片选信号则由CPU的地址线通过译码产生,RD,WR信号控制8255A中数据或信息的传送方向。端口选择控制则由A1和A0的组合状态提供,由这两个控制信号可提供4个端口地址,即A,B,C三个端口地址及一个控制端口地址。8255A可用RESET控制信号复位,当该控制信号有效时,清除8255A中所有控制寄存器内容,并将各端口置成输入方式。与CPU的接口电路由数据总线缓冲器和读/写控制逻辑组成。数据总线缓冲器是一个三态、双向、8位寄存器,8条数据线D7D0与系统数据总线连接,构成CPU与8255A之间信息传送的通道,CPU通过执行输出指令向8255A写入控制命令或往外设传送数据,通过执行输入指令读取外设输入的数据。读/写控制逻辑电路用来接收CPU系统总线的读信号,写信号,片选择信号,端口选择信号A1,A0和复位信号RESET,用于控制8255A内部寄存器的读/写操作和复位操作。(2)内部控制逻辑电路内部控制逻辑包括A组控制与B组控制两部分。A组控制寄存器用来控制A口PA7PA0和C口的高4位PC7PC4;B组控制寄存器用来控制B口PB7PB0和C口的低4位PC3PC0。它们接收CPU发送来的控制命令,对A, B, C 3个端口的输入/输出方式进行控制。(3)输入/输出接口电路 8255A片内有A, B, C 3个8位并行端口,A口和B口分别有1个8位的数据输出锁存/缓冲器和1个8位数据输入锁存器,C口有1个8位数据输出锁存/缓冲器和1个8位数据输入缓冲器,用于存放CPU与外部设备交换的数据。对于8255A的3个数据端口和1个控制端口,数据端口既可以写入数据又可以读出数据,控制端口只能写入命令而不能读出,读/写控制信号(, )和端口选择信号(, A1和A0)的状态组合可以实现A, B, C 3个端口和控制端口的读/写操作。4.1.7 8255A的工作方式及编程 8255A有3种工作方式,它们分别是: 方式0基本输入/输出方式; 方式1选通输入/输出方式; 方式2双向传送方式。其中,方式0可称为同步或无条件的输入输出方式,可以不需要“联络”信号,所以A口、B口、C口均可工作在此方式。在这种方式下,C口的高4位和低4位可由用户定义为输入/输出。方式1又称异步或有条件传送(必须先检查状态,然后才能传送数据)。此时,仅有A口和B口可工作在方式1,A口的状态信息由C口的PC7PC3提供;B口的状态信息由C口的PC2PC0提供。所谓双向方式是指在同一端口内分时进行输入/输出的操作。8255A中只有A口可工作在这种方式,当A口工作在方式2时,它需要5个控制信号进行“联络”,这5个信号由PC7PC3提供。此时B口可工作在方式0或方式1,由PC2PC0作B口的控制信号。4.1.7 8255A的控制字 1、工作方式选择控制字 8255A的工作方式可由CPU写一个工作方式选择控制字到8255A的控制寄存器来选择。控制字的格式如图8.16所示,可以分别选择端口A、端口B和端口C上下两部分的工作方式。端口A有方式0、方式1和方式2共三种工作方式,端口B只能工作于方式0和方式1,而端口C仅工作于方式0。 注意:在端口A工作于方式1或方式2,端口B工作于方式1时,C口部分I/O线被定义为8255A与外设之间进行数据传送的联络信号线,此时,C口剩下的I/O线仍工作于方式0,是输入还是输出则由工作方式控制字的D0和D3位决定,如图8.16所示。 2、C口按位置位/复位控制字 8255A的C口具有位控功能,即端口C的8位中的任一位都可通过CPU向8255A的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他位的状态不变。3.3 ADC0809概述ADC0809是采样分辨率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。3.3.1 ADC0809的主要特性1)8路输入通道,8位AD转换器,即分辨率为8位。 2)具有转换起停控制端。 3)转换时间为100s4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。3.3.2 内部结构(1)ADC0809的内部逻辑结构 由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。图 3-53.3.3 外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图1323所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。2-12-8: 8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 3.3.4 ADC0809的工作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。3.4 8279键盘、显示接口电路Intel8279是一种通用的可编程序的键盘、显示接口器件,单片器件就能够完成键盘输入和显示控制两种功能。键盘部分提供一种扫描的工作方式,可以和具有64个按键的矩阵键盘相连接,能对键盘不断扫描,自动消抖,自动识别按下的键并给出编码,能对双键或n键同时按下实行保护。显示部分为发光二极管、荧光管及其它显示器提供了按扫描方式工作的显示接口,它为显示器提供多路复用信号,可以显示多达16位的字符或数字。INTEL 8279的逻辑符号如图7-28所示。它用于8085、MCS-51系统。它最多可外接8X8的键盘及16X8的七段数码显示器。图3-6 8279的逻辑符号3.4.1 8279管脚、引线及功能说明8279为40列引脚封装,如图7.9.1所示。详细说明如下: D0D7(数据总线):双向、三态总线。用于和系统数据总线相连,在CPU和8279之间传递命令或数据。CLK(系统时钟):输入线。用于8279内部定时,以产生其工作所需时序。RESET(复位):输入线,高电平有效。当复位信号RESET=1时,8279被复位。 (片选):输入线,低电平有效。当 =0时,8279被选中,允许CPU对其进行读、写操作,否则被禁止。A0(缓冲器地址):输入线。当A0=1时,若CPU进行写操作,则写入字节是命令字。若进行读操作,则从8279读出的字节是状态字。当A0=0时,写入字节或读出字节均为数据。、(读、写信号):输入线,低电平有效。这两个来自CPU的控制信号,控制8279的读写操作。IRQ(中断请求):输出线,高电平有效。在键盘工作方式中,当FIFO/传感器RAM中存有数据时,IRQ为高电平,向CPU提出中断申请。CPU每次从RAM中读出一个字节数据时,IRQ就变成低电平。如果RAM中还有未读完的数据,IRQ将再次变为高电平,再次提出中断申请求。在传感器工作方式中,每当检测到传感器状态变化时,IRQ就出现高电平。SL0SL3(扫描线):输出线。这四条输出线用来扫描键盘和显示器。它们可以编程设定为编码输出(16中取1)或译码输出(4中取1)。RL0RL7(回复线):输入线。它们是键盘矩阵或传感器矩阵的列信号输入线。SHIFT(移位信号):输入线,高电平有效。该输入信号是8279键盘数据的次高位D6,通常用来补充键盘开关的功能,可以用作键盘上下挡功能键。在传感器方式和选通方式中,SHIFT无效。CNTL/STB(控制/选通):输入线,高电平有效。在键盘方式时,该输入信号是键盘数据的最高位D7,通常用来扩充键开关的控制功能,作为控制功能键用。在传感器方式下,CNTL信号无效。在选通输入方式下,该信号的上升沿可将来自RL0RL7的数据存放入FIFO RAM中。OUTA0OUTA3 (A组显示信号):输出线。OUTB0OUTB3 (B组显示信号):输出线。这两组引线均是显示信息输出线,它们与多路数字显示的扫描线SL0SL3同步。两组可以独立使用,也可以合并使用。(消隐显示):输出线,低电平有效。该输出信号在数字切换显示或使用显示消隐命令时,将显示消隐。3.4.2 命令格式与命令字8279的操作方式是通过CPU对8279送入命令时来实现编程的。当数据选择端A0置1时,CPU对8279写入数据为命令字,读出的数据为状态字。8279共有八条命令。其功能及命令字定义分述如下。1、键盘/显示方式设置命令字命令格式:D7 D6 D5 D4 D3 D2 D1 D0000DDKKK其中:D7、D6、D5=000方式设置命令特征位。D D(D4、D3):来设定显示方式,其定义如下:00:8个字符显示,左入口00:16个字符显示,左入口00:8个字符显示,右入口00:16个字符显示,右入口 所谓左入口,即显示位置从最左一位(最高位)开始,以后逐次输入的显示字符逐个向右顺序排列; 所谓右入口,即显示位置从最右一位(最低位)开始,以后逐次输入的显示字符时,已有的显示字符逐个向左顺序移动。 KKK(D2、 D1、 D0):用来设定七种键盘、显示工作方式2、读显示RAM命令命令格式:D7 D6 D5 D4 D3 D2 D1 D0011AIAAAA其中:D7D6D5 =011为读显示RAM命令字的特征位。该命令用来设定将要读出的显示RAM地址。AAAA(D3、D2、D1、D0)用来寻址显示RAM命令字的特征位。由位显示RAM中有16个字节单元故需要4位寻址。AI(D4)为自动增量特征位。当AI=1时,每次读出后地址自动加1指向下一地址。5写显示RAM命令命令格式:D7 D6 D5 D4 D3 D2 D1 D0100AIAAAA其中:D7D6D5 =100为写显示RAM命令字的特征位。在写显示器RAM之前用该命令用来设定将要写入的显示RAM地址。 AAAA(D3、D2、D1、D0)为将要写入的存储单元地址。AI(D4)为自动增量特征位。当AI=1时,每次写入后地址自动加1指向下一次写入地址。3.4.3 LED显示器工作原理发光二极管组成的显示器事单片机应用产品中最常用的廉价输出设备。它由若干个发光二极管按一定的规律排列而成。当某一个发光二极管导通时,相应的一个点或一个比划被点亮,控制不同组合的二极管导通,就能显示出多种字符。常见LED数码管的外形及内部结构如图3-7-1所示。 图3-7-2属于共阳极结构,图3-7-3采用共阴极结构。 图 3-7-1 图3-7-2 图3-7-3图 3-7通过控制管脚a、b、c、d、e、f、g、dp的电平即可获得所需的符号显示。显示器的工作方式有两种,一种是静态显示:当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。另一种事本次设计中采用的动态显示方式:所谓动态显示即一位一位轮流的点亮各位显示器,对于每一位显示器来说,每隔一段时间点亮一次。但由于时间间隔很小,我们就可以看到完整的显示了。第四章 系统各部分功能模块介绍4.1 温度测量和控制部分4.1.1 温度测量部分AD590是AD公司生产的一种精度和线度较好的双端集成传感器,其输出电流与绝对温度有关,对于电源电压从5-10V变化只引起1uA最大电流的变化或1摄氏度等效误差。图4-1给出了用于获得正比于绝对温度的输出电流的基本温度敏感电路。AD590输出的电流I=(273+T)uA(T为摄氏温度)。因此测量的电压V为(273+T)uA10K=(2.73+T/100)V,为了将电压测量出来,又务必使电流I不分流出来。使用电压跟随器使其输出电压V2等于V 。由于一般电源供应多器件之后,电源是带杂波的,因此使用稳压二极管作为稳压元件,再利用可变电阻分压,其输出电压V1需调至2.73V。差动放大器其输出V0 为(100K/10K)(V2-V1)=T/10,如果现在为摄氏28,输出电压为2.8V。输出电压接AD转换器,那么AD转换输出的数字量就和摄氏温度成线性比例的关系。图 4-14.1.2 温度控制部分当PC6为高电平时,三极管导通,继电器吸合,向加热系统输出12V电压加热;反之,输入低电平,三极管截止,继电器断开,停止加热。在图4-中,二极管的作用是吸收继电器端开时产生的浪涌电压。图 4-24. 2 ADC0809与8255的连接模拟输入通道地址A,B,C直接接地,因此ADC0809只对通道IN0输入的电压进行模数转换。为了减少输入噪声其他通道直接接地。ADC0809的数据线D0-D7与8255的PB0-PB7相连接。其片选CS与8086的地址/数据总线AD14相连接。图 4-34.3 8086的可编程外设接口电路8255的数据口D0-D7与CPU的6根控制线相连接,控制8255A内部的各种操作。控制线RESET用来使8255A复位。CS和地址线A1及A0用于芯片选择和通道寻址。分别与8086的高位地址线A19,A1,A0相连接。图 4-44.4 数据显示部分 图 4-54.5 系统硬件原理图图 4-6第五章 系统工作原理及软件设计一、系统工作原理(1) 温度测量显示部分温度通过AD590温度传感集成芯片,将温度变化量转换成电压值变化量,经过OP07一级跟随后输入到电压放大电路,放大后的信号输入到A/D转换器将模拟信号转换成数字信号,然后将该数字信号通过然间编程转化为十进制BCD码,并送到8279进行温度值的显示。(2) 温度控制部分 温度的上升或下降,通过给加热系统通断电来实现。当需要加热时,8255的PC6输出低电平,启动加热系统。当需要降温时,8255的PC6输出高电平,关闭加热系统。加热或降温的控制信号通过8255的PA0读取拨动开关的状态来实现。二、系统软件设计本设计的目的是以8086微处理器为控制器,将温度传感器输出的小信号经过放大和低通滤波后,送至A/D转换器;微控制器实时采集、显示温度值(要求以摄氏度显示),同时系统还应可设定、控制温度值,使系统工作在设定温度。三、系统流程图1、主程序通过开始界面,显示提示信息,调用温度子程序,设置温度。通过模数转换器采集AD值并求其平均值。调用BCD码转换子程序将其转换为十进制温度值;调用显示子程序,如果温度高于实际温度,就加热,反之拨动开关关闭,停止加热。在此过程中

温馨提示

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

评论

0/150

提交评论