第10章 AT89S51与键盘、显示器、拨盘、打印机的接口
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
参考
答案
八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案
1. 答:A. MAX7219是专用显示器芯片,不用于键盘;B.错:CH451芯片也可用于控制键盘;C.对: BUSY信号可作为查询信号或中断请求信号使用,但此时信号
不用;E.错:LED数码管的字型码是可以变的,例如表10-1中的“a”段对应段码字节的最高位。“dp”段对应段码字节的最低位,字型码就改变了。
2. 答:在按键的闭合和断开过程中,由于开关的机械特性,导致了按键抖动的产生。如果不消除按键的机械抖动,按键的状态读取将有可能出现错误。消除按键抖动一般是采用软件或硬件去抖。软件去抖的原理:在第一次检测到有键按下时,该键所对应的行线是为低电平,执行一端延时10ms的子程序后,确认该行线电平是否仍然为低电平,如果仍为低电平,则确认为该行确实有键按下。
3. 答:静态显示时,数据是分开送到每一位LED上的。而动态显示则是数据是同时送到每一个LED上,再根据位选线来确定是哪一位LED被显示。静态显示亮度很高,但口线占用较多。动态显示口线占用较少,适合用在显示位数较多的场合。
4. 答:80H(共阴极);7FH(共阳极)。
5. 答:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V上,无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平亦为高。将行、列线信号配合起来并做适当的处理,才能确定闭合键的位置。
6. 答:先对P1口高四位送低电平,读取P1口低四位的值;再对P1口低四位送低电平,读取P1口高四位的值,将两次读到的值组合在一起就得到了按键的特征码,在根据特征码查找键值。
KEYIN:
MOV
P1,#0FH
;反转读键
MOV
A,P1
ANL
A,#0FH
MOV
B,A
MOV
P1,#0F0H
MOV
A,P1
ANL
A,#0F0H
ORL
A,B
CJNE
A,#0FFH,KEYIN1
RET
;未按键
KEYIN1:
MOV
B,A
;暂存特征码
MOV
DPTR,#KEYCOD
;指向特征码表
MOV
R3,#0FFH
;顺序码初始化
KEYIN2:
INC
R3
MOV
A,R3
MOVC
A,@A+DPTR
CJNE
A,B,KEYIN3
MOV
A,R3
;找到,取顺序码
RET
KEYIN3:
CJNE
A,#0FFH,KEYIN2
;未完,再查
RET
;已查完,未找到,以未按键处理
KEYCOD:
DB
0E7H,0EBH,0EDH,0EEH
;特征码表
DB
0D7H,0DBH,0DDH,0DEH
DB
0B7H,0BBH,0BDH,0BEH
DB
77H,7BH,7DH,7EH
7. 答:(1)编程扫描方式:当单片机空闲时,才调用键盘扫描子程序,反复的扫描键盘,等待用户从键盘上输入命令或数据,来响应键盘的输入请求。(2)定时扫描工作方式:单片机对键盘的扫描也可用定时扫描方式,即每隔一定的时间对键盘扫描一次。(3)中断工作方式:只有在键盘有键按下时,才执行键盘扫描程序并执行该按键功能程序,如果无键按下,单片机将不理睬键盘。
8. 答:DB0-DB7:数据线,单向传输,由单片机输入给打印机。STB(STROBE):数据选通信号。在该信号的上升沿,数据线上的8位并行数据被打印机读入机内锁存。BUSY:打印机忙状态信号。当该信号有效(高电平)时,表示打印机正忙于处理数据。此时,单片机不得使STB信号有效,向打印机送入新的数据。ACK:打印机的应答信号。低电平有效,表明打印机已取走数据线上的数据。ERR:出错信号。当送入打印机的命令格式出错时,打印机立即打印1行出错信息,提示出错。在打印出错信息之前。该信号线出现一个负脉冲,脉冲宽度为30us。
单片机与打印机相连时,分为直接相连(图10-27)和通过扩展的并行I/O口82C55连接(图10-28)。直接相连时(图10-27),打印机在输入电路中有锁存器,在输出电路中有三态门控制,。没有读、写信号,只有握手线
、BUSY(或
),用一根地址线来控制写选通信号STB和读取BUSY引脚状态。图10-28所示为通过扩展的并行I/O口82C55连接的打印机接口电路。采用查询法,即通过读与82C55的PC0脚的相连的BUSY状态,来判断送给打印机的一个字节的数据是否处理完毕。也可用中断法(BUSY直接与单片机的
引脚相连)。
9.答:本程序采用外部中断来进行数据打印,先打印一个数据,当BUSY线从高电平变成低电平时,在打印下一个数据
ORG
0000H
LJMP
MAIN
ORG
0003H
LJMP
IN
ORG
0030H
MAIN:
SETB
EX0
;允许外部中断
SETB
IT0
SETB
EA
MOV
R0,#7FH
;控制口地址
MOV
A,#81H
;控制字
MOVX
@R0,A
MOV
R1,#20H
;数据区首地址
MOV
R2,#19
;计数器
MOV
A,@R1
;打印内容
MOV
R0,#7CH
;A口地址
MOVX
@R0,A
MOV
R0,#7FH
MOV
A,#0EH
MOVX
@RO,A
;PC7=0
MOV
A,#0FH
MOVX
@R0,A
;PC7=1
SJMP
$
IN:
DJNZ
R2,EX
;20个数据都结束了吗?
INC
R1
;指向下一个数据
MOV
A,@R1
MOV
R0,#7CH
MOVX
@R0,A
MOV
R0,#7FH
MOV
A,#0EH
MOVX
@RO,A
MOV
A,#0FH
MOVX
@R0,A
EX:
RETI
·2·
·1·
_1281985854.unknown
_1282030168.unknown
_1326604605.unknown
_1281985833.unknown