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

上传人:b****8 文档编号:9720237 上传时间:2023-02-06 格式:DOCX 页数:41 大小:647.67KB
下载 相关 举报
基于8086的多路温度测控系统微机原理课程设计.docx_第1页
第1页 / 共41页
基于8086的多路温度测控系统微机原理课程设计.docx_第2页
第2页 / 共41页
基于8086的多路温度测控系统微机原理课程设计.docx_第3页
第3页 / 共41页
基于8086的多路温度测控系统微机原理课程设计.docx_第4页
第4页 / 共41页
基于8086的多路温度测控系统微机原理课程设计.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

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

《基于8086的多路温度测控系统微机原理课程设计.docx》由会员分享,可在线阅读,更多相关《基于8086的多路温度测控系统微机原理课程设计.docx(41页珍藏版)》请在冰豆网上搜索。

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

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

基于8086微处理器的温度测控系统设计

 

摘要

本文介绍了一种基于8086微处理器的温度测控系统,采用温度传感器AD590采集温度数据,用CPU控制温度值稳定在预设温度。

当温度低于预设温度值时系统启动电加热器,当这个温度高于预设温度值时断开电加热器。

   

第一章设计主要工作思路

方案一:

设计一种可控制的温度加热系统,实现温度的上升或下降。

其中,温度的传感和放大部分通过AD590温度传感器集成芯片和运算放大器来实现温度的上升或下降,通过给加热系统通断电来实现。

当需要加热时,8255的PC6输出高电平;当需要降温时,8255的PC6输出低电平,关闭加热系统,让加热器自然冷却而起到降温效果。

加热或降温的控制信号通过8255的PA0读取拨动开关的状态来实现。

系统流程图如图1-1所示:

 

图1-1

分析和讨论:

该方案达到了温度的上升或下降控制,但温度上升到多少或下降到多少都得由人来控制,为了让微机来自动控制,引入了方案二。

方案二:

设计一种温度控制方法将温度控制在某一设定值。

其硬件与方案一差不多,只是它的加热控制信号是直接通过软件来控制,而不是通过PA0拨动开关来实现。

在该实验利用PC机键盘输入设定温度值。

当系统采集的温度值低于设定值时,开通加热系统,反之,当温度高于设定值时,关闭加热系统。

仍然利用8255的PC6口控制加热系统。

其流程图如图1-2所示:

设置温度大于实际温度

加热

停止加热

N

Y

 

图1-2

分析和讨论:

该系统实现了将温度控制到一设定值,并保持稳定,但温度值只能设定一次。

当在控制过程中,如果有时想将温度再调高点就办不到了,为此引入了第三方案。

方案三:

设计一种温度控制方法将温度控制到某一设定值,并保持稳定。

同时还可以根据实际需要重新设置温度并进行重新控制调节,使温度达到一新的设定值,并保持稳定。

这里的重新设置和控制可以进行无限多次,当然这个设置值得在某一最大值范围之内,这里把最大值设为76℃。

当设置温度大于76℃时,系统就会报错并退出系统。

其流程图见第五章图5-1。

经过对以上三方案得分析、比较,我觉得方案三比较完善些,于是我采用方案三作为本场次设计的总体方案。

 

第二章温度控制系统的总体概况

1.1温度控制系统的总体结构

温度信息由温度传感器测量并转换成微安级的电流信号,经过运算放大电路将温度传感器输出的小信号进行跟随放大,输入到A/D转换器(ADC0809)转换成数字信号输入主机。

数据经过标度转换后,一方面通过数码管将温度显示出来;另一方面,将该温度值与设定的温度值进行比较,调整电加热炉的开通情况,从而控制温度。

在断开电加热器,温度仍然异常,报警器发出声音报警,提示采取相应的调整措施。

其温度控制系统的原理框图如图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显示控制两种功能。

备注:

系统硬件接线应尽量以插接形式连接,这样便于多用途使用和故障的检查和排除。

第三章系统主要元件功能与原理介绍

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=1Mbyte

2、物理地址

8086可直接寻址1Mbyte的存储空间,其地址区域为00000H—FFFFFH,与存储单元一一对应的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.48086CPU的引脚信号和功能

8086CPU芯片是双列直插式集成电路芯片,都有40个引脚,其中32个引脚在两种工作模式下的名称和功能是相同的,还有8个引脚在不同的工作模式下,具有不同的名称和功能。

下面,我们分别来介绍这些引脚的输入/输出信号及其功能。

VCC、GND:

电源、接地引脚(3),8088/8086CPU采用单一的+5V电源,但有两个接地引脚。

AD15—AD0(AddressDataBus):

地址/数据复用信号输入/输出引脚(16),分时输出低16位地址信号及进行数据信号的输入/输出。

A19/s6—A15/s3(AddressStatusBus):

地址/状态复用信号输出引脚(4),分时输出地址的高4位及状态信息,其中s6为0用以指示8086/8088CPU当前与总线连通;s5为1表明8086/8088CPU可以响应可屏蔽中断;s4、s3共有四个组态,用以指明当前使用的段寄存器,00—ES,01—SS,10—CS,11—DS。

(4)NMI(Non-MaskableInterrupt)、INTR(InterruptRequest):

中断请求信号输入引脚

(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/MaximumModelControl):

最小/最大模式设置信号输入引脚

(1),该输入引脚电平的高、低决定了CPU工作在最小模式还是最大模式,当该引脚接+5V时,CPU工作于最小模式下,当该引脚接地时,CPU工作于最大模式下。

(11)

/S7(BusHighEnable/Status):

高8位数据允许/状态复用信号输出引脚

(1),输出。

分时输出

有效信号,表示高8为数据线D15—D8上的数据有效和S7状态信号,但S7未定义任何实际意义。

4.28255A并行I\O接口

 一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口。

  具有24个可编程设置的I/O口,即使3组8位的I/O口为PA口,PB口和PC口。

它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3)。

A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定。

4.2.18255引脚功能

  RESET:

复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。

  CS:

芯片选择信号线,当这个输入引脚为低电平时,即

=0时,表示芯片被选中,允许8255与CPU进行通讯;

=1时,8255无法与CPU做数据传输。

  RD:

读信号线,当这个输入引脚为低电平时,即

=0且

=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

  WR:

写入信号,当这个输入引脚为低电平时,即

=0且

=0时,允许CPU将数据或控制字写入8255。

  D0~D7:

三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

  PA0~PA7:

端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。

  PB0~PB7:

端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

  PC0~PC7:

端口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.3A组和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条数据线D7~D0与系统数据总线连接,构成CPU与8255A之间信息传送的通道,CPU通过执行输出指令向8255A写入控制命令或往外设传送数据,通过执行输入指令读取外设输入的数据。

读/写控制逻辑电路用来接收CPU系统总线的读信号

,写信号

,片选择信号

,端口选择信号A1,A0和复位信号RESET,用于控制8255A内部寄存器的读/写操作和复位操作。

 

(2)内部控制逻辑电路

内部控制逻辑包括A组控制与B组控制两部分。

 A组控制寄存器用来控制A口PA7~PA0和C口的高4位PC7~PC4;

 B组控制寄存器用来控制B口PB7~PB0和C口的低4位PC3~PC0。

 它们接收CPU发送来的控制命令,对A,B,C3个端口的输入/输出方式进行控制。

(3)输入/输出接口电路

 8255A片内有A,B,C3个8位并行端口,A口和B口分别有1个8位的数据输出锁存/缓冲器和1个8位数据输入锁存器,C口有1个8位数据输出锁存/缓冲器和1个8位数据输入缓冲器,用于存放CPU与外部设备交换的数据。

 对于8255A的3个数据端口和1个控制端口,数据端口既可以写入数据又可以读出数据,控制端口只能写入命令而不能读出,读/写控制信号(

)和端口选择信号(

A1和A0)的状态组合可以实现A,B,C3个端口和控制端口的读/写操作。

4.1.78255A的工作方式及编程

8255A有3种工作方式,它们分别是:

·方式0——基本输入/输出方式;

·方式1——选通输入/输出方式;

·方式2——双向传送方式。

  其中,方式0可称为同步或无条件的输入输出方式,可以不需要“联络”信号,所以A口、B口、C口均可工作在此方式。

在这种方式下,C口的高4位和低4位可由用户定义为输入/输出。

方式1又称异步或有条件传送(必须先检查状态,然后才能传送数据)。

此时,仅有A口和B口可工作在方式1,A口的状态信息由C口的PC7~PC3提供;B口的状态信息由C口的PC2~PC0提供。

所谓双向方式是指在同一端口内分时进行输入/输出的操作。

8255A中只有A口可工作在这种方式,当A口工作在方式2时,它需要5个控制信号进行“联络”,这5个信号由PC7~PC3提供。

此时B口可工作在方式0或方式1,由PC2~PC0作B口的控制信号。

4.1.78255A的控制字

    1、工作方式选择控制字

 8255A的工作方式可由CPU写一个工作方式选择控制字到8255A的控制寄存器来选择。

控制字的格式如图8.16所示,可以分别选择端口A、端口B和端口C上下两部分的工作方式。

端口A有方式0、方式

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1