《温度采样系统报告—中北大学(共17页).doc》由会员分享,可在线阅读,更多相关《温度采样系统报告—中北大学(共17页).doc(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上前言微机原理与接口技术是一门实践性和实用性都很强的课程,学习的目的在于应用。本课程设计是配合课堂教学的一个重要的实践教学环节,它能起到巩固课堂和书本上的知识,加强综合能力,提高系统设计水平,启发创新思想的效果。现在计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧跟实际连接。掌握这方面的知识更重要强调解决实际问题的能力。该课程设计给我们提供了一个很好的机会,它要求我们结合课堂上和书本中学到的知识去独立设计一个硬件系统,它是我们迈向实践和应用的桥梁,我们学习书本上的知识是一个不断积累的过程,而该课程设计却使得我们能够尽情发挥他们,让我们更了解计算机的结构,工作
2、原理以及软硬件的结合使用,虽然课程设计的时间比较短,但它却在整个教学计划中占据了及其重要的位置。通过本课程设计希望达到以下目地:1培养资料搜集和汇总的能力。2培养总体设计和方案论证的意识。3提高硬件,软件设计与开发的综合能力。4提高软件和硬件联合调试的能力。5熟练掌握相关测量仪器的使用方法。6握相关开发软件,仿真软件的使用方法。【摘要】本文主要以8088 CPU 为核心设计一个温度采集系统,系统可以实现一路温度的采集,在3位LED显示器上显示当前温度。本设计所用器件主要有传感器,A/D转换器,8088CPU,可编程并行接口8255,LED显示器等。首先传感器把所测的温度转换为电压,输入A/D转
3、换器中进行转换,然后再把得到的二进制数经过CPU在LED上显示出来。【关键字】传感器、8088、8255、ADC0809姓名负责模块A/D转换模块8088主控模块并行接口模块显示模块一 设计任务1 设计目的为了实现计算机对生产过程及对象的控制,需要将对象的各种测量参数按照要求转换成数字信号送入计算机。经计算机运算处理后再再转换成适合于对生产过程进行控制的量。所以在危机和生产过程之间,必须设置信息的变换和传递通道。而我们所做的模拟输入通道,主要功能就是随时间变化的模拟输入信号变成数字信号送入计算机,主要有多路转换器,采样保持器和 A/D转换器等组成。本实验通过设计一个微机控制的温度采集系统,旨在
4、使学生能做到以下几点:1了解微机控制的温度采集系统软硬件设计原理和方法。2进一步掌握定时/计数器、并行接口芯片和中断控制器的工作原理与使用方法。3进一步加深对中断机理的认识。2 实验设备180X86系列微机一台。2微机硬件实验平台。3定时/计数器、并行接口芯片。4ADC0809。58255并口控制器,8259中断控制器。3 实验内容及要求以8088 CPU 为核心设计一个温度采集系统,系统可以实现一路温度的采集,在3位LED显示器上显示当前温度。本设计所用器件主要有传感器,A/D转换器,8088CPU,可编程并行接口8255,LED显示器等。首先传感器把所测的温度转换为电压,输入A/D转换器中
5、进行转换,然后再把得到的二进制数经过CPU在LED上显示出来。本设计共分以下几个模块:8088主控模块、A/D转换模块、并行接口模块、显示模块。二 设计方案1 设计思想 在许多传统行业中,多路高温度采集系统是不可或缺的。电厂,石化行业及制药厂等企业生产过程中,普遍存在着需要进行温度测量的场合。因为温度是生产过程和科学实验中普遍且重要的物理参数。在工业生产中,为了高效生产,必须对生产过程的主要参数,如温度,压力,速度等进行有效的检测并控制。其中温度检测在生产过程中占有相当大的比例。而我们所做的课题正是以8086CPU为核心设计一个温度巡回监测系统(A/D采用ADC0809).系统可实现温度信号的
6、采集,在3位LED显示器上显示当前的温度和通道号。模拟现场两个点的温度巡回检测,温度范围0-50摄氏度。每隔两秒检测一次,经标度变换后送LED显示器显示,2路循环显示,每路持续两秒。该系统主要用于温度检测,是一个状态反馈系统,并非动态控制系统。他可以利用放大器实现多个点的温度巡回检测,并在LED上显示当前的温度值和通道号。当温度信号改变时,LED显示的值也随之改变。2 系统框图本电路设计框图如图1所示,主要包括四大部分:温度信号检测及放大部分、数字控制部分、A/D转换器和数字显示部分。温度经温度传感器及放大电路变换成与温度成线性关系的电压信号,然后经数字控制电路送到A/D转换器,通过数字显示器
7、显示出测量的温度。3 硬件设计系统的主要功能是实现温度信号的采集,在3位LED显示器上显示当前的温度和通道号。模拟现场两个点的温度巡回检测,温度范围0-510摄氏度。每隔两秒检测一次,经标度变换后送LED显示器显示,2路循环显示,每路持续两秒。实验步骤如下:(1) 确认从PC机引出的两根扁平电缆已经连接在试验平台上。(2) 编写程序然后编译连接。(3) 参考图2-1所示连接试验线路。(4) 运行参考程序,观察LED显示器上的通道号和温度值。正确的结果是:档调节作为A/D模拟输入电压源的电位器W的旋钮在任意位置时,LED显示器上显示如下图(以旋钮旋至最右端即最大值为例)13842510图2.13
8、.1 芯片功能说明所需芯片可编程并行接口芯片8255,可编程定时器计数器8253,中断控制器8259,传感器AD590,A/D转换器ADC08093.1.1 8088的功能简介8088是一个Intel以8086为基础的,拥有16位元暂存器和8位元外部资料总线。8088使用8位元的设计,所针对的是较为经济之系统。在它推出时候,大的资料总线宽度电路板还是相当地昂贵。8088的预取(prefetch)贮列(queue)是4字节,相对于8086的是6字节。8088CPU内部用两个独立的功能部件组成,分别为BIU和EU。BIU(BusInterfaceUnit)BIU由段寄存器、IP、指令队列、地址加法
9、器和控制逻辑组成。BIU的功能是负责从内存中取指令送入指令队列,实现CPU与存储器、I/O接口之间的数据传送。EU(ExecutionUnit)EU由通用寄存器、F寄存器、ALU和EU控制部件组成。EU的功能是分析指令和执行指令。3.1.2 8255A的功能简介8255A内部结构:8255A芯片是一个采用NMOS工艺制造的40引脚双列直插式(DIP)封装组件。8255A有3个8位数据端口,即A口、B口及C口,它们都可以分别作为输入口或输出口使用;A组控制与B组控制;读写控制逻辑;数据总路线缓冲器。8255A主要的外部引脚,如图2.2所示:图2.2 8255A引脚图PA7PA0:A口的8条I/O
10、线。8条线只能同时作为输入或输出,不能分开使用,可设置成双向口,也只有A口允许这样做。PB7PB0:B口的8条I/O线。不可以设置成双向口,其它和A口一样。PC7PC0:C口的8条I/O线。不可以设置成双向口,但它可以分拆为两组即高4位和低4位,这两组可以任意设置为输入或输出。除了作为独立的IO线外,C口还经常为A口、B口服务,配合A口、B口作联络线使用。A1、A0:端口地址选择信号。用于选择8255A的3个数据端口和一个控制口。当A1A0=00时,选择端口A;为01时,选择端口B;为10,选择端口C;为11时,选择控制口。8255A工作方式:方式0:基本的输入输出方式。A口、B口、C口都可以
11、工作在些方式下。方式1:选通输入输出方式(应答方式)。A口、B口工作在此方式下。方式2:双向传输方式。只有A口可以工作在此方式下。8255A方式控制字格式如下表2.1所示:表2.1 8255A方式控制字格式D7D6、D5D4D3D2D1D01A口A口C口高4位B口B口C口低4位00 方式001 方式11x 方式20 输出1 输入0 输出1 输入0方式01方式10 输出1 输入0 输出1 输入3.1.3 8253的功能简介 8253的内部结构:8253采用NMOS工艺制成,有24个引脚,所有输入、输出端均TTL电平兼容,单一电源(Vcc=+5V)供电,最高计数速率为2.6MHz。它包括3个计数器
12、(即计数器0、1、2)、数据总路线缓冲器、读写逻辑以及控制寄存器等4个部分。8253的外部引脚,如图2.3所示:图2.3 8253引脚图A1、A0:地址输入线,用来址8253内部的4个端口,即3个计数器和1个控制字寄存器与CPU系统地址线相连。CLK0、CLK1、CLK2:时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。CLK可以是系统的时钟脉冲,也可以由系统时钟分频或者其他脉冲源提供。当用于定时时,这个脉冲必须是均匀的、连续的、周期精确的,而用于计数时,这个脉冲可以是不均匀的、断续的、周期不定的。GATE0、GATE1、GATE3:门控输入端,用于外部控制计数器的启动计数和停止计数的操作。两
13、个或两个以上计数器连用时,可用此信号同步,也可用于与外部某信号的同步。OUT0、OUT1、OUT2:计数输出,当计数器从初值开始完成计数操作进,OUT引脚输出相应的信号。8253的工作方式:方式0:减1计数到0,产生中断请求信号。方式1:减1计数到0,产生可重复触发的单稳态负脉冲信号。方式2:减1计数到1,分频器(速率信号发生器)。方式3:减1计数到初值的12,方波发生器。方式4:减1计数到0,软件触发产生选通负脉冲信号。方式5:减1计数到0,硬件触发产生选通负脉冲信号。8253方式控制字格式,如下表2.2所示:表2.2 8253方式控制字格式D7 D6D5 D4D3 D2 D1D000 选计
14、数器001 选计数器110 选计数器200 计数器锁存01 只读写低8位10 先读写高8位11 先读写低8位再读写高8位000 方式0001 方式1X10 方式2X11 方式3100 方式4101 方式50 二进制计数1 BCD计数3.1.4 AD590传感器主要特性:1、流过器件的电流(A) 等于器件所处环境的热力学温度() 度数:Ir/T=1 (1)式中,Ir流过器件(AD590) 的电流,单位为A;T热力学温度,单位为K。2、AD590的测温范围为- 55+150。3、AD590的电源电压范围为430 V,可以承受44 V正向电压和20 V反向电压,因而器件即使反接也不会被损坏。4、输出
15、电阻为710 m。5、精度高,AD590在- 55+-150范围内,非线性误差仅为0.3。3.1.5 8259A的内部结构和引脚8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联成64级的向量优级中断系统。8259A有多种工作方式,能用于各种系统。各种工作方式的设定是在初始化时通过软件进行的。 在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态.编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态8259A的内部结构如下图2
16、.4所示,引脚如图2.5所示图2.4 8259A内部结构图2.5 8259A 管脚图三 实验结果1 程序原理图(见附件1)2 程序流程图专心-专注-专业(1)总流程图 数据采集采集成功?量化编码转化为非压缩BCD码显示LED结束YN2)数据采集系统流程图 (3)温度显示子程序流程图初始化设置采集通道和次数启动转换信号EOC=0?读入转换结果存结果YN取操作数查表转换取LED字型码输出字型锁定字位结束3 汇编程序代码DATA SEGMENTBUF1 DB ?BUF2 DB ?LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDATA ENDSCODE S
17、EGMENT ASSUME CS:CODE,DS:DATAINIT_8255 PROC NEAR ;8255初始化 MOV DX,037BH MOV AL,91H ;A、B、C均为方式0,A入,B出,CH出,CL入 OUT DX,AL RETINIT_8255 ENDPSTART: MOV AX,DATA MOV DS,AX LEA SI,BUF1 CALL INIT_8255 ;调用初始化8255程序 MOV BL,0 ;LED不选通,其他置零 MOV CX,1 ;共采集1次AGAIN: MOV AL,BL MOV DX,037AH ;C口 OUT AX,AL ;ALE、START置零 OR
18、 AL,10H OUT DX,AL ;送ALE信号(上升沿) AND AL,0EFH OUT DX,AL ;输出START信号(下降沿) NOP ;空操作等待转换 MOV DX,037AHWAIT1: INT AL,DX ;读EOC状态 AND AL,02H JZ WAIT1 ;若EOC为低电平则等待 MOV DX,037AH MOV AL,BL OR AL,20H OUT DX,AL ;EOC端为高电平则输出读允许信号OE=1 MOV DX,0378H IN AL,DX ;读入转换结果 MOV SI,AL ;把转换的数字量送存储器 MOV DX,037AH MOV AL,0 OUT DX,A
19、L ;若完成数据采集则回到初始状态DECODE: MOV AX,SI MOV BL,5 ;数字量除以0FFH,乘以5V,得到电压值。再乘以10, ;即转换为1V/,等效为数字量除以5 DIV BL ;以下程序是把二进制转化为非压缩BCD码 LEA SI,BUF2 MOV BL,AH ;AH为余数,乘以2即为0.1级的非压缩BCD码 ADD BL,BL MOV SI,BL ;0.1级 INC SI MOV AH,0 ;AL扩展为AX,AL为十六进制除数 MOV BL,OAH ;商转换为十进制 DIV BL MOV SI,AH ;余数AH就是1级的非压缩BCD码 INC SI MOV SI,AL
20、;商AL就是10级的非压缩BCD码 DISP PROC NEAR ;这段是显示子程序 MOV AL,40H MOV DX,037AH OUT DX,AL ;选通LED1LEA BX,LED ;表的首地址LEA DI,BUF2 MOV AL,DI ;序号 XLAT ;驱动LED的数据存入AL MOV DX,0379H OUT DX,AL ;LED1亮,值为0.1级 CALL DELAY ;调用延时子程序 MOV AL,80H MOV DX,037AH OUT DX,AL ;选通LED2 INC DI MOV AL,DI XLAT ADD AL,80H ;带上小数点 MOV DX,0379H OU
21、T DX,AL ;LED2亮,值为1级 CALL DELAY ;调用延时子程序 MOV AL,0C0H MOV DX,037AH OUT DX,AL ;选通LED3 INC DI MOV AL,DI XLAT MOV DX,0379H OUT DX,AL ;LED3亮,值为10级 RET ;过程返回DISP ENDP ;过程结束DELAY PROC ;延时子程序 MOV CX, 100DELAY1: LOOP DELAY1 RET DELAY ENDPCODE ENDS END START 四 系统调试与使用本次实验前面时间主要用于熟悉实验操作平台,系统调试时间只花了短短的两天时间。刚开始我是
22、满怀信心的想把自己写好的程序一次运行成功,但结果却惨不忍睹,什么功能都没有,甚至连写在程序的最前面的那些芯片的初始化操作都没达到预期的效果,这对我的信心造成极大的冲击,我翻着书仔细的把程序重新读了一次 ,希望能发现出某个错误。 但就根据书本上教的,实在是无错可查。我不得已把程序一块一块的肢解开来,从最基本的做起,看他们能否都实现,最后看能否连接起来运行。 首先,我把最前面的初始化留下来,把后面的主程序及中断服务子程序都删去,仍没有成功,我不得已,再把程序中的8253初始化和8255A的初始化分开调试,结果发现它们能够运行,并有相应的输出结果显示。后来我们请教了学长,在他不停的调试过程中,让我们
23、学到了很多,首先我们要对我们所做的课题要有一个整体的结构框图,那样思路才比较清晰,而且出现问题后,不应该无从下手或整体动手,而是应该一个环节一个环节的不停调试,找出问题所在,然后针对那一环节修改程序或者线路图。在调试程序时要学会使用逐步调试,而不是整体的运行。五 实验心得与体会通过本次实验掌握了微机系统的开发步骤,可编程并行接口接口芯8255A,可编程定时器计数器8253,中断控制器8259,ADC0809和LED的用法,掌握了汇编,程序的设计。本次设计需要熟练掌握汇编语言,熟悉可编程芯片8255A,ADC0809,8259A,可编程定时器计数器8253的内部结构、外部引脚和功能,熟悉LED显
24、示器的结构及译码方式。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.52.5的模拟电压。8253的通道2定时器用于10ms定时输出OUT2信号接A/D变换器的“1”口,同时该定时脉冲也作为中断控制器8259的中断请求信号,接IRQ7端口。CPU响应8259的中断请求后,启动A/D转换器0809对单次阶跃单元电位器
25、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冯博微型计算机原理与接口技术北京:清华大学出版社,20072张俊谟单片机中级教程北京:北京航空航天大学出版社,20063孟立凡传感器原理及技术北京:国防工业出版社,2008附录1
限制150内