温度采样系统报告中北大学.docx
- 文档编号:6760950
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:16
- 大小:420.38KB
温度采样系统报告中北大学.docx
《温度采样系统报告中北大学.docx》由会员分享,可在线阅读,更多相关《温度采样系统报告中北大学.docx(16页珍藏版)》请在冰豆网上搜索。
温度采样系统报告中北大学
前言
《微机原理与接口技术》是一门实践性和实用性都很强的课程,学习的目的在于应用。
本课程设计是配合课堂教学的一个重要的实践教学环节,它能起到巩固课堂和书本上的知识,加强综合能力,提高系统设计水平,启发创新思想的效果。
现在计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧跟实际连接。
掌握这方面的知识更重要强调解决实际问题的能力。
该课程设计给我们提供了一个很好的机会,它要求我们结合课堂上和书本中学到的知识去独立设计一个硬件系统,它是我们迈向实践和应用的桥梁,我们学习书本上的知识是一个不断积累的过程,而该课程设计却使得我们能够尽情发挥他们,让我们更了解计算机的结构,工作原理以及软硬件的结合使用,虽然课程设计的时间比较短,但它却在整个教学计划中占据了及其重要的位置。
通过本课程设计希望达到以下目地:
1.培养资料搜集和汇总的能力。
2.培养总体设计和方案论证的意识。
3.提高硬件,软件设计与开发的综合能力。
4.提高软件和硬件联合调试的能力。
5.熟练掌握相关测量仪器的使用方法。
6.握相关开发软件,仿真软件的使用方法。
【摘要】本文主要以8088CPU为核心设计一个温度采集系统,系统可以实现一路温度的采集,在3位LED显示器上显示当前温度。
本设计所用器件主要有传感器,A/D转换器,8088CPU,可编程并行接口8255,LED显示器等。
首先传感器把所测的温度转换为电压,输入A/D转换器中进行转换,然后再把得到的二进制数经过CPU在LED上显示出来。
【关键字】传感器、8088、8255、ADC0809
姓名
负责模块
A/D转换模块
8088主控模块
并行接口模块
显示模块
一设计任务
1设计目的
为了实现计算机对生产过程及对象的控制,需要将对象的各种测量参数按照要求转换成数字信号送入计算机。
经计算机运算处理后再再转换成适合于对生产过程进行控制的量。
所以在危机和生产过程之间,必须设置信息的变换和传递通道。
而我们所做的模拟输入通道,主要功能就是随时间变化的模拟输入信号变成数字信号送入计算机,主要有多路转换器,采样保持器和A/D转换器等组成。
本实验通过设计一个微机控制的温度采集系统,旨在使学生能做到以下几点:
1.了解微机控制的温度采集系统软硬件设计原理和方法。
2.进一步掌握定时/计数器、并行接口芯片和中断控制器的工作原理与使用方法。
3.进一步加深对中断机理的认识。
2实验设备
1.80X86系列微机一台。
2.微机硬件实验平台。
3.定时/计数器、并行接口芯片。
4.ADC0809。
5.8255并口控制器,8259中断控制器。
3实验内容及要求
以8088CPU为核心设计一个温度采集系统,系统可以实现一路温度的采集,在3位LED显示器上显示当前温度。
本设计所用器件主要有传感器,A/D转换器,8088CPU,可编程并行接口8255,LED显示器等。
首先传感器把所测的温度转换为电压,输入A/D转换器中进行转换,然后再把得到的二进制数经过CPU在LED上显示出来。
本设计共分以下几个模块:
8088主控模块、A/D转换模块、并行接口模块、显示模块。
二设计方案
1设计思想
在许多传统行业中,多路高温度采集系统是不可或缺的。
电厂,石化行业及制药厂等企业生产过程中,普遍存在着需要进行温度测量的场合。
因为温度是生产过程和科学实验中普遍且重要的物理参数。
在工业生产中,为了高效生产,必须对生产过程的主要参数,如温度,压力,速度等进行有效的检测并控制。
其中温度检测在生产过程中占有相当大的比例。
而我们所做的课题正是以8086CPU为核心设计一个温度巡回监测系统(A/D采用ADC0809).系统可实现温度信号的采集,在3位LED显示器上显示当前的温度和通道号。
模拟现场两个点的温度巡回检测,温度范围0-50摄氏度。
每隔两秒检测一次,经标度变换后送LED显示器显示,2路循环显示,每路持续两秒。
该系统主要用于温度检测,是一个状态反馈系统,并非动态控制系统。
他可以利用放大器实现多个点的温度巡回检测,并在LED上显示当前的温度值和通道号。
当温度信号改变时,LED显示的值也随之改变。
2系统框图
本电路设计框图如图1所示,主要包括四大部分:
温度信号检测及放大部分、数字控制部分、A/D转换器和数字显示部分。
温度经温度传感器及放大电路变换成与温度成线性关系的电压信号,然后经数字控制电路送到A/D转换器,通过数字显示器显示出测量的温度。
3硬件设计
系统的主要功能是实现温度信号的采集,在3位LED显示器上显示当前的温度和通道号。
模拟现场两个点的温度巡回检测,温度范围0-510摄氏度。
每隔两秒检测一次,经标度变换后送LED显示器显示,2路循环显示,每路持续两秒。
实验步骤如下:
(1)确认从PC机引出的两根扁平电缆已经连接在试验平台上。
(2)编写程序然后编译连接。
(3)参考图2-1所示连接试验线路。
(4)运行参考程序,观察LED显示器上的通道号和温度值。
正确的结果是:
档调节作为A/D模拟输入电压源的电位器W的旋钮在任意位置时,LED显示器上显示如下图(以旋钮旋至最右端即最大值为例)
1
384
2
510
图2.1
3.1芯片功能说明
所需芯片
可编程并行接口芯片8255,可编程定时器/计数器8253,中断控制器8259,传感器AD590,A/D转换器ADC0809
3.1.18088的功能简介
8088是一个Intel以8086为基础的微处理器,拥有16位元暂存器和8位元外部资料总线。
8088使用8位元的设计,所针对的是较为经济之系统。
在它推出时候,大的资料总线宽度电路板还是相当地昂贵。
8088的预取(prefetch)贮列(queue)是4字节,相对于8086的是6字节。
8088CPU内部用两个独立的功能部件组成,分别为BIU和EU。
BIU(BusInterfaceUnit)BIU由段寄存器、IP、指令队列、地址加法器和控制逻辑组成。
BIU的功能是负责从内存中取指令送入指令队列,实现CPU与存储器、I/O接口之间的数据传送。
EU(ExecutionUnit)EU由通用寄存器、F寄存器、ALU和EU控制部件组成。
EU的功能是分析指令和执行指令。
3.1.28255A的功能简介
8255A内部结构:
8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。
8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读/写控制逻辑;数据总路线缓冲器。
8255A主要的外部引脚,如图2.2所示:
图2.28255A引脚图
PA7~PA0:
A口的8条I/O线。
8条线只能同时作为输入或输出,不能分开使用,可设置成双向口,也只有A口允许这样做。
PB7~PB0:
B口的8条I/O线。
不可以设置成双向口,其它和A口一样。
PC7~PC0:
C口的8条I/O线。
不可以设置成双向口,但它可以分拆为两组即高4位和低4位,这两组可以任意设置为输入或输出。
除了作为独立的I/O线外,C口还经常为A口、B口服务,配合A口、B口作联络线使用。
A1、A0:
端口地址选择信号。
用于选择8255A的3个数据端口和一个控制口。
当A1A0=00时,选择端口A;为01时,选择端口B;为10,选择端口C;为11时,选择控制口。
8255A工作方式:
方式0:
基本的输入/输出方式。
A口、B口、C口都可以工作在些方式下。
方式1:
选通输入/输出方式(应答方式)。
A口、B口工作在此方式下。
方式2:
双向传输方式。
只有A口可以工作在此方式下。
8255A方式控制字格式如下表2.1所示:
表2.18255A方式控制字格式
D7
D6、D5
D4
D3
D2
D1
D0
1
A口
A口
C口高4位
B口
B口
C口低4位
00方式0
01方式1
1x方式2
0输出
1输入
0输出
1输入
0方式0
1方式1
0输出
1输入
0输出
1输入
3.1.38253的功能简介
8253的内部结构:
8253采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为2.6MHz。
它包括3个计数器(即计数器0、1、2)、数据总路线缓冲器、读/写逻辑以及控制寄存器等4个部分。
8253的外部引脚,如图2.3所示:
图2.38253引脚图
A1、A0:
地址输入线,用来址8253内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。
CLK0、CLK1、CLK2:
时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。
CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。
当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。
GATE0、GATE1、GATE3:
门控输入端,用于外部控制计数器的启动计数和停止计数的操作。
两个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。
OUT0、OUT1、OUT2:
计数输出,当计数器从初值开始完成计数操作进,OUT引脚输出相应的信号。
8253的工作方式:
方式0:
减1计数到0,产生中断请求信号。
方式1:
减1计数到0,产生可重复触发的单稳态负脉冲信号。
方式2:
减1计数到1,分频器(速率信号发生器)。
方式3:
减1计数到初值的1/2,方波发生器。
方式4:
减1计数到0,软件触发产生选通负脉冲信号。
方式5:
减1计数到0,硬件触发产生选通负脉冲信号。
8253方式控制字格式,如下表2.2所示:
表2.28253方式控制字格式
D7D6
D5D4
D3D2D1
D0
00选计数器0
01选计数器1
10选计数器2
00计数器锁存
01只读写低8位
10先读写高8位
11先读写低8位
再读写高8位
000方式0
001方式1
X10方式2
X11方式3
100方式4
101方式5
0二进制计数
1BCD计数
3.1.4AD590传感器
主要特性:
1、流过器件的电流(μA)等于器件所处环境的热力学温度(开尔文)度数:
Ir/T=1
(1)式中,Ir—流过器件(AD590)的电流,单位为μA;T—热力学温度,单位为K。
2、AD590的测温范围为-55℃~+150℃。
3、AD590的电源电压范围为4~30V,可以承受44V正向电压和20V反向电压,因而器件即使反接也不会被损坏。
4、输出电阻为710mΩ。
5、精度高,AD590在-55℃~+-150℃范围内,非线性误差仅为±0.3℃。
3.1.58259A的内部结构和引脚
8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。
单个的8259A能管理8级向量优先级中断。
在不增加其他电路的情况下,最多可以级联成64级的向量优级中断系统。
8259A有多种工作方式,能用于各种系统。
各种工作方式的设定是在初始化时通过软件进行的。
在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态.编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态8259A的内部结构如下图2.4所示,引脚如图2.5所示
图2.48259A内部结构
图2.58259A管脚图
三实验结果
1程序原理图(见附件1)
2程序流程图
(1)总流程图
2)数据采集系统流程图(3)温度显示子程序流程图
3汇编程序代码
DATASEGMENT
BUF1DB?
BUF2DB?
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
INIT_8255PROCNEAR;8255初始化
MOVDX,037BH
MOVAL,91H;A、B、C均为方式0,A入,B出,CH出,CL入
OUTDX,AL
RET
INIT_8255ENDP
START:
MOVAX,DATA
MOVDS,AX
LEASI,BUF1
CALLINIT_8255;调用初始化8255程序
MOVBL,0;LED不选通,其他置零
MOVCX,1;共采集1次
AGAIN:
MOVAL,BL
MOVDX,037AH;C口
OUTAX,AL;ALE、START置零
ORAL,10H
OUTDX,AL;送ALE信号(上升沿)
ANDAL,0EFH
OUTDX,AL;输出START信号(下降沿)
NOP;空操作等待转换
MOVDX,037AH
WAIT1:
INTAL,DX;读EOC状态
ANDAL,02H
JZWAIT1;若EOC为低电平则等待
MOVDX,037AH
MOVAL,BL
ORAL,20H
OUTDX,AL;EOC端为高电平则输出读允许信号OE=1
MOVDX,0378H
INAL,DX;读入转换结果
MOV[SI],AL;把转换的数字量送存储器
MOVDX,037AH
MOVAL,0
OUTDX,AL;若完成数据采集则回到初始状态
DECODE:
MOVAX,[SI]
MOVBL,5;数字量除以0FFH,乘以5V,得到电压值。
再乘以10,
;即转换为1V/℃,等效为数字量除以5
DIVBL;以下程序是把二进制转化为非压缩BCD码
LEASI,BUF2
MOVBL,AH;AH为余数,乘以2即为0.1℃级的非压缩BCD码
ADDBL,BL
MOV[SI],BL;0.1℃级
INCSI
MOVAH,0;AL扩展为AX,AL为十六进制除数
MOVBL,OAH;商转换为十进制
DIVBL
MOV[SI],AH;余数AH就是1℃级的非压缩BCD码
INCSI
MOV[SI],AL;商AL就是10℃级的非压缩BCD码
DISPPROCNEAR;这段是显示子程序
MOVAL,40H
MOVDX,037AH
OUTDX,AL;选通LED1
LEABX,LED;表的首地址
LEADI,BUF2
MOVAL,[DI];序号
XLAT;驱动LED的数据存入AL
MOVDX,0379H
OUTDX,AL;LED1亮,值为0.1℃级
CALLDELAY;调用延时子程序
MOVAL,80H
MOVDX,037AH
OUTDX,AL;选通LED2
INCDI
MOVAL,[DI]
XLAT
ADDAL,80H;带上小数点
MOVDX,0379H
OUTDX,AL;LED2亮,值为1℃级
CALLDELAY;调用延时子程序
MOVAL,0C0H
MOVDX,037AH
OUTDX,AL;选通LED3
INCDI
MOVAL,[DI]
XLAT
MOVDX,0379H
OUTDX,AL;LED3亮,值为10℃级
RET;过程返回
DISPENDP;过程结束
DELAYPROC;延时子程序
MOVCX,100
DELAY1:
LOOPDELAY1
RET
DELAYENDP
CODEENDS
ENDSTART
四系统调试与使用
本次实验前面时间主要用于熟悉实验操作平台,系统调试时间只花了短短的两天时间。
刚开始我是满怀信心的想把自己写好的程序一次运行成功,但结果却惨不忍睹,什么功能都没有,甚至连写在程序的最前面的那些芯片的初始化操作都没达到预期的效果,这对我的信心造成极大的冲击,我翻着书仔细的把程序重新读了一次,希望能发现出某个错误。
但就根据书本上教的,实在是无错可查。
我不得已把程序一块一块的肢解开来,从最基本的做起,看他们能否都实现,最后看能否连接起来运行。
首先,我把最前面的初始化留下来,把后面的主程序及中断服务子程序都删去,仍没有成功,我不得已,再把程序中的8253初始化和8255A的初始化分开调试,结果发现它们能够运行,并有相应的输出结果显示。
后来我们请教了学长,在他不停的调试过程中,让我们学到了很多,首先我们要对我们所做的课题要有一个整体的结构框图,那样思路才比较清晰,而且出现问题后,不应该无从下手或整体动手,而是应该一个环节一个环节的不停调试,找出问题所在,然后针对那一环节修改程序或者线路图。
在调试程序时要学会使用逐步调试,而不是整体的运行。
五实验心得与体会
通过本次实验掌握了微机系统的开发步骤,可编程并行接口接口芯8255A,可编程定时器/计数器8253,中断控制器8259,ADC0809和LED的用法,掌握了汇编,程序的设计。
本次设计需要熟练掌握汇编语言,熟悉可编程芯片8255A,ADC0809,8259A,可编程定时器/计数器8253的内部结构、外部引脚和功能,熟悉LED显示器的结构及译码方式。
ADC0809芯片输入选通地址码A,B,C分别接8255的PB7,PB6,PB5三个端口,当A,B,C为“111”时选通输入通道IN7,通过单次阶跃单元的电位器W可以给A/D变换器-5到5V的模拟电压;当A,B,C为“011”时选通输入通道IN6,通过单次阶跃单元的电位器W以及反相器和放大增益为0.5的放大器可以给A/D变换-2.5~2.5的模拟电压。
8253的通道2定时器用于10ms定时输出OUT2信号接A/D变换器的“1”口,同时该定时脉冲也作为中断控制器8259的中断请求信号,接IRQ7端口。
CPU响应8259的中断请求后,启动A/D转换器0809对单次阶跃单元电位器W引入的模拟电压进行变换(程序延时)。
8253接口的片选地址为40H,8255A口为输入方式,A/D转换的数据通过A口输入计算机,送到显示器上显示,8255接口的片选地址为60H,B口作为输出,地址为61H。
显示单元的LED的CLK,DIN,LOAD分别接8255口B的PB2,PB1,PB0,GND端和+5V端分别接实验板上的GND端和+5V端。
通过本次课程设计我也获得了许多收益,了解ADC0809,8259A,8255A,8253芯片的工作原理、方式及其应用。
其次,让我学会了如何设计一个简单的微机系统,以及设计一个简单微机系统所需要的步骤和设计中需要注意的地方。
我们在设计中遇到很多困难,大都是对和芯片的应用还不是很熟练,还需更加努力更加深入的了解微机系统和芯片功能。
由于我们的能力和时间的限制,没能通过硬件的验证实验,只是通过查找一些资料和大脑抽象来设计本次课程设计,设计的温度巡回检测系统还存在一些问题有待改进。
参考文献
[1]冯博·微型计算机原理与接口技术·北京:
清华大学出版社,2007·
[2]张俊谟·单片机中级教程·北京:
北京航空航天大学出版社,2006·
[3]孟立凡·传感器原理及技术·北京:
国防工业出版社,2008·
附录1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 温度 采样系统 报告 北大