1、键控数据采集及数值显示电路设计 二、设计任务按不同的数字键(0、1、2、3、4、5、6、7)采集0809相应数据通道的模拟量,并在LED数码管上显示值。设定输入模拟量在05V范围内,显示值在0255范围内。三、设计要求1.画出连接线路图或功能模块引脚连接图。2.采用8088CPU作主控制器,0809作A/D转换器,采用直接地址译码方法,给各芯片分配地址,选取芯片中必须包含有8255。3.采用3个共阴极型LED动态显示,只需显示0255范围内的值。四、设计思想及需要用的主要芯片1、设计思想 首先通过编程对8255初始化,然后通过8255对ADC0809转换器初始化,通过07号按键(在这里07号按
2、键用开关实现,有按键的过程中会有抖动,所以需要加入一个74LS244芯片,用于缓冲),经8088微处理器处理后选择ADC0809的模拟通道,将05V内的模拟量通过选择的模拟通道传递给模数转换器,通过转换器把模拟量转换为0255之间的数字量,将数字量通过可编程并行接口8255(在这里端口A作为数据输入端,端口B作为数据输出端,端口C作为控制端),送给LED数码管显示。2.主要芯片及其功能 ADC0809是8位逐次逼近式A/D转换器。片内有8路模拟开关及地址锁存与译码电路、8位A/D转换和三态输出锁存缓冲器。其芯片引脚图如下8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/
3、O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。74LS244是数据输入三态缓冲器。外设输入的数据和状态信号,通过数据输入三态缓冲器井经过数据总线传递给微处理器。8个数据输入端与外设相连,8个数据输出端与微型计算机的数据总线相连。其引脚图如下74LS273是数据输出寄存器。8个输入端微型计算机的数据总线相连,8个数据输出端与外设相连,由时终端控制数据的写入。六、流程图:七、源程序代码STACK SEGMENTDW 32 DUP(0)STACK ENDPDATA SEGMENGBUF DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H ;09的字
4、形码IBUF DB 4,0,4 DUP(0) ;分配空间,为存储数据做准备DATA ENDSCODE SEGMENTSTART PROC FARASSUME CS:CODE,DS:DATA,SS:STACKPUSH DSSUB AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV DX,383H ;8255控制字寄存器的端口地址MOV AL,83H ;方式选择字OUT DX,ALLOP1: MOV AL,0MOV DX,005H ;读74LS244芯片地址IN AL,DX ;读74LS244端口地址AND AL,OFFHJZ LOP5MOV BL,0LOP2:CMP AL,0
5、1H ;将按键转化成相应的数字 JE LOP3 SHR AL,1 INC BL JMP LOP2LOP3:MOV AL,BL OUT DX,AL ; 启动A/D转换并选择通道MOV DX,382H ;PC端口地址LOP4:IN AL,DX TEST AL,01H ;为1表示转换结束,否则继续等待JZ LOP4MOV DX,383H ;控制字寄存器的端口地址MOV AL,80H ;写OE让其有效MOV AL,1 ;PC端口选择位置位字将ADC0809的EOC改为高电平有效MOV AL,0BH;使OE有效,允许输出MOV DX,383HMOV 90H ;将PA端口设置为输入MOV DX,380H
6、;写PA端口,将转化结果写入8255设置控制字,将PB端口设置为输出MOV AL,80HMOV DX,381H ;读PB端口LOP5:MOV CL,10MOV AH,0BEGIN:DIV CLMOV BP,OFFSET IBUF ;依次将百位,十位,个位存入IBUFMOV BP+4,AHMOV BP+3,AHMOV BP+2,AHMOV BP+5,0DH ;存入回车符MOV AH,04H ;用于操作七段显示器的位码SHOW:MOV BL,DS:BP+2MOV BH,0MOV AL,BUFBX ;取出BCD数七段显示码,用于显示74LS273端口地址,输出端码MOV AL,AHMOV DX,38
7、4H ;输出位码MOV CX,1000 ;延时LOOP $INC BP ;调整指向BCD码的指针,用于显示下一个数字SHR AH,1 ;调整位码指针,是的下一个七段显示器有效AND AH,AH ;判断三位数字是否已经完全输出JNZ SHOW ;没有输入完,则跳转至SHOWMOV AH,11 ;检测有无输入INT 21HCMP AL,0JNZ LOP1 ;若有按键,则返回继续选择通道继续执行RETSTART ENDPCODE ENDSEND START八、实验小结此次试验对于我来说是一次历练,由于我们在做实验时做的题目相对于这一次的课程设计来说要简单,所以开始拿到题目是有一些茫然。冷静下来后开始
8、分析题目,首先得知道题目究竟要我们做什么,实现什么功能。然后拿着我们的微机原理、汇编与接口技术课本,分析一个个学过的芯片,看它能够实现什么功能,分析芯片的引脚应该怎样连接。除了已经要求必须要用到的主要芯片,还需要找出一些辅助芯片,看究竟用哪一个芯片,能够是连接的电路图能够更加的简介。在画硬件电路图上我也遇到了问题,由于没有选修电子电路CAD那门课,我一开始对Protel软件完全不熟悉,所以开始完全不知道图怎么画,最后请教的同学,他们教我怎样选择芯片、怎样选择一些元器件、怎样连接试图看起来更加清晰。在Protel软件里面所有芯片内部的接Vcc的引脚和接地的引脚都没有显示,再此加以说明。在实现功能的时候自己也遇到了一些麻烦,比如我们一般做试验的时候,实验室里面不需要我们对如何实现8086芯片的功能进行连线,只需把相应的数据总线等与其他的芯片连接起来即可,且许多芯片的内部已经接好,不需要我们另外连接。在该课程设计中模拟量是05V,我在这里在ADC0809的ref(+)和ref(-)端分别接+5V和地,在在它们之间接一个滑动变阻器来实现。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1