键控数据采集及数值显示电路设计.docx

上传人:scccc 文档编号:12203115 上传时间:2021-12-02 格式:DOCX 页数:12 大小:306.87KB
返回 下载 相关 举报
键控数据采集及数值显示电路设计.docx_第1页
第1页 / 共12页
键控数据采集及数值显示电路设计.docx_第2页
第2页 / 共12页
键控数据采集及数值显示电路设计.docx_第3页
第3页 / 共12页
键控数据采集及数值显示电路设计.docx_第4页
第4页 / 共12页
键控数据采集及数值显示电路设计.docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《键控数据采集及数值显示电路设计.docx》由会员分享,可在线阅读,更多相关《键控数据采集及数值显示电路设计.docx(12页珍藏版)》请在三一文库上搜索。

1、 电子技术学院电子信息工程系课程设计报告书 课程名称:微机原理及应用课程设计学时学分: 1 周 1 学分 设计题目:键控数据采集及数值显示电路设计设计要求:按不同的数字键(0、1、2、3、4、5、6、7)采集0809相应数据通道的模拟量,并在LED数码管上显示值。设定输入模拟量在05V范围内,显示值在0255范围内。具体要求:1.画出连接线路图或功能模块引脚连接图。2.采用8088CPU作主控制器,0809作A/D转换器,采用直接地址译码方法,给各芯片分配地址,选取芯片中必须包含有8255。3.采用3个共阴极型LED动态显示,只需显示0255范围内的值。题目分析:可实现的功能:由键盘输输入0至

2、7数字,选择相应的数据通道,在LED数码管上显示出转化后的三位模拟量。当选定某一通道后,改变变电位器后,LED显示的数据随之改变。设计思路:将低三位数据线A0,A1, A2与ADC0809的ADDA,ADDB,ADDC分别连接,一输入数据的低三位作为选通信号。这样刚好可以与ADC0809的八选通信号对应。然后将ADC0809的数据线与8255的PB端口相连,把采集的信号写到8255中,从PA端口写到数据总线,通过数据总线,把8255存放的采集信号经转化后送入74LS273,以驱动LED数码管显示对应的转化位。总体设计思路图:键盘输入0至7ADC0809转换,并从相应通道输出8088取低三位,启

3、动ADC08098255的PB端口写入,PA端口输出LED数码管显示转换结果74LS273作为控制端,位码和段码电路设计:可以分为几个部分:1.数据通道选择输入模块,2.信号采集与转化模块3.中央数据处理模块,数字显示模块(具体电路设计图见附录一)软件设计:软件设计主要是结合硬件电路,对相应端口进行数据输入输出。1.键盘输入的是0至7的ASC码,故需对其转化,取第三位。2.ADC0809的启动及通道选择。3.采集信号写到8255的PB端口。4.LED数码管的位码,段码编写及74LS273的控制。(程序流程图见附录二,源程序见附录三)各部分电路具体实现:1. 数据通道选择输入模块由于键盘输入的0

4、至7与ADC0809的IN0至IN7可以直接联系起来,即输入多少就相应的选通对应的采样输入通道。因此,可以把输入数的转化成选通控制端ADDA,ADDB,ADDC可识别的信号,直接将数据总线的低三位A0,A1,A2与选通控制端直接连起来就行了。对键盘输入数据的存储可用系统9号功能调用。键盘输入存的内存的是ASC码,故需要将其进行取低位操作。8088的地址线经74LS138译码器译码后,可引出外作为其他芯片的选通信号。ADC0809的启动就可以通过PS0的输出信号来实现。相应程序:LEA DX, TEXT ;9号功能调用,提示输入所选通道MOV AH,9INT 21HMOV AH,1 ;1号功能调

5、用,将输入的数据存入到AL中INT 21H AND AL,0FH ;取低三位 MOV DX,380H ; 380为ADC0809的片选地址,启动转换 OUT DX,AL ; 选择对应的通道2.信号采集与转化模块数据采集及转化部分,主要用的芯片是ADC0809。ADC0809是逐次逼近型8位数模转换器,具有八路模拟量(电压)输入通道,经芯片内部的多路开关切换,选择其中的一路进行模数转换。ADC0809与系统的接口包括两个输出口和一个输入口,第一个输出口用于控制芯片内部的模拟通道选择,CPU输出的通道地址从ADC0809的引脚ADDA、ADDB、ADDC输入,并利用ALE信号触发锁存;第二个输出口

6、是哑元,用以触发ADC0809的引脚START启动转换。当转换结束后,ADC0809的引脚EOC会产生一个高电平的状态信号,该信号用于检测,也可用于申请中断。随后,CPU可以从ADC0809的引脚D0-D7输入转换后的数据。模拟通道选择已在输入模块中介绍了。当数据采集通道选定后,经过延时确保转换完成后,将管脚EOC和职位高电平。当管脚EOC变为高电平时,并且管脚ENABLE有效时即可进行数据的输出。在调节电位器,改变输入量的大小时,模拟转化的数值也将随之改变。在本电路中,通过对端口PC0和端口PC1置位电平来控制转换后数据的输出。相应程序:MOV AX,50000 ;延时,等待转换结束 WT:

7、 DEC AXJNZ WTMOV DX,393H ;393为控制字寄存器的端口地址 MOV AL,80H ;方式选择字OUT DX,AL MOV AL,1 ;PC0的置位字 OUT DX,AL ;将ADC0809的EOC改为高电平 MOV AL,03H ;将PC1置位,使9号管脚ENABLE有效, OUT DX,AL ;允许数据输出3.中央数据处理模块,数字显示模块这个部分所用的主要芯片是8255。8255是并行通信接口芯片,其基本功能以并行的方式在系统总线与I/O设备之间传送数据。8255A共有三个I/O端口,其中A口和B口J均为8位,而C口既可以作为8位端口,又可以分成两个4位端口。825

8、5共有3种不不同的工作方式,方式0为基本的I/O方式,方式1为选通I/O方式,方式二为双向I/O方式。端口A可以选择方式0、1、2,端口B、C可以选择方式0、1,而端口C首先要按照端口A和B的工作方式提供相应的联络线,剩余部分则只能按照方式0工作。A口和B口的输入输出都具有数据锁存的功能,C口输出有锁存能力,而输入没有锁存能力。 8522在这里的作用是将转换后的数据经PB端写入,并从PA段读出至内存。所以,PA,PB,PC三端口均工作在0方式,端口PA和PC用于输出,端口PB用于输入。三端口的选择用地址总线A0,A1决定,A1A0=00时,对端口PA操作,A1A0=01时,对端口PB操作,A1

9、A0=10时,对端口PC操作.读写操作由与IOR和IOW分别相连的RD和WR来控制,均是低电平有效。相应程序:MOV DX,393 ;设置控制字,将PB端口设为输入MOV AL,82H OUT DX,AL MOV DX,391H ;写端口PB,将转化结果写入8255 IN AL,DXMOV DX,393 ;设置控制字,将PA端口设为输出MOV AL,80H OUT DX,ALMOV DX,390 ;读PA端口,将结果写入内存OUT DX,AL数字显示模块:本部分用的是数据寄存器74LS273和七段共阴极发光二极管显示器LED。74LS273是8D触发器,当他的时钟端CLK在脉冲上升延时,可将出

10、现在1D至8D上的数据写入出发寄存器。七段共阴极发光二极管显示器LED的公共端为阴极,当对它的阳极端给高电平时,相应二极管会发亮。为了对LED数码管很好的控制,将其COM端分别由一片74LS273的某一位控制,其阳极端由另一片74LS273控制。通过对这两个寄存器的控制就可以控制数码管的显示,适当选择循环速度,利用人眼的视觉停留效应,使它看上去好像在同时显示。将74LS138译码器译码后的PS1和PS2分别作为两片74LS273的时钟信号。由此确定0至9十个数的段码和位码。电路中使用反向器是为了增大驱动能力。相应程序:MOV BL,DS:BP+2 ;显示指针MOV AL,SHOWBX MOV

11、DX,384H ;输出段码OUT DX,ALMOV AL,AH MOV DX,388H ;输出位码 MOV CX,10000 ;延时,等待显示完成LOOP1: DEC CXJNZ LOOP1 INC BP ;改变指针,指向下一个要显示的数字 SHR AH,1 ;调整位指针,选择下一个数码管 AND AH,AH ;判断是否完全输出JNZ DISPLAY课程设计小结:这次课程设计的主要目的是运用课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。我选择了键控数据采集及数值显示电

12、路设计,这个设计需要将软件设计与硬件设计相结合。主要涉及到ADC0809、8255、74LS273等芯片以及七段显示译码器的应用。本次课程设计,自己通过查阅资料,更加深入的了解了端口连接,各种设备之间工作的原理,数据线大多和DB连接,而其读入数据或者读出数据,主要是通过CPU控制地址译码电路选通相应的芯片,相应的端口进行数据的读入或者写出,达到最终的目的。课程设计巩固了课堂知识的学习,而且好多课堂上没弄明白的问题在课程设计的过程中都会遇到,并且这些问题都必须弄清楚后才能继续之后的过程。课程设计不比平时实验。做实验时多数是老师给出操作步骤,我们呢就机械性的照搬照做,可以说很能学到什么,虽说自己也

13、好好想了实验该怎么做,程序该怎么写,可多多少少也会受到参考程序的影响,加上实验课时间就那么点,好多问题都不能及时解决。而这次课程设计给了我足够的时间与精力完完全全自己搞设计,自己发现问题,解决问。我觉得吧,这样才能学的东西。课程设计报告我改了好多次,而且好多地方隐隐约约觉得有问题,可问题在哪又说不出,或许这就是没有实践检验的缘故吧。附录一:总电路图附录二:程序流程图开始提示键盘输入0至7将建入的数据取低三位作为选通信号启动ADC0809进行数据转换转换完成将ADC0809的OE改为高电平将转化结果写入8255的B端口是将AL中数据依次转化为LED的位码存入OBUF中控制74LS273,输出转化

14、的结果三个LED数码管分别显示转化后的百,分,十位数检测是否继续输入入否结束附录三:程序源代码STACK SEGMENT STACK 'STACK' DW 32 DUP(0)STACK ENDSDATA SEGMENTTEXT DB 0DH,'PLEASE ENTER A NUMBER FROM 0 TO 7 ! $' ;提示输入SHOW DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H ;0至9的字形码OBUF DB 4,0,4 DUP(0) ;为从ADC0809读入的数据开辟存储空间DATA ENDSCODE SEGMEN

15、TSTART PROC FARASSUME SS:STACK,DS:DATA,CS:CODE PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX CHOOSE: LEA DX, TEXT ;9号功能调用,提示输入所选通道MOV AH,9INT 21H MOV DX,393H ;8255控制字寄存器的端口地址 MOV AL,83H ;方式选择字 OUT DX,AL MOV AH,1 ;1号功能调用,将输入的数据存入到AL中INT 21H AND AL,0FH ;取低三位 MOV DX,380H ; 380为ADC0809的片选地址 OUT DX,AL

16、; 选择对应的通道 MOV AX,50000 ; 延时,等待转换结束 WT: DEC AXJNZ WT MOV DX,393H ;393为控制字寄存器的端口地址 MOV AL,80H ;方式选择字OUT DX,AL MOV AL,1 ;PC0的置位字 OUT DX,AL ;将ADC0809的EOC改为高电平 MOV AL,03H ;将PC1置位,使9号管脚ENABLE有效, OUT DX,AL ;允许数据输出 MOV DX,393 ;设置控制字,将PB端口设为输入MOV AL,82H OUT DX,ALMOV DX,391H ;写端口PB,将转化结果写入8255 IN AL,DX MOV DX

17、,393 ;设置控制字,将PA端口设为输出MOV AL,80H OUT DX,ALMOV DX,390 ;读PA端口,将结果写入内存OUT DX,AL CBW ;扩展到AX,用于求余MOV CL,10 DIV CL ;求个位MOV CH,0 MOV CH,AH ;将个位数存到CHMOV AH,0 DIV CL ;求十位数AND BH,00H MOV BH,AH ;将十位数存到BH中MOV AH,0 DIV CL ;求百位数 MOV BP ,OFFSET OBUF ;将百,十,个位数转至开辟的 OBUF 中 MOV BP+2,AH ;用于之后数码管显示的指针变量,百位 MOV BP+3,BH ;

18、十位 MOV BP+4,CH ;个位MOV BH, 0DISPLAY: MOV BL,DS:BP+2 ;显示指针MOV AL,SHOWBX MOV DX,384H ;输出段码OUT DX,ALMOV AL,AH MOV DX,388H ;输出位码 MOV CX,10000 ;延时,等待显示完成 LOOP1: DEC CXJNZ LOOP1 INC BP ;改变指针,指向下一个要显示的数字 SHR AH,1 ;调整位指针,选择下一个数码管 AND AH,AH ;判断是否完全输出JNZ DISPLAY MOV AH,11 ;11号功能调用,检查是否有按键输入INT 21H CMP AL,0 ;有输入时AL=0FFH,无输入时AL=00H JNE CHOOSE ;有输入则继续采集,无输入则退出 RETSTART ENDPCODE ENDSEND START

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1