基于8086的温度系统.docx
《基于8086的温度系统.docx》由会员分享,可在线阅读,更多相关《基于8086的温度系统.docx(33页珍藏版)》请在冰豆网上搜索。
目录
1引言 1
2设计方案与论证 1
3设计内容 2
3.1系统扩展接口的选择 2
3.2温度传感器与A\D转换器的选择 2
3.3显示接口芯片 3
3.4设计原理及功能说明 3
3.5系统软件设计 4
3.6单元电路的设计(计算与说明) 5
4.8086微处理器及其体系结构 8
4.18086微处理器的一般性能特点 8
4.2.8086CPU的编程结构 9
4.38255A并行I\O接口 9
4.4ADC0809概述 11
4.5ADC0809与8255的连接 13
4.6键盘/显示方式设置命令字 13
4.7LED显示器 14
5硬件的制作与调试 14
6结束语:
17
参考文献 19
附录1:
元器件清单:
20
附录2:
电路总图 20
附录3:
程序 20
1引言
为了实现计算机对生产过程及对象的控制,需要将对象的各种测量参数按照要求转换成数字信号送入计算机。
计算机运算处理后再转换成适合于对生产过程进行控制的量。
所以在微机和生产过程之间,须设置信息的变换和传递通道。
主要功能就是随时间变化的模拟输入信号变成数字信号送入计算机,主要由AD590温度传感器,8088CPU,8255A,A/D转换器和数码管显示器等组成。
本实验通过设计一个微机控制的温度控制系统旨在能做到以下几点:
1.了解微机控制的温度采集系统软硬件设计原理和方法。
2.进一步掌握并行接口芯片和模数转换的工作原理与使用方法。
以8088CPU为核心设计一个温度采集系统,系统可以实现一路温度的采集,在3位LED显示器上显示当前温度。
本设计所用器件主要有传感器,A/D转换器,8088CPU,可编程并行接口8255,显示器等。
首先传感器把所测的温度转换为电压,输入A/D转换器中进行转换,然后再把得到的二进制数经过CPU在数码管上显示出来。
本设计共分以下几个模块:
8088主控模块、A/D转换模块、并行接口模块、显示模块。
2设计方案与论证
采用铂电阻温度传感器的电阻与温度的关系是非线性的,用电桥实现温度升高引起的电阻变化对应于电压的变化。
经A/D转换器后,送入锁存器锁存,在经译码器输出后,再在数码管上显示,由于74LS373具有锁存功能就能实现四位的温度显示。
由于铂电阻与温度的关系是非线性的,因此输出的结果测试精度较低,并且不能达到我们对温度控制的要求。
电桥测温电路
放大电路
A/D转换电路
锁存器74LS373
译码器7448
LED数码显示
图2-1设计方案
3设计内容
3.1系统扩展接口的选择
本次设计采用的是8086微处理器,选择8255A可编程并行接口作为系统的扩展接口,8255A的通用性强,适应灵活,通过它CPU可直接与外设相连接。
3.2温度传感器与A\D转换器的选择
本系统选用温度传感器AD590构成测温系统。
AD590是一种电压输入、电流输出型集成温度传感器,测温范围为-55℃~150℃,非线性误差在±0。
30℃,其输出电流与温度成正比,温度每升高1K(K为开尔文温度),输出电流就增加1uA。
其输出电流I=(273+T)uA。
本设计中串联电阻的阻值选用2KΩ,所以输出电压V+=(2730+10T)MV.另外,为满足系统输入模拟量进行处理的功能,对其再扩展一片ADC0809,以进行模拟—数字量转化。
3.3显示接口芯片
为满足本次设计温度显示的需要,我们选择了8279芯片,INTEL8279芯片是一种通用的可编程的键盘、显示接口器件,单个芯片就能完成键盘键入和数码管显示控制两种功能。
3.4设计原理及功能说明
本系统采用的是8086微处理器,选择8255A可编程并行接口作为系统的扩展接口,8255A的通用性强,适应灵活,通过它CPU可直接与外设相连接。
对温度进行检测,然后通过A/D转换器(ADC0809)转换成数字信号输入主机。
使用Intel8279可编程序的键盘、显示接口功能,完成键盘输入和显示控制两种功能。
针对各模块的硬件功能,对各模块设定子程序,通过主程序对这些子程序模块的调用,完成软件设计。
(1)温度测量显示部分
温度通过AD590温度传感集成芯片,将温度变化量转换成电压值变化量,经过OP07一级跟随后输入到电压放大电路,放大后的信号输入到A/D转换器将模拟信号转换成数字信号,然后将该数字信号通过然间编程转化为十进制BCD码,并送到8279进行温度值的显示。
图3-1主程序流程图
3.5系统软件设计
本设计的目的是以8086微处理器为控制器,将温度传感器输出的小信号经过放大和低通滤波后,送至A/D转换器;微控制器实时采集、显示温度值(要求以摄氏度显示),同时系统还应可设定、控制温度值,使系统工作在设定温度。
通过开始界面,显示提示信息,调用温度子程序,设置温度。
通过模数转换器采集A\D值并求其平均值。
调用BCD码转换子程序将其转换为十进制温度值;调用显示子程序,如果温度高于实际温度,就加热,反之拨动开关关闭,停止加热。
在此过程中,还可以重复设置温度值。
(1)BCD码转换子程序
设定温度为0摄氏度时变换放大电路送出的模拟量为0.0V,此时A/D输出的数字量为00H;温度为68℃时变换器送出对应电压4.98V,此时A/D输出的数字量为FFH,即每0.3℃对应1LSB的变化量,对应电压值为19.5mV。
报警温度设定为68℃,此时,输出电压约为5.0V左右。
(2)温度值设置子程序
为了避免加热温度过高,在程序设计中加了一条,即设定值不能大于68℃,否则就认为有错系统报警。
3.6单元电路的设计(计算与说明)
(1)温度检测系统
温度信息由温度传感器测量并转换成微安级的电流信号,经过运算放大电路将温度传感器输出的小信号进行跟随放大,输入到A/D转换器(ADC0809)转换成数字信号输入主机。
数据经过标度转换后,一方面通过数码管将温度显示出来;另一方面,将该温度值与设定的温度值进行比较,调整电加热炉的开通情况,从而控制温度。
在断开电加热器,温度仍然异常,报警器发出声音报警,提示采取相应的调整措施。
(2)温度测量部分
A\D590是AD公司生产的一种精度和线度较好的双端集成传感器,其输出电流与绝对温度有关,对于电源电压从5-10V变化只引起1uA最大电流的变化或1摄氏度等效误差。
图4-1给出了用于获得正比于绝对温度的输出电流的基本温度敏感电路。
A\D590输出的电流I=(273+T)uA(T为摄氏温度)。
因此测量的电压V为(273+T)uA×10K=(2.73+T/100)V,为了将电压测量出来,又务必使电流I不分流出来。
使用电压跟随器使其输出电压V2等于V。
由于一般电源供应多器件之后,电源是带杂波的,因此使用稳压二极管作为稳压元件,再利用可变电阻分压,其输出电压V1需调至2.73V。
差动放大器其输出V0为(100K/10K)×(V2-V1)=T/10,如果现在为摄氏28℃,输出电压为2.8V。
输出电压接A\D转换器,那么A\D转换输出的数字量就和摄氏温度成线性比例的关系。
图3-2输出电流的基本温度敏感电路
图3-3ADC0809与8255的连接
模拟输入通道地址A,B,C直接接地,因此ADC0809只对通道IN0输入的电压进行模数转换。
为了减少输入噪声其他通道直接接地。
ADC0809的数据线D0-D7与8255的PB0-PB7相连接。
其片选CS与8086的地址/数据总线AD14相连接。
图3-48086的可编程外设接口电路
8255的数据口D0-D7与CPU的6根控制线相连接,控制8255A内部的各种操作。
控制线RESET用来使8255A复位。
CS和地址线A1及A0用于芯片选择和通道寻址。
分别与8086的高位地址线A19,A1,A0相连接。
数据显示部分中我们采用功能强大的可编程设置型显示器8279来对控制温度和实际温度进行显示。
我们用8段数码管显示。
8279显示功能介绍:
8279内部有16X8的显示RAM,通过显示寄存器和两个四位端口0UTA0-3,0UTBO-3来刷新显示,显示器可以是8段数码管,
图3-5电路工作原理:
AD转换器将转换结果由十六进制转换为十进制后分别存储在54H,55H,56H,57H,58H,59H.中。
8279连接一个74ls38译码器,经过译码再接6个8段数码管分别显示每个存储单元的内容
4.8086微处理器及其体系结构
4.18086微处理器的一般性能特点
(1)16位的内部结构,16位双向数据信号线;
(2)20位地址信号线,可寻址1M字节存储单元;
(3)较强的指令系统;
(4)利用第16位的地址总线来进行I/O端口寻址,可寻址64K个I/O端口;
(5)中断功能强,可处理内部软件中断和外部中断,中断源可达256个;
(6)单一的+5V电源,单相时钟5MHz。
4.2.8086CPU的编程结构
图4-18086/8088CPU内部功能结构图
编程结构:
是指从程序员和使用者的角度看到的结构,亦可称为功能结构。
从功能上来看,8086CPU可分为两部分,即总线接口部件BIU(BusInterfaceUnit)和执行部件EU(ExecutionUnit)。
4.38255A并行I\O接口
8255A芯片内包含有3个8位的端口,它们是A口,B口和C口。
这3个端口均可作为CPU与外设通讯时的缓冲器或锁存器,当需要“状态”或“联络”信号时,C口可以提供,此时,将C口的高4位为A口所用,C口的低4位为B口所用。
3个端口通过各自的输入/输出线与外设联系。
并行输入/输出端口:
一个并行输入/输出的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两种模式,而这些操作模式完全由控制寄存器的控制字决定。
8255引脚功能:
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时