第10章 AT89C51单片机与输入外设和输出外设的接口设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第10章 AT89C51单片机与输入外设和输出外设的接口设计1.下列项说法正确。

A.HD7279是一个用于键盘和LED显示器的专用接口芯片

B.在单片机与微型打印机的接口中,打印机的BUSY信号可作为查询信号或中断请求信号使用

C.为给扫描法工作的8 8键盘提供接口电路,在接口电路中只需要提供两个输入口和一个输出口

D.LED显示器的字型码是固定不变的

答:A.对;B.对;C.错;D.错。

2.为什么要消除按键的机械抖动?软件消除按键机械抖动的原理是什么?

答:在按键的闭合和断开过程中,由于开关的机械特性,导致了按键抖动的产生。如果不消除按键的机械抖动,按键的状态读取将有可能出现错误。消除按键抖动一般是采用软件或硬件去抖。软件去抖的原理是,在第一次检测到有键按下时,该键所对应的行线为低电平,执行一端延时10ms的子程序后,确认该行线电平是否仍然为低电平,如果仍为低电平,则确认该行确实有键按下。

3.LED的静态显示方式与动态显示方式有何区别?各有什么优缺点?答:静态显示时,数据是分开送到每一位LED上的。而动态显示时,则数据是同时送到每一个LED上,再根据位选线来确定是哪一位LED被显示。静态显示亮度很高,但口线占用较多。动态显示口线占用较少,适合用在显示位数较多的场合。

4.写出表10-1中仅显示小数点“.”的段码。

答:80H(共阴极);7FH(共阳极)。

5.说明矩阵式键盘按键按下的识别原理。

答:按键设置在行、列线交点上,行、列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V上,无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线的电平决定。列线的电平如果为低,则行线电平为低;列线的电平如果为高,则行线的电平亦为高。将行、列线信号配合起来并做适当的处理,才能确定闭合键的位置。

6.对于图10-10所示的键盘,采用线反转法原理编写出识别某一按键被

按下并得到其键号的程序。

答:先对P1口高4位送低电平,读取P1口低4位的值;再对P1口低4位送低电平,读取P1口高4位的值,将两次读到的值组合在一起就得到了按键的特征码,再根据特征码查找键值。参考程序如下:

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.键盘有哪3种工作方式,它们各自的工作原理及特点是什么?

答:(1)编程扫描方式。当单片机空闲时,才调用键盘扫描子程序,反复扫描键盘,等待用户从键盘上输入命令或数据,响应键盘的输入请求。

(2)定时扫描方式。单片机每隔一定的时间对键盘扫描一次。

(3)中断扫描方式。只有在键盘有键按下时,才执行键盘扫描程序并执行该按键功能程序,如果无键按下,单片机将不理睬键盘。

8.根据图10-11所示的电路,编写在6个LED显示器上轮流显示“1,2,3,4,5,6”的显示程序。

答:参见教材P170的显示程序。

9.简述TPP-40A/16A微型打印机的Centronics接口的主要信号线及功能,与AT89C51单片机相连接时,如何连接几条控制线?

答:DB0~DB7——数据线,单向传输,由单片机输入给打印机。STB(STROBE)——数据选通信号。在该信号的上升沿,数据线上的8位并行数据被打印机读入机内锁存。

BUSY——打印机忙状态信号。当该信号有效(高电平)时,表示打印机正忙于处理数据。此时,单片机不得使STB信号有效,向打印机送入新的数据。

ACK——打印机的应答信号。低电平有效,表明打印机已取走数据线上的数据。

ERR——出错信号。当送入打印机的命令格式出错时,打印机立即打印1行出错信息,提示出错。在打印出错信息之前。该信号线出现一个负脉冲,脉冲宽度为30νs。

用一条地址线来控制写选通信号STB和读取BUSY引脚状态。

10.如果把图10-25所示的打印机的BUSY线断开,然后与AT89C51单片机的线相接,请简述电路的工作原理并编写将以20H为起始地址的连续20个内存单元中的内容输出的打印程序。

答:本程序采用外部中断来完成数据打印,先打印一个数据,当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 @R0,A ;PC7=0

MOV A,#0FH

MOVX @R0,A ;PC7=1

相关文档
最新文档