《微机原理温度显示系统设计.doc》由会员分享,可在线阅读,更多相关《微机原理温度显示系统设计.doc(17页珍藏版)》请在三一办公上搜索。
1、精选优质文档-倾情为你奉上一 设计思路温度显示系统的总体设计原理是:首先利用模数转换芯片ADC0809实现由模拟量转化为数字量,通常要经历采样,量化,编码三个步骤,将温度模拟量转换为数字量。再将转换出来的数字量通过CPU系统总线送给可编程并行通信接口芯片8255来实现读写操作,然后将数据通过LED数码显示管来显示出当前温度。具体做法是为了实现精确的表示出当前的温度值,显示温度的百位,十位,个位。我们先在数据段开辟一显示缓冲区,用来存储当前温度,初始化我们所要应用的芯片8255,ADC0809后,主程序开始,为了将温度模拟量转化为数字量,启动AD采样,读AD采样结果,将结果送变量。为了显示温度的
2、百位,十位,个位,将样值分离,在通过8255的A口进行段选,B口进行位选。为了得到良好的显示效果,本程序调用了一段精确的延时程序,使各位在时间显示上有短暂的间隔。最后通过LED数码管显示出来,通过调节滑动变阻器改变温度,再显示,有此循环,就形成了精确的温度显示系统。 二 源程序清单与原理图SSTACK SEGMENT STACK DW64 DUP(?)SSTACK ENDSPUBLIC VALUE ;设置全局变量以便变量监视DATA SEGMENTVALUE DB?TNUM DB 3FH,06H,5BH,4FH,66H,6DH,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,0
3、BFH,79H,71HBT DB0DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,0606H MOV AX,B 0UT DX,AXSTART1:MOV DX, 640H OUT DX,AX CALL DALLY IN AL,DX MOV VALUE,AL MOV AH,0 TEST BT,1 JNZ S1 AND AL,0FH MOV BX,0EH JMP S2S1: ROR AX,1 ROR AX,1 ROR AX,1 ROR AX,1 AND AL,0FH MOV BX,0DH
4、S2: MOV SI,OFFSET TNUM AND AX,0FH ADD SI,AX MOV AL,SI MOV DX,602H OUT DX,AL MOV AL,BL MOV DX,600H INC BT OUT DX,AL JMP START1DALLY: PUSH CX PUSH AX MOV CX,1HA5: MOV AX,0800HA6: DEC AX JNZ A6 LOOP A5 POP AX POP CX RETCODE ENDS END START 三 设计图3.1设计系统框图温度显示系统总框图,如图2.1所示。CPU系统总线8255芯片A/D采样值LED数码管显示图3.1
5、系统框图3.2温度显示硬件接线图在实验箱上按照温度显示硬件接线图将传输线对应连接起来,芯片82555中PB0至PB7口与LED数码管的A至Dp相连,是为了实现七段数码管的段选,PA0至PA2与LED的X6至X4相连,是为了实现位选,X4为百位的显示、X5为十位的显示、X6为个位的显示,如图2.2所示。图3.2 温度显示接线图3.3设计流程图总体设计程序流程图,如图3.3所示。 图2.3 总体设计流程图四 元器件功能简介4.1 可编程并行通信接口芯片82554.1.1 8255简介8255是一种通用的可编程并行通信接口芯片,能够方便的在8088/8086微机系统中实现并行输入/输出,通过变成选择
6、多种功能方式。由于此次实验设计是通过在实验箱上的小键盘来输入数据,而对这一数据的采集与判断就要利用该芯片来完成。利用其三个可独立的输入输出端口不仅可以判断出键盘的按键位置还可以输入其对应的高低电平来使对应的LED闪亮。可以说此芯片也是这次设计中很重要的一个环节。图4.1 可编程并行通信接口芯片8255的内部结构4.1.2 8255硬件引脚图1 402 393 384 375 366 357 348 3382559 3210 3111 3012 2913 2814 2715 2616 2517 2418 2319 2220 21PA4PA5PA6PA7WRRESETD0D1D2D3D4D5D6D
7、7VccPB7PB6PB5PB4PB3PA3PA2PA1PA0RDCSGNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2图4.2 8255硬件引脚图A1上的不同编码可分别寻址上述3个口和一个控制寄存器,具体规定如下: A1 A0 选择 0 0 A口 0 1 B口 1 0 C口 1 1 控制寄存器通常A0,A1分别接系统总线A0和A1,它们与一起来决定8255的接口地址。RESET为复位输入信号。此端上的高电平可使8255复位。复位后,8255的A口,B口和C口均被定为输入状态。 PA0PA7为A口的8条输入输出信号线。该口的这8条线是工作输入、输出还是双向(输入、
8、输出)方式可由软件编程来决定。 PB0PB7为B口的8条输入输出信号线。利用软件编程可指定这8条线是输入还是输出。 PC0PC7 8条线根据工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线。 表4.1 8255的各种操作功能组合A1A0RDWRCS操作功能00010端口A数据总线01010端口B数据总线10010端口C数据总线00100数据总线 端口A01100数据总线 端口B10100数据总线 端口C11100数据总线 控制寄存器11010非法操作(控制口不能读)XX110数据总线浮空XXXX1未选中82554.1.3 8255控制字8255有两种控制字:方式控制
9、字和口按位置位/复位控制字。由于着两个命令都是送到的同一个控制端口,故为了让其能识别是哪个命令,采用特征位的方法。若写入的控制字的最高位是1,则是工作方式选择控制字;若写入的控制字是0,则是口的按位置位/复位控制字。1、 方式控制字其作用是指定3个并行端口(A、B、C)是作输入还是作输出端口以及选择8255的工作方式。表4.2 8255方式控制字D7D6D5D4D3D2D1D0标志位=1写方式字=0 C口控制字A组工作方式选择00=方式001=方式11X=方式2A口1=输入0=输出C口(高4位)1=输入0=输出B组工作方式选择0=方式01方式1B口1=输入0=输出C口(低4位)1=输入0=输出
10、2、 C口按位置位/复位控制字该控制字的作用是指定口的8位中的任意一位置成高电平输出或低电平输出。它的格式及每位的定义如表:表4.3 8255的C口按位置位/复位控制字D7=0D6D5D4D3D2D0标志位不用(一般置0)C口的选择000=C口位0001=C口位1010=C口位2011=C口位3100=C口位4101=C口位5110=C口位6111=C口位71=置位0=复位8255有很强的功能,能够工作在各种工作方式下。在应用过程中,可以利用软件编程来指定8255的工作方式。也就是说,只要将不要的控制字装入芯片中的控制寄存器,即可确定8255的工作方式。 当控制字bit7=1是,控制字的bit
11、6-bit0用来控制B组,包括B口的8位和C口的低4位。当控制字的bit7=0时,指定该控制字仅对C口进行位操作按位置位或复位操作。对C口按位置/复位操作的控制字格式如图2所示。如前面所叙,在必要时,可利用C口的按位置/复位控制字来使C口的某一位输出0或1。 例如,在设计程序中的程序片段 MOV DX,0646H MOV AL,0A0H OUT DX,AL ;初始化控制字,A组位方式1输出MOV DX,0640HMOV AL,0FFH OUT DX,AL ;A口赋值4.1.4 8255的工作方式 8255的工作方式有3种,由方式控制字来指定它的每个端口工作于何种方式。由于此次设计只涉及到方式0
12、,故只对方式0的工作过程予以简述。 表4.4 8255方式0之下的输入输出组合A组B组A口(PA0PA7)C口(PC4PC7)B口(PB0PB7)C口(PC0PC3)入入入入入入入出入入出入入入出出入出入入入出入出入出出入入出出出出入入入出入入出出入出入出入出出出出入入出出入出出出出入出出出出 1、 方式0(基本输入/输出方式)基本的输入/输出是指外设始终作好了准备,随时可以提供或者接受数据。A、B、C三个端口均可以采用这种工作方式,A、B口工作在方式0下可由方式控制字设定,C端口作为数据输入/输出哭只能工作于方式0,无须设定。方式0的任一端口可独立实现数据的输入或输出,输入输出的方向由方式控
13、制字分别定义。多用于在无条件传送时提供24位数据的输入或输出。但A、B两断口在单独定义8位数据的输入或输出时可以利用C端口高半字节(A组),低半字节(B组)作为控制输出或状态输入的支持,且可以自行定义,无固定搭配的限制,此时A、B两端口可分别以查询方式工作。2、方式0的基本功能若A口、B口都工作在方式0,则此时8255可以有2个8位的数据输入/输出(A口、B口),2个4位口(C口上半部、下半部),而且A口、B口、C口上半部、C口下半部共有16种不同的组合方式;输出是锁存的,输入只有缓冲而无锁存功能。CPU和8255 A口、B口之间传送数据只能用程控方式(既无条件或查询方式),不能用中断方式。3
14、、方式0的特点系统没有指定C口的某些线作为专门的信号联络线和状态位,但是用户可以自定义C口的某些线作为信号联络线。CPU根据查询到的C口状态来了接数据传送过程,以确定是否对A口或B口进行数据读写。在实验中,我是利用A、B口来输出信号,用C口来输入信号,通过8255的控制字使LED发光的,通过开关来强制控制C口来给LED显示发出对应的显示电平。这样就可完成实际交通中出现的紧急状况。4.2 ADC0809芯片的内部结构及引脚4.2.1 ADC0809外部引线ADC0809转换器由一个8路单端模拟信号多路开关电路、地址锁存与译码电路 、A/D转换器和三态输出锁存缓冲器组成,其引脚图,如图3.3所示。
15、D0D7输出数据线;IN0IN78路模拟电压输入端;ADDA,ADDB,ADDC路地址输入;ADDA最低位,ADDC最高位;STALT启动信号输入端,下降沿有效;ALE路地址锁存信号,用来锁存ADDAADDC的 地址输入,上升沿有效;EOC变换结束状态信号,高电平表示一次变换已结束;OE读允许信号,高电平有效;CLK时钟输入端;REF(+),REF(-)参考电压输入端;VCC5V电源输入;GND地。图4.3 ADC0809引脚图ADC0809由两部分组成:模拟多路开关和A/D转换器。其核心是8位A/D转换器,它采用逐次逼近法,对8路模拟开关的一路进行转换。模拟多路包括8路模拟开关和3位锁存器与
16、译码器,根据3位输入地址(ADDA.ADDB.ADDC)选择8路模拟输入当中的一路送到A/D转换器,如图3.4所示。图4.4 ADC0809内部结构图4.2.2 ADC0809工作方式ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址译码选通8路模拟输入之一到比较器。STALT上升沿将逐次逼近储存器复位,下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变成高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用做申请中断。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上,如表4-3所示
17、。表4-5 ADC0809工作方式表ADDC、ADDB、ADDA000001010011100101110111 选中通道IN0IN1IN2IN3IN4IN5IN6IN7设计总结本次设计是在王老师悉心指导下完成的,从课设的选题、思路、撰写和最后的定稿,李老师都花费了不少的时间和精力,给予了我们最大的指导和帮助。李老师一丝不苟的治学态度以及严于律己、宽以待人的品质,无时无刻不在激励着我,令我们终生难忘,使我们满怀信心的迎接新的挑战。在此,特向李老师表示深深的敬意和由衷的感谢!在这段时间里,我们做了许多工作。首先,我们进行的就是对相关资料的查找,通过借助图书馆的工具书和老师的指导,我们很快就完成了
18、这项任务;其次,就是搜集有关这次课程设计题目的资料,完成这项工作我们是通过网络及老师和同学的介绍,查找到的资料对我们的课程设计有很大的帮助。我们的小组终于完成了温度显示系统的设计。从开始接到设计题目到系统的实现,再到温度显示系统设计完成,每走一步对我们来说都是新的尝试与挑战。在这一周的课程设计中,我们学到了很多知识也有很多感受,从对许多知识的一无所知,到对相关知识有了一定了解的状态,我们开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑中模糊的概念逐渐清晰,使不成熟的作品一步步完善起来,每一次改进都是我们学习的收获,每一次试验的成功都会让我们兴奋好一段时间。我以前就对计算机感兴趣,一直想
19、找机会对计算机深入学习,是这次课程设计给了我机会,给了我非常大的启示:无论什么时候都不应该丢掉自己的兴趣,更应该把自己的兴趣与社会的需求相结合才能在某些方面取得成就。在以后我也会去不断的深造自己,用知识来武装自己,这样才会跟得上发展如此之快的社会。另一个就是无论做什么事情都需要集体的力量,集体的力量是伟大的。组员之间也要团结,相互协调好,这也是交际中的一种需要。从今以后我会不断的完善自己,继续努力学习,把这种集体的精神带到我的学习和工作当中,为以后步入社会奠定良好的基础。 致 谢在这里我要感谢指导我们的王老师,他教会了我知识为所用也,真正运用到实际生活中去,王老师耐心地为我们解答问题所在,外表看似严厉,对学生严格要求,其实我感觉他内心却是很和蔼的。我代表我们组祝愿老师:身体健康、工作顺利!最后,我还要感谢一周以来我们组员对我的默默支持,没有你们我自己是不能在短时间在完成这项任务的,我深深的道一声:谢谢你们,辛苦了!参考文献1. 顾可民,微机原理与应用大连理工大学出版社,2002.22. 朱慧真.汇编语言教程.国防工业出版社,19883. 孙德文等.微机系统硬件教程.海洋出版社,19934. 谢瑞和.微机技术实践,华中理工大学出版社,19925. 朱玉春等 微机原理与接口技术大连理工大学出版社,20046仇玉章等 微型计算机技术实验及指导教程清华大学出版社,2003专心-专注-专业