第16讲键盘及显示器接口

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

INC R0
;指向下一个地址
DJNZ R1,RXDATA ;未读完一组数据,继续
DJNZ R7,START ;5组数据未读完重新并行置入
……
;对数据进行处理
用74LS164扩展并行输出口.
74LS164:8位串入并出移位寄存器。
下图是利用74LS164扩展二个8位并行输出口的接 口电路。
例 编写将内部RAM单元30H、31H的内容经串行口 由74LS164并行输出子程序。
在清除端保持高电平时,才具有锁存功 能,锁存控制端为11脚CLK,采用上升 沿锁存。 CPU 的ALE信号必须经过反相 器反相之后才能与74LS273的控制端 CLK 端相连。
编写程序把按钮开关状态通过图中的发 光二极管显示出来。程序如下:
DDIS:MOV DPTR,#0FEFFH ;输入口地址→DPTR
单片机系统的扩展
• 一、存储器的扩展 • 二、I/O端口的扩展
8155引脚图
PC 3
PC 4 T IM E R IN
R ESET PC 5
T IM E R O U T
IO /M
CE RD WR A LE AD0 AD1 AD2 AD3 AD4 AD5 AD6
AD7
V SS
1
40
2
39
3
38
4
37
;键扫描程序
CLR P1.0
;先扫描第1行
MOVX A,@DPTR ;读入按键状态
MOV 37H,A
;暂存按键状态
CPL A

JZ KSK1
;0~7号键没有键操作,则跳
LCALL DL20
;0~7号键有操作,则延时去抖
MOVX A,@DPTR ;再读键状态
XRL A,37H
;和延时前的状态一样吗?
JZ KS1
LP: MOVX A,@DPTR
;按钮开关状态读入A
MOVX @DPTR,A ;A中数据送输出口
SJMP LP
;反复连续执行
3)用MCS-51的串行口扩展并行口 用74LS165扩展并行输入口
串行口控制寄存器SCON
SCON 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
(98H) SM0 SM1 SM2 REN TB8 RB8
5
36
6
35
7
34
8
33
9
32
10百度文库11
8155
31 30
12
29
13
28
14
27
15
26
16
25
17
24
18
23
19
22
20
21
VCC
PC 2 PC 1 PC 0
PB 7 PB 6
PB 5 PB 4 PB 3 PB 2 PB 1 PB 0 PA 7 PA 6 PA 5 PA 4 PA 3
PA 2 PA 1 PA 0
非编码式键盘识别闭合键通常有两种方法: 一种称为行扫描法,另一种称为线反转法。
• 行扫描法:
• 所谓行扫描法,就是通过行线发出低电平 信号,如果该行线所连接的键没有按下的 话,则列线所连接的输出端口得到的是全 “1”信号;如果有键按下的话,则得到的 是非全“1”信号。
• 3.如何消除键的抖动
• 由于按键为机械开关结构,因此机械触点 的弹性及电压突跳等原因,往往在触点闭 合或断开的瞬间会出现电压抖动。
2)用74LSTTL电路扩展并行I/O口
利用74LS273和74LS244,将P0口扩展成简单的输入、 输出口的电路。
74LS273输出端接8个LED发光二极管,以显示8个按 钮开关状态,某位低电平时二极管发光。
74LS244是缓冲驱动器,扩展输入口,接8个按钮开 关。
• 74ls273:是带有清除端的8D触发器,只有
MOV R1,#02H ;设置每组字节数,即外扩
;74LS165的个数
RXDATA: MOV SCON,#10H ;设串口方式0,允许接收,启动 WAIT: JNB RI,WAIT ;未接收完一帧,循环等待
CLR RI
;清RI标志,准备下次接收
MOV A,SBUF ;读入数据
MOV @R0,A
;送至RAM缓冲区
• 软件去抖:调用延迟子程序
• 硬件去抖:加锁存器
• 4.键的保护
• 键的保护问题指的是当有双键或多 键同时按下时会出现什么问题以及如何 加以解决。一旦出现这样情况,一般作为 废键处理。
P1.1 P1.0
P0.0 P0.1 P0.2
8051 P0.3
P0.4 P0.5 P0.6 P0.7 P2.7
;一样,则转去查询键号
SETB P1.0
;开始扫描第2行
CLR P1.1
TI
RI
例: 从16位扩展口读入5组数据(每组二个字节), 节并把它们转存到内部RAM 20H开始的单元中。
MOV R7,#05H ;设置读入组数
MOV R0,#20H ;设置内部RAM数据区首址
START: CLR P1.0
;并行置入数据,S/L*=0
SETB P1.0
;允许串行移位,S/L*=1
RD
键盘接口举例
74HC245
B0
A0
B1
A1
B2
A2
B3
A3
B4
A4
B5
A5
B6
A6
B7
A7
DIR
E
1
08
19 2A 3B
4C 5D
6E 7F
VCC R 8
键盘扫描的程序(采用查询方法)
• KS: • • • • • • • • • • KSK1: • • • • • • •
MOV DPTR,#7FFFH

(1)键的识别;

(2)如何消除键的抖动;

(3)键的保护。
• 在以上几个问题中,最主要的是键的识 别。
• 非编码式键盘的结构与工作原理 • 1.非编码式键盘的结构

+5V X3 12 13 14 15 X2 8 9 10 11 X1 4 5 6 7 X0 0 1 2 3
Y0 Y1 Y2 Y3
• 2.非编码式键盘的工作原理
;取下一个数 ;未完,发完从子程序返回
键盘接口
• 键盘实际上是由排列成矩阵形式的一系 列按键开关组成的,它是单片机系统中 最常用的人机联系的一种输入设备。用 户通过键盘可以向CPU输入数据、地址 和命令。
• 键盘按其结构形式可分为编码式键盘和 非编码式键盘两大类。

• 单片机系统中普遍使用非编码式键盘。 这类键盘应主要解决以下几个问题:
START: MOV R7,#02H ;设置要发送的字节个数
MOV R0,#30H ;设置地址指针
MOV SCON,#00H ;设置串行口为方式0 SEND: MOV A,@R0
WAIT:
MOV JNB CLR INC DJNZ
SBUF,A TI,WAIT TI R0 R7,SEND
;启动串行口发送过程 ;1帧数据未发完,循环等待
相关文档
最新文档