LJY第10章 MCS-51与键盘、显示器76318

合集下载

第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设计讲解

第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设计讲解

图10-8为8255A扩展I/O口的独立式按键接口电路。
图10-9用三态缓冲器扩展的I/O口的按键接口电路。
对图10-9独立式键盘编程,软件消抖,查询方式检测键 的状态。仅有一键按下时才有效才处理。
KEYIN:MOV DPTR,#0BFFFH;键盘端口地址BFFFH
MOVX A,@DPTR ;读键盘状态
通常,键盘工作方式有3种,即编程扫描、定时扫 描和中断扫描。
1. 编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序,
扫描键盘。
工作过程:
(1)在键盘扫描子程序中,先判断有无键按下。
方法:PA口8位输出全0,读PC口低4位状态,若PC0~ PC3为全1,则说明键盘无键按下;若不全为1,则说明 键盘可能有键按下。
PA口为输出口,控制键盘列线的扫描,同时又是6位 共阴极显示器的位扫描口。
PB口作为显示器段码输出口,PC口作为键盘的行线 状态的输入口。
75452:反相驱动器,7407:同相驱动器。
1.动态显示程序设计 内部RAM 6个显示缓冲单元:79H~7EH,存放要显示的
6位数据。 8155H的PB口输出相应位的段码,依次改变PA口输出为
显示字符 共阴极 共阳极 显示字符 共阴极 共阳极
段码 段码
段码 段码
0
3FH
C0H
c
39H
C6H
1
06H
F9H
d
5EH
A1H
2
5BH
A4H
E
79H
86H
3
4FH
B0H
F
71H
8EH
4
66H
99H
P
73H
8CH
5

第10章 MCS-51与键盘、显示器的接口设计

第10章 MCS-51与键盘、显示器的接口设计

第10章
MCS-51与键盘、显示器、打印机接口设计
矩阵式键盘接口—行动态扫描方法
+5V P1.0 P1.1
0 1
0 4 8 C
1 5 9 D
2 6 A E
3
第0行
7
第1行
B
89C51
1 P1.2
P1.3 1 P1.4 P1.5
第2行
F
第3行 第3列 第2列 第1列 第0列
38
1 1
1 P1.6 P1.7 1
29
第10章 MCS-51与键盘、显示器、打印机接口设计 KEYIN:MOV DPTR,#0BFFFH ;键盘端口地址BFFFH
MOVX A,@DPTR ANL A,#1FH MOV R3,A LCALL DELAY10 MOVX A,@DPTR ANL A,#1FH CJNE A,R3,RETURN CJNE A,#1EH,KEY2 LJMP KEY1 KEY2: CJNE A,#1DH,KEY3 LJMP KEY2 KEY3: CJNE A,#1BH,KEY4 LJMP KEY3 KEY4: CJNE A,#17H,KEY5 LJMP KEY4 KEY5: CJNE A,#0FH,PASS LJMP KEY5 RETURN: RET
第10章
MCS-51与键盘、显示器、打印机接口设计
矩阵式键盘接口—行动态扫描方法
+5V P1.0 P1.1
0 0
0 4 8 C
1 5 9 D
2 6 A E
3
第0行
7
第1行
B
89C51
0 P1.2
P1.3 0 P1.4 P1.5
第2行
F
第3行 第3列 第2列 第1列 第0列

第10章 MCS-51与键盘、显示器的接口设计

第10章 MCS-51与键盘、显示器的接口设计

2.去抖动措施: 2.去抖动措施: 去抖动措施 软件去抖动:执行一段延时10ms的子程序 软件去抖动:执行一段延时10ms的子程序 10ms 硬件去抖动: 硬件去抖动:如双稳态消抖电路
10.2.1 键盘接口的工作原理 10.2.1 1.独立式键盘接口 1.独立式键盘接口
含义: 含义: 各键相互独立,一个按键--一根输入口线。 各键相互独立,一个按键--一根输入口线。 --一根输入口线 式和查询方式2种 式和查询方式2 适用场合: 适用场合:适用于按键数较少或操作速度较高的场合
注:10-8和10-9,按键为外部RAM单元,MOVX
设计软件:请以 - 为电路 为电路, 设计软件:请以10-9为电路,采用软件去抖 动的方法,以查询方式检测, 动的方法,以查询方式检测,当且仅当有 一键按下时才予以识别, 一键按下时才予以识别,如有多键按下讲 不予处理。 不予处理。
此子程序如下: 此子程序如下:
按键未按下,输出为高 按键按下,输出为0 抖动时间一般为5~10ms
故确认一个按键是否按下的基本思想为: 故确认一个按键是否按下的基本思想为: ★在第一次检测到输出为低电平时,执行一段延时10ms 在第一次检测到输出为低电平时,执行一段延时10ms 10 的子程序后(去抖动), ),再次确任该行线电平是否仍为 的子程序后(去抖动),再次确任该行线电平是否仍为 低电平,仍为低,则确认有键按下,否则视为干扰。 低电平,仍为低,则确认有键按下,否则视为干扰。 确认键是否释放则同样须防抖动。 确认键是否释放则同样须防抖动。
为使LED显示不同的符号或数字,要为LED提供段码 为使LED显示不同的符号或数字,要为LED提供段码 LED显示不同的符号或数字 LED提供 (或称字型码)。 或称字型码)。 字型和段码可由设计者自行设计,习惯排序如下: 字型和段码可由设计者自行设计,习惯排序如下: 排序如下

MCS-51第10章MCS-51与键盘和显示器的接口设计幻灯片

MCS-51第10章MCS-51与键盘和显示器的接口设计幻灯片
非编码键盘 常见的为两种构造:独立式键盘和矩阵式键盘。 〔1〕独立式键盘 特点是:一键一线,各键相互独立,每个键各接一条 I/O口线,通过检测I/O输入线的电平状态,可容易地判断哪 个按键被按下,如图10-8所示。
图10-8 独立式键盘接口电路
对于图10-8的键盘,图中的上拉电阻保证按键释放时, 输入检测线上有稳定的高电平。
由于矩阵式键盘中行、列线为多键共用,各按键彼此将 相互发生影响,所以必须将行、列线信号配合,才能确定闭 合键位置。下面讨论矩阵式键盘按键的识别方法。
① 扫描法。第1步,识别键盘有无键按下;第2步,如 有键被按下,识别出具体的键位。
下面以图10-9所示的键3被按下为例,说明识别过程。
第1步,识别键盘有无键按下。先把所有列线均置为0, 然后检查各行线电平是否都为高,如果不全为高,说明有键 按下,否那么无键被按下。
图10-4为4位LED数码管静态显示器电路,各位可独立 显示,静态显示方式接口编程容易,但是占用口线较多。对 图10-4电路,假设用I/O口线接口,要占用4个8位I/O口。 因此在显示位数较多的情况下,所需的电流比较大,对电源 的要求也就随之增高,这时一般都采用动态显示方式。 2.LED动态显示方式
动态显示例如:
START: S1: S2:
DELAY: D2: D1: TABLE:
ORG MOV MOV MOV MOVC CJNE SJMP MOV MOV RL MOV MOV MOV LCALL INC SJMP MOV MOV NOP DJNZ DJNZ RET DB DB END
0000H DPTR,#TABLE R7,#07FH A,#00H A,@A+DPTR A,#01H,S2 START B,A A,R7 A P3,A R7,A P0,B DELAY DPTR S1 R5,#20 R6,#20

10单片机讲义(第十章MCS-51与键盘、显示器、打印机的接口设计))

10单片机讲义(第十章MCS-51与键盘、显示器、打印机的接口设计))
上页的显示程序),延迟6ms后,跳KEY1
AJMP KEY1 ; LK1: ACALL DIR ;可能有键闭合,延迟12ms,
软件去抖动
ACALL DIR ACALL KS1 ;延迟后再次调用判有无键闭合子程序
8155H的I/O口地址为 7F00H~7F05H
;经去抖动,判键确实闭合, 跳LK2去处理 ACALL DIR ;调用显示子程序延迟6ms AJMP KEY1 ;抖动引起,跳KEY1 LK2:MOV R2,#0FEH ;列选码→R2 MOV R4,#00H ;R4为列号计数器 LK4:MOV DPTR,#7F01H ;列选码→8155H 的PA口 MOV A,R2 ;列选码→A MOVX @DPTR,A ;从PA口送出列选码 INC DPTR ;数据指针增2,指向PC口
KEY3 0001 1101
KEY4:CJNE A,#17H,KEY5 LJMP PKEY4 KEYS:CJNE A,#0FH,PASS LJMP PKEY5 RETURN:RET PKEY1: …… PKEY2: …… PKEY3: …… PKEY4: ……
;S4键未按下,转KEY5
0001 0111
(PA口)均置为低电平,检查各行线(PC口)电平是否有变化
(2)去除键的机械抖动: 其方法为延迟一段时间再判别键
盘的状态。
(3)判别闭合键的键号: 方法为对键盘的列线进行逐列扫
描,扫描口PA0~PA7依次输出下列编码,即只有1列为低电平, 其余各列为高电平:(行列扫描法) PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 … … 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1

第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设计

第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设计

10 MCS-51

章 为使LED显示不同的符号或数字,要为LED提供段码 (或称字型码)。

键 提供给LED显示器的段码(字型码)正好是一个字
盘 、
节(8段)。各段与字节中各位对应关系如下:







打 印
按上述格式,8段LED的段码如表10-1所示。






10 MCS-51

表10-1 LED段码(8段)

MOV A,R3

盘 LD0: MOV DPTR,#7F01H ;位选码→PA口(PA.0位)
、 显
器 、
每位的段码线(a~dp)分别与一个8位的锁存器输出
拨 相连。

、 打
显示字符一确定,相应锁存器的段码输出将维持不
印 变,直到送入另一个段码为止。显示的亮度高。

的 接
图10-3: 4位静态LED显示器电路。该电路各位可
口 独立显示。


10 MCS-51
第 章










2. 动态显示方式

1. 键盘输入的特点
键盘:一组按键开关的集合。

键 盘
行线电压信号通过键盘开关机械触点的断开、闭合,
、 输出波形如图10-6。















10 MCS-51

2. 按键的确认

MCS-51第10章MCS-51与键盘和显示器的接口设计

MCS-51第10章MCS-51与键盘和显示器的接口设计

图10-6 8位LED动态显示过程和结果
动态显示的优点是硬件电路简单,显示器越多,优势越
明显。缺点是显示亮度不如静态显示的亮度高。如果“扫描” 速率较低,会出现闪烁现象。
静态显示示例:
ORG AJMP ORG START: MOV MOV MOV LOOP: CLR MOVC MOV MOV INC INC ACALL CJNE MOV MOV AJMP
SEG01: DB DB DB END
R5, #5 R6, #200 R7, #250 R7, $ R6, D1 R5, D2
0C0H,0F9H,0A4H 0B0H,99H,92H 82H,0F8H,80H,90H
动态显示示例:
START: S1:
S2:
DELAY: D2: D1:
TABLE:
ORG MOV MOV MOV MOVC CJNE SJMP MOV MOV RL MOV MOV MOV LCALL INC SJMP MOV MOV NOP DJNZ DJNZ RET DB DB END
况而定。显示位数多,将占大量的单片机时间,因此动态显
示的实质是以牺牲单片机时间来换取I/O端口的减少。 图10-6所示为8位LED动态显示2009.10.10的过程。图 10-6(a)所示为显示过程,某一时刻,只有一位LED被选 通显示,其余位则是熄灭的;图10-6(b)所示为实际的显
示结果,人眼看到的是8位稳定的同时显示的字符。
维持不变,直到送入另一个字符的段码为止。正因为如此,
静态显示方式的显示无闪烁,亮度都较高,软件控制比较容 易。
图10-4为4位LED数码管静态显示器电路,各位可独立
显示,静态显示方式接口编程容易,但是占用口线较多。对

第10章 MCS-51与键盘、显示器、

第10章 MCS-51与键盘、显示器、
图10-7(b)为查询方式的独立式键盘工作电路。
图10-8为8255A扩展I/O口的独立式按键接口电路。
图10-9用三态缓冲器扩展的I/O口的按键接 口电路。
对图10-9独立式键盘编程,软件消抖,查询方式检
测键的状态。仅有一键按下时才有效才处理。
KEYIN:MOV DPTR,#0BFFFH;键盘端口地址BFFFH
第10章 MCS-51与 键盘、显示器、拨
盘、打印机的接 口设计
信息技术教研室 温川雪
输入外设:键盘、BCD码拨盘等; 输出外设:LED显示器、LCD显示器、打印机等。
10.1 LED显示器接口原理
LED(Light Emitting Diode):发光二极管的缩写。 显示器前面冠以“LED”。
10.1.1 LED显示器的结构 常用的LED显示器为8段(或7段,8段比7段多了一 个小数点“dp”段)。
KEY4: CJNE A,#17H,KEY5 ;S4键未按下,转KEY5
LJMP PKEY4
;S4按下,转PKEY4处理
KEY5: CJNE A,#0FH,PASS ;S5未按下,转RETURN
LJMP PKEY5
;S5按下,转PKEY5处理
RETURN:RET
;重键或无键按下,从子程序返回
识别和编程简单,用在按键数较少的场合。
段码 段码
0
3FH
C0H
c
39H
C6H
1
06H
F9H
d
5EH
A1H
2
5BH
A4H
E
79H
86H
3
4FH
B0H
F
71H
8EH
4
66H

LJY第10章 MCS-51与键盘、显示器76318 (2)

LJY第10章 MCS-51与键盘、显示器76318 (2)
当键松开时, ①行线变高,软件延时10ms后, ②行 线仍为高,说明按键已松开。
采取以上措施,躲开了两个抖动期t1和t3的影响1。2
10.2.2 键盘接口的工作原理
独立式按键接口和行列式键盘接口。
1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检
测输入线的电平状态可很容易判断那个键被按下。
行线电平由列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发
生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 (2)按键的识别方法
a. 扫描法
b. 线反转法
20
(2)按键的识别方法
a. 扫描法
图10-10(b)中3号键被按下为例,来说明此键 时如何被识别出来的。 第1步:识别键盘有无键按下;
成各位的分时选通。
8
图10-4:4位8段LED动态显示电路。其中段码线占用一 个8位I/O口,而位选线占用一个4位I/O口。
9
图10-5为8位LED动态显示2003.10.10的过程。 图(a)是显示过程,某一时刻,只有一位LED被选通 显示,其余位则是熄灭的; 图(b)是实际显示结果,人眼看到的是8位稳定的同 时显示的字符。
测键的状态。仅有一键按下时才有效才处理。
KEYIN:MOV DPTR,#0BFFFH;键盘端口地址 MOVX A,@DPTR ;读键盘状态 ANL A,#1FH ;屏蔽高三位
MOV R3,A
;保存键盘状态值
LCALL DELAY10 ;延时10ms去键盘抖动
MOVX A,@DPTR ;再读键盘状态
ANL A,#1FH ;屏蔽高三位 CJNE A,R3,RETURN ;两次不同,抖动
RETURN

第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设计75987培训资料

第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设计75987培训资料

;屏蔽高三位 ;保存键盘状态值 ;延时10ms去键盘抖动
MOVX A,@DPTR ;再读键盘状态
ANL A,#1FH
;屏蔽高三位
CJNE A,R3,RETURN ;两次不同,抖动引起转RETURN
CJNE A,#1EH,KEY2 ;相等,有键按下,不等转KEY2
2020/8/15
LJMP PKEY1
2020/8/15
图10-4:4位8段LED动态显示电路。其中段码线占用一 个8位I/O口,而位选线占用一个4位I/O口。
2020/8/15
图10-5为8位LED动态显示2003.10.10的过程。 图(a)是显示过程,某一时刻,只有一位LED被选通
显示,其余位则是熄灭的; 图(b)是实际显示结果,人眼看到的是8位稳定的
LJMP PKEY4
;S4按下,转PKH,PASS ;S5未按下,转RETURN
LJMP PKEY5
;S5按下,转PKEY5处理
RETURN:RET
;重键或无键按下,从子程序返回
2020/8识/15别和编程简单,用在按键数较少的场合。
2. 行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成,
段对应段码的最低位。
2020/8/15
10.1.2 LED显示器工作原理 图10-2是4位 LED显示器的结构原理图。
N个LED显示块有N位位选线和8×N根段码线。 2020/8/15
段码线控制显示的字型,
位选线控制该显示位的亮或暗。
静态显示和动态显示两种显示方式。
1. 静态显示方式
各位的公共端连接在一起(接地或+5V)。 每位的段码线(a~dp)分别与一个8位的锁存器
按上述格式,8段LED的段码如表10-1所示。

MCS-51与键盘、显示器PPT课件

MCS-51与键盘、显示器PPT课件

KEY2: CJNE A,#1DH,KEY3 ;S2键未按下,转KEY3
LJMP PKEY2
;S2键按下,转PKEY2处理
KEY3: CJNE A,#1BH,KEY4 ;S3未按下,转KEY4
只要实现间隔足够短,由于LED显示器的余辉和人眼视觉
残留作用,造成多位同时点亮的假象。
13
段码 37E03H09HHH 字无符显CPU示
位控 信号
1
1
1
1
1
1
14
图10-5为8位LED动态显示2003.10.10的过程。
15
MOV DPTR,#TAB;表首地址
MOVC A,@A+DPTR;查表段码
下一时刻,位选信号选通下一位LED,同时,段选线
上输出相应要显示的字符的段码。EF03HHHHH 字字 字 字字符符符符符8C0-PU
位选 信号
Digit Select Signal
1
1
1
1
1
1
位选信号轮流选中每位LED灯,同时段码输出对应显示器
要显示的字符。
9
图10-4:4位8段LED动态显示电路。其中段码 线占用一个8位I/O口,而位选线占用一个4位 I/O口。
10
动态显示接口
11
000 001
此时同时向6位LED灯管输出相同的字符,如何 能实现显示多个不同字符?
扫描显示方式(Scan Display Mode):
某一时刻只选通一盏灯(其他5位是熄灭的),同时, 段选线上输出相应要显示的字符的段码。
则 “0”的段码为7EH(共阴)。
字型及段码由设计者自行设定,习惯上还是以“a”
段对应段码的最低位。

LJY第10章 MCS-51与键盘、显示器

LJY第10章 MCS-51与键盘、显示器
共阳极 段码 C0H 显示字符 c 共阴极 段码 39H 共阳极 段码 C6H
1 2
3 4 5 6 7 8
06H 5BH
4FH 66H 6DH 7DH 07H 7FH
F9H A4H
B0H 99H 92H 82H F8H 80H
d E
F P U T y H
5EH 79H
71H 73H 3EH 31H 6EH 76H
DIR1:
MOVX @DPTR,A ;段码→8155HPB口 ACALL DL1ms ;该位显示1ms INC R0 ;指针指向下一个数据单元 MOV A,R3 ;位选码送入A中 JB Acc.5,LD1 ;判断是否扫描到最右边的 RL A ; LED,如到最右边则返回 ;位选码向左移一位
; 右边的下一位LED亮 MOV R3,A ;位选码送R3中保存 AJMP LD0 ; LD1: RET ; DSEG: DB 3FH,06H,5BH,4FH,66H,6DH ;共阴段码
工作过程: (1)在键盘扫描子程序中,先判断有无键按下。 (2)用软件来消除按键抖动的影响。如有键按下, 则进行下一步。 (3)求按下键的键号。
(4)等待按键释放后,再进行按键功能的处理操作。
26
2. 定时扫描工作方式 利用单片机内的定时器,产生10ms的定时中断, 对键盘进行扫描。 3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序, 如无键按下,单片机将不理睬键盘。
DB DB 7DH,07H,7FH,6FH,77H,7CH 39H,5EH,79H,71H,73H,3EH
37
DL1ms: DL: DL6:
DB 31H,6EH,1CH,23H,40H,03H DB 18H,00H MOV R7,#02H ;延时1ms子程序 MOV R6,#0FFH DJNZ R6,DL6 DJNZ R7,DL RET

名师推荐第10章 MCS-51与键盘、显示器、(1)

名师推荐第10章 MCS-51与键盘、显示器、(1)

CJNE A,#1EH,KEY2 ;相等,有键按下,不等转KEY2
LJMP PKEY1
;是K1键按下,转K1键处理 ;子程序PKEY1
KEY2: CJNE A,#1DH,KEY3 ;S2键未按下,转KEY3
LJMP PKEY2
;S2键按下,转PKEY2处理
KEY3: CJNE A,#1BH,KEY4 ;S3未按下,转KEY4
图10-7(b)为查询方式的独立式键盘工作电路。
图10-8为8255A扩展I/O口的独立式按键接口电路。
图10-9用三态缓冲器扩展的I/O口的按键接 口电路。
对图10-9独立式键盘编程,软件消抖,查询方式检
测键的状态。仅有一键按下时才有效才处理。
KEYIN:MOV DPTR,#0BFFFH;键盘端口地址BFFFH
第10章 MCS-51与 键盘、显示器、拨
盘、打印机的接 口设计
信息技术教研室 温川雪
输入外设:键盘、BCD码拨盘等; 输出外设:LED显示器、LCD显示器、打印机等。
10.1 LED显示器接口原理
LED(Light Emitting Diode):发光二极管的缩写。 显示器前面冠以“LED”。
10.1.1 LED显示器的结构 常用的LED显示器为8段(或7段,8段比7段多了一 个小数点“dp”段)。
原则:即要保证能及时响应按键操作,又不要过多占 用CPU的工作时间。
通常,键盘工作方式有3种,即编程扫描、定时扫 描和中断扫描。
1. 编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序, 扫描键盘。
工作过程:
(1)在键盘扫描子程序中,先判断有无键按下。
方法:PA口8位输出全0,读PC口低4位状态,若PC0~ PC3为全1,则说明键盘无键按下;若不全为1,则说明 键盘可能有键按下。

MCS-51第10章MCS-51与键盘和显示器的接口设计 (2)

MCS-51第10章MCS-51与键盘和显示器的接口设计 (2)
① 扫描法。第1步,识别键盘有无键按下;第2步,如有 键被按下,识别出具体的键位。
下面以图10-9所示的键3被按下为例,说明识别过程。
第1步,识别键盘有无键按下。先把所有列线均置为0, 然后检查各行线电平是否都为高,如果不全为高,说明有键 按下,否则无键被按下。
例如,当键3按下时,第1行线为低,还不能确定是键3 被按下,因为如果同一行的键2、1或0之一被按下,行线也 为低电平。只能得出第1行有键被按下的结论。
;调用延时子程序,软件去键抖动
MOV A,P1
;再一次读入8个按键的状态
CJNE A,R3,RETURN;两次键值比较,不同, ;是抖动引起,转RETURN
KEY0: MOV C,P1.0;有键按下,读P1.0的按键状态 JC KEY1 ;P1.0为高,该键未按下,跳KEY1, ;判下一个键 LJMP PKEY0 ;P1.0的键按下,跳PKEY0处理
机对话的主要手段。 10.2.1 键盘输入应解决的问题 1.键盘的任务
任务有三项: (1) 判别是否有键按下?若有,进入下一步工作。 (2)识别哪一个键被按下,并求出相应的键值。 (3)根据键值,找到相应键值的处理程序入口。
2.键盘输入的特点 常见键盘:触摸式键盘、薄膜键盘和按键式键盘,最常
用的是按键式键盘。按键实质上就是一个开关。如图10-7 (a)所示,按键开关的两端分别连接在行线和列线上,通 过键盘开关机械触点的断开、闭合,其行线电压输出波形如 图10-7(b)所示。
单片机采用“扫描”方式控制各个数码管轮流显示。
图10-4 4位LED静态显示电路
在多位LED显示时,为简化硬件电路,通常将所有显示 位的段码线的相应段并联在一起,由一个8位I/O口控制,而 各位的共阳极或共阴极分别由相应的I/O线控制,形成各位的 分时选通。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
而形成的, “0”的段码为3FH(共阴)。反之, 如 将格式改为下列格式:
则 “0”的段码为7EH(共阴)。 字型及段码由设计者自行设定,习惯上还是以“a” 段应段码的最低位。
6
10.1.2 LED显示器工作原理 图10-2是4位 LED显示器的结构原理图。
段码线控制显示的字型, 位选线控制该显示位的亮或暗。
LJY第10章 MCS-51与键盘、显示器76318
单击此处添加副标题内容
第10章 MCS-51与键盘、显示器、拨盘、打印机的接口设 计
输入外设:键盘、BCD码拨盘等; 输出外设:LED显示器、LCD显示器、打印机等。
10.1 LED显示器接口原理 LED(Light Emitting Diode):发光二极管的缩写。
LK4:MOV DPTR,#7F01H ;列选码→8155H的PA
MOV A,R2
MOVX DPTR,A
INC DPTR
;数据指针增2,指向PC口
INC DPTR
MOVX A,DPTR;读8155H PC口
JB Acc.0,LONE;0行线为高,无键闭合,跳 LONE,转判1行
LJMP PKEY3 ;S3按下,转PKEY3处理
KEY4: CJNE A,#17H,KEY5 ;S4键未按下,转KEY5
LJMP PKEY4 ;S4按下,转PKEY4处理
KEY5: CJNE A,#0FH,PASS ;S5未按下,转
RETURN
LJMP PKEY5 ;S5按下,转PKEY5处理
RETURN:RET
23
(2)按键的识别方法 b. 线反转法 第1步:列线输出为全低电平,则行线中电平由高变低 的所在行为按键所在行。
第2步:行线输出为全低电平,则列线中电平由高变低 所在列为按键所在列。
结合上述两步,可确定按键所在行和列。
24
(3)键盘的编码 根据实际需要灵活编码。
25
10.2.3 键盘的工作方式 单片机在忙于各项工作任务时,如何兼顾键盘的输
第2层:确定具体按键的键号。体现在按键的识别方 法上就是:①扫描法;②线反转法。
第3层:执行键处理程序。
30
10.3 键盘/显示器接口设计实例 一般把键盘和显示器放在一起考虑。
10.3.1 利用并行I/O芯片实现键盘/显示器接口 图10-14:8031用扩展I/O接口芯片8155H实现的
6位LED显示和32键的键盘/显示器接口电路。图中 8155H也可用8255A来替代。
27
2. 定时扫描工作方式 利用单片机内的定时器,产生10ms的定时中断,
对键盘进行扫描。 3.中断工作方式
只有在键盘有键按下时,才执行键盘扫描程序, 如无键按下,单片机将不理睬键盘。
28
键盘所做的工作分为三个层次
29
第1层:单片机如何来监视键盘的输入。三种工作方 式:①编程扫描②定时扫描③中断扫描。
31
32
8031外扩一片8155H。 RAM地址:7E00H~7EFFH。 I/O口地址:7F00H~7F05H。
PA口为输出口,控制键盘列线的扫描,同时又是6 位共阴极显示器的位扫描口。
PB口作为显示器段码输出口,PC口作为键盘的行 线状态的输入口。
75452:反相驱动器,7407:同相驱动器。
MOVX DPTR,A
INC DPTR
;数据指针指向PB口
MOV A,R0 ;显示数据→A
ADD A,#0DH ;加偏移量(到表首间 ;所有指令占的单元数)
MOVC A,A+PC ;根据显示数据查表段码
37
DIR1: MOVX DPTR,A ;段码→8155HPB口
ACALL DL1ms ;该位显示1ms
33
1.动态显示程序设计
8031内部RAM 6个显示缓冲单元: 79H~7EH,存放要显示的6位数据。
①8155H的PB口输出相应位的段码, ②依次改变PA口输出为高的位使某一 位显示某一字符,其它位为暗。动态地显示 出由缓冲区中显示数据所确定的字符。
34
硬件资源: A口:位选线(输出) B口:段码线(输出) 8155地址分配 7F00:命令、状态 7F01:A 7F02:B 7F03:C 7F04:定时初值 7F05:定时初值
此种接口适于键数较少或操作速度较高的场合。
图10-7(a)为中断方式的独立式键盘工作电路
图10-7(b)为查询方式的独立式键盘工作电路。
14
15
图10-8为8255A扩展I/O口的独立式按键接口电路。
16
图10-9用三态缓冲器扩展的I/O口的按键接口电
路。
17
对图10-9独立式键盘编程,软件消抖,查询方式检测 键的状态。仅有一键按下时才有效才处理。
40
硬件资源: A口:列线(输出) C口:行线(输入) 8155地址分配 7F00:命令、状态 7F01:A 7F02:B 7F03:C
软件变量、资源: 列选码 R2→A口 列计数 R4
41
键盘子程序如下: KEYI:ACALL KS1;调用判有无键闭合子程序
JNZ LK1 ;有键闭合,跳LK1 NI: ACALL DIR;无键闭合,调用显示子程序,延
按上述格式,8段LED的段码如表10-1所示。
4
表10-1 LED段码(8段)
显示字符 共阴极 共阳极 显示字符 共阴极 共阳极
段码 段码
段码 段码
0
3FH C0H
c
39H C6H
1
06H F9H
d
5EH A1H
2
5BH A4H
E
79H 86H
3
4FH B0H
F
71H 8EH
4
66H 99H
P
73H 8CH
;迟6ms后,跳KEYI AJMP KEYI LK1:ACALL DIR;可能有键闭合,软件延迟12ms去抖 ACALL DIR ACALL KS1 ;调用判有无键闭合子程序 JNZ LK2;经去抖,判键确实闭合,跳LK2 ACALL DIR;调用显示子程序延迟6ms AJMP KEYI;抖动引起,跳KEYI LK2:MOV R2,#0FEH ;列选码→R2 MOV R4,#00H ;R4为列号计数器 42
当键松开时, ①行线变高,软件延时10ms后, ②行 线仍为高,说明按键已松开。
采取以上措施,躲开了两个抖动期t1和t3的影响1。3
10.2.2 键盘接口的工作原理
独立式按键接口和行列式键盘接口。
1.独立式键盘接口 各键相互独立,每个按键各接一根输入线,通过检 测输入线的电平状态可很容易判断那个键被按下。
9
图10-4:4位8段LED动态显示电路。其中段码线占用 一个8位I/O口,而位选线占用一个4位I/O口。
10
图10-5为8位LED动态显示2019.10.10的过程。 图(a)是显示过程,某一时刻,只有一位LED被选通 显示,其余位则是熄灭的; 图(b)是实际显示结果,人眼看到的是8位稳定的同 时显示的字符。
入,取决于键盘的工作方式。 原则:即要保证能及时响应按键操作,又不要过多占 用CPU的工作时间。 通常,键盘工作方式有3种: 编程扫描、定时扫描和中断扫描。
26
1. 编程扫描方式 只有当单片机空闲时,才调用键盘扫描子程序,
扫描键盘。 工作过程: (1)在键盘扫描子程序中,先判断有无键按下。
(2)用软件来消除按键抖动的影响。如有键按下, 则进行下一步。 (3)求按下键的键号。 (4)等待按键释放后,再进行按键功能的处理操作。
35
软件变量、资源: 显示段码数据R0→B口 段码表 显示位选数据R3→A口 软件延时程序
36
参考程序:
DIR: MOV R0,#79H ;置缓冲器指针初值
MOV R3,#01H ;位选码的初值送R3
MOV A,R3
LD0: MOV DPTR,#7F01H;位选码→PA口(PA.0位 ;最左边LED亮
DB 7DH,07H,7FH,6FH,77H,7CH
38
DB 31H,6EH,1CH,23H,40H,03H
DB 18H,00H
DL1ms: MOV R7,#02H ;延时1ms子程序
DL:
MOV R6,#0FFH
DL6: DJNZ R6,DL6
DJNZ R7,DL
RET
39
2.键盘程序设计 (1)判别键盘上有无键闭合 (2)去除键的机械抖动 (3)判别闭合键的键号 (4)使CPU对键的一次闭合仅作一次处理
KEYIN:MOV DPTR,#0BFFFH;键盘端口地

MOVX A,DPTR;读键盘状态
ANL A,#1FH ;屏蔽高三位
MOV R3,A
;保存键盘状态值
LCALL DELAY10 ;延时10ms去键盘
抖动
AMNOLVXA,A#,1DFPHTR;;屏再蔽读高键三盘位状态
CJNE A,R3,RETURN ;两次不同,抖动
;重键或无键按下,从子程序返回
识别和编程简单,用在按键数较少的场合。 19
2. 行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成,
按键位于行、列的交叉点上。如图10-10所示。
按键数目较多的场合,行列式键盘与独立式键盘 相比,要节省很多的I/O口线。
20
(1)行列式键盘工作原理 无键按下,该行线为高电平,当有键按下时,行
11
10.2 键盘接口原理 1. 键盘输入的特点
键盘:一组按键开关的集合。 行线电压信号通过键盘开关机械触点的断开、闭合, 输出波形如图10-6。
12
2. 按键的确认
检测行线电平 高电平:断开;低电平:闭合
3.如何消除按键的抖动 常用软件来消除按键抖动。
基本思想:①检测到有键按下,键对应的行线为低, 软件延时10ms后,②行线如仍为低,则确认该行有键 按下。
相关文档
最新文档