微机原理A并行接口按键数码管显示讨论报告.docx
- 文档编号:27326613
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:13
- 大小:122.79KB
微机原理A并行接口按键数码管显示讨论报告.docx
《微机原理A并行接口按键数码管显示讨论报告.docx》由会员分享,可在线阅读,更多相关《微机原理A并行接口按键数码管显示讨论报告.docx(13页珍藏版)》请在冰豆网上搜索。
微机原理A并行接口按键数码管显示讨论报告
Lastrevisiondate:
13December2020.
微机原理A并行接口按键数码管显示讨论报告
讨论课报告
学校:
上海电机学院班级:
电子13XX学号:
XXXXXXXX姓名:
WX
一、题目:
通过8255A并行接口,8086CPU连接LED数码管、4X4矩阵键盘。
按下任意键,数码管显示对应键号。
二、硬件设计
讨论问题:
(1)CPU8086与8255A的连接问题:
●复用引脚上的数据信号与地址信号如何分离?
画出电路连接示意图,解释实现的方法。
答:
将8086上的20位复用数据地址引脚分别接数据缓存器和地址锁存器在8086总线周期的T1期间作为存储器/IO地址总线将地址锁存在地址锁存器中,另外期间作为数据总线将8位数据缓存在数据缓存器中。
缓存器与8255A数据引脚相连,地址锁存后经过译码与地址线相连。
●假设8255A的芯片地址范围为80H~86H(偶地址),利用74LS138译码器实现8255A芯片的片选控制,画出电路连接示意图,解释译码电路的设计原理。
8086系统有16根数据线,而8255A只有8根数据线,将8255A的8条数据线与低8位数据线相连。
此时8255A的4个端口地址必须为偶地址,即8086寻址8255A时A0脚必须为低,将8255A的A0、A1分别接8086的A1、A2脚。
由图可见,8255A的数据线D7~D0与8086的低8位数据总线D7~D0相连,A0必须总等于0,用地址线的A2、A1来选择片内4个端口。
图中地址线A7接译码器的G1,M/IO与G2a相连,A6、A5接或门输入端,或门输出与G2b相连。
当A7A6A5=100,A4A3A0=000时,Y0=0,选中8255A,4个端口地址分别为80H、82H、84H和86H,对应于8255A的A口、B口、C口和控制寄存器。
(2)LED数码管与8255A的连接问题:
●数码管采用共阴极连接,需要驱动电路,请画出与8255APA口的连接示意图,简要说明。
由图可见,8255A的A口作输入口,PA6~PA0分别接显示器LED7~LED0.二极管共阴极连接后接地电平,当PA口输出高电平时LED被电亮。
●共阴极LED七段数码管如要显示字符0~9,A~F,如何编制段码?
举例说明。
共阴极LED七段数码管连接如上图所示,
显示字符0时,a、b、c、d、e、f、g、h分别为
对应PA口输出二进制编码为1111110B即3FH。
同理其余编码如下表所示:
0
1
2
3
4
5
6
7
8
9
A
b
c
d
E
F
3FH
06H
5BH
4FH
66H
6DH
7DH
07H
7FH
6FH
77H
7CH
39H
5EH
79H
31H
(3)4*4矩阵键盘与8255A的连接问题:
●PC0~PC3接行线、PC4~PC7接列线,请画出与8255APC口的连接示意图,简要说明。
PC0~PC3接行线、PC4~PC7接列线,列线接高电平5v。
接线示意图如上图接线图所示:
其中当输入口检测到低电平说明有键按下。
●键值识别方法有扫描法与反转法,它们的识别原理是什么键值如何计算
扫描法原理:
依次从第一至最末行线上发出低电平信号,如果该行线所连接的键没有按下的话,则列线所接的端口得到的是全“1”信号,如果有键按下的话,则得到非全“1”信号。
反转法:
原理是先将行线作为输出线,列线作为输入线,行线输出全“0”信号,读入列线的值,那么在闭合键所在的列线上的值必为0;然后从列线输出全“0”信号,再读取行线的输入值,闭合键所在的行线值必为0。
这样,当一个键被按下时,必定可读到一对唯一的行列值。
再由这一对行列值可以求出闭合键所在的位置。
计算键值:
先判断键盘中有无键按下:
将全部行线置低电平,然后检测列线的状态。
只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。
若所有列线均为高电平,则键盘中无键按下。
再找键位置:
依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。
在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。
若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
3、软件设计
(1)程序结构问题:
●程序设计有几个段各个段的主要内容是什么
答:
有3个段。
分别为数据段、代码段和堆栈段。
数据段中存放数字0-9、A-F的LED显示代码。
堆栈段存放局部变量和函数返回地址。
代码段程序实现的主要内容都在里面,实现按键显示对应的数字。
流程图
8255A的芯片初始化程序设计。
MOVAX,DATAS
MOVDS,AX
MOVAL,B
MOVDX,CT_PORT
OUTDX,AL
MOVDX,C_PORT
按键去抖动程序设计。
MOVAL,0
OUTDX,AL
NO_KEY:
MOVDX,C_PORT
INAL,DX
ANDAL,0FH
CMPAL,0FH
JZNO_KEY
CALLDELAY10MS
INAL,DX
ANDAL,0FH
CMPAL,0FH
JZNO_KEY
采用扫描法实现键值识别程序设计。
MOVBL,0
LOOP1:
MOVCH,0EFH
MOVAL,CH
MOVDX,C_PORT
OUTDX,AL
INAL,DX
PUSHBX
MOVBH,0
MOVCX,4
LOOP3:
SHRAL,1
JNCLOP2
INCBH
LOOPLOOP3
ROLCH,1
CMPCH,0FEH
JNZLOOP1
JMPNO_KEY
键值计算的程序设计。
LOOP2:
MOVAH,BH
POPBX
MOVBH,AH;BH中是行号,BL是列号
SHLBH,1
SHLBH,1;BH*4
ADDBH,BL;键值=行号*4+列号
LEABX,TAB1
XLAT;键值换码后得到显示码(存AL中)
MOVDX,A_PORT
OUTDX,AL;显示码送到端口A,数码管显示相应值
CALLDELAY10MS
MOVAH,4CH
INT21H
LED数码管显示程序设计。
LOOP2:
MOVAH,BH
POPBX
MOVBH,AH;BH中是行号,BL是列号
SHLBH,1
SHLBH,1;BH*4
ADDBH,BL;键值=行号*4+列号
LEABX,TAB1
XLAT;键值换码后得到显示码(存AL中)
MOVDX,A_PORT
OUTDX,AL;显示码送到端口A,数码管显示相应值
CALLDELAY10MS
MOVAH,4CH
INT21H
1、讨论小结
通过本次讨论了解了可编程接口芯片8255A的功能、工作方式、硬件连接、编程结构。
通过对电路及程序的设计熟悉了可编程接口芯片的编程应用。
对可编程接口芯片8255A的编程应用能力有所提升。
进一步熟悉了微机系统的原理及汇编语言对具体电路的控制。
2、附件
DATASSEGMENT
TAB1DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;此处输入数据段代码
DATASENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVAL,B
MOVDX,CT_PORT
OUTDX,AL
MOVDX,C_PORT;此处输入代码段代码
MOVAL,0
OUTDX,AL
NO_KEY:
MOVDX,C_PORT
INAL,DX
ANDAL,0FH
CMPAL,0FH
JZNO_KEY
CALLDELAY10MS
INAL,DX
ANDAL,0FH
CMPAL,0FH
JZNO_KEY
MOVBL,0
LOOP1:
MOVCH,0EFH
MOVAL,CH
MOVDX,C_PORT
OUTDX,AL
INAL,DX
PUSHBX
MOVBH,0
MOVCX,4
LOOP3:
SHRAL,1
JNCLOP2
INCBH
LOOPLOOP3
ROLCH,1
CMPCH,0FEH
JNZLOOP1
JMPNO_KEY
LOOP2:
MOVAH,BH
POPBX
MOVBH,AH;BH中是行号,BL是列号
SHLBH,1
SHLBH,1;BH*4
ADDBH,BL;键值=行号*4+列号
LEABX,TAB1
XLAT;键值换码后得到显示码(存AL中)
MOVDX,A_PORT
OUTDX,AL;显示码送到端口A,数码管显示相应值
CALLDELAY10MS
MOVAH,4CH
INT21H
DELAY10MSPROC;延时程序
PUSHBX;现场保护
PUSHCX
WAITO:
MOVCX,2801;内循环次数
WAIT1:
LOOPWAIT1;延时10ms
DECBX
JNZWAITO
POPCX;现场恢复
POPBX
RET
DELAY10MSENDP
CODESENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 并行 接口 按键 数码管 显示 讨论 报告