单片机数码管显示
一.LED显示器接口原理
2.LED数码管的译码:硬件译码与软件译码 +5V 8051 (3)软件译码特点: P1.0 不用专用的译码/驱动器件, P1.1 a f b P1.2 g 驱动功率较小;不增加硬件 P1.3 P1.4 的开销;软件编程较复杂; e c P1.5 d P1.6 h 字型灵(比如:有八段,只可 P1.7 共阳LED 译多种字符,字型好看……)。 八段LED数码管段代码编码表(连线不同可有多种表):
3.键盘的工作方式 (3)中断工作方式
——采用中断扫描,可 提高扫描键盘的效率。 如:
+5V
8031 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
与门
INT0
3.键盘的工作方式——按键盘的分类 (1)独立式键盘接口——直接式
+5V +5V
8031 P1.0 8031 P1.0 P1.1 P1.2
• • • • • • • • • • • • • •
JNB
ACC.0,LD1 ;判是否发完8个数? RR A ;R1指向下一个位 MOV R3,A ;位选信号存回R1 SJMP LD0 ;跳去再显示下一个数 LD1: RET ;发完8个数就返回 DSEG:DB 3FH, 06H,5BH,4FH,67H;共阴译码表 DB 6DH, 7DH, 07H, 7FH,6FH DB 77H,7CH,39H,5EH,79H,71H DL1: MOV R7,#02H ;延时1ms子程序 DL0: MOV R6,#F9H DL10:DJNZ R6,DL10 DJNZ R7,DL0 RET
有几个LED就要几个74LS164,但只要数据不变, 送一次就保持住了,且不闪烁,编程十分简单。
要求:根据上图编写通过串行口和74LS164驱动共 阳LED数码管查表显示的子程序。 条件:系统有6个LED数码管,待显数据(00H—09H) 已放在35H—30H单元中(分别对应十万位→个位),
DSPLY:MOV DPTR, #TABLE ;共阳LED数码管译码表首址 MOV R0,#30H ;待显数据缓冲区的个位地址 REDO:MOV SCON,#00H MOV A, @R0 ;通过R0实现寄存器间接寻址 MOVC A, @A+DPTR ;查表 MOV SBUF, A ;经串行口发送到74LS164 JNB TI, $ ;查询送完一个字节的第8位? CLR TI ;为下一字节发送作准备 INC R0 ;R0指向下一个数据缓冲单元 CJNE R0,#06H,REDO ;判断是否发完6个数? RET ;发完6个数就返回 TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H ;共阳LED译码表 DB 92H, 82H, 0F8H, 80H,90H
P1.1
P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
P1.3
P1.4 P1.5
P1.6
P1.7
与门
INT0
图10-7 独立式键盘接口
查询方式 中断方式
独立连接式键盘例1
ORG 0003H LJMP KEY ………… KEY: JNB P1.0,FUNC1 ;逐键判别 JNB P1.1,FUNC2 JNB P1.2,FUNC3 JNB P1.3,FUNC4 RETI ;无任何键按下由此返回 FUNC1: …… ;做P1.0要求的“功能1” RETI FUNC2: …… ;做P1.1要求的“功能2” RETI FUNC3: …… ;做P1.2要求的“功能3” RETI FUNC4: …… ;做P1.3要求的“功能4” RETI
接高电平
公共阳极
f e
a g d
b c h
h g f …… a
h g f e d c b a
低电平点亮
D7 D6
D5 D4 D3 D2 D1 D0
dp g
f
e
d
c
b
a
一位显示器由8个发光二极管 组成,其中,7个发光二极管 构成字型“8”的各个笔划 (段)a~g,另一个小数点为dp 发光二极管。 当在某段发光二极管上施加一 定的正向电压时,该段笔划即 亮;不加电压则暗。为了保护 各段LED不被损坏,须外加限 流电阻。
DIS:
A,#03H ;写命令字 DPTR,#7F00H ;指向命令寄存器 @DPTR,A R0,#78H R3,#7FH A,R3 DPTR,#7F02H ;指向B口 @DPTR,A DPL ;指向A口 A,@R0 A,#0DH A, @A+PC ;查表 @DPTR,A DL1 ;调延时1ms子程序 R0 ;R0 指向下一字节 A,R3
第10章
MCS-51的键盘、显示器的接口
设计
一.LED显示器接口扩展
1.LED数码管的结构: ①共阳与共阴
h g f e d c b a
接高电平
高电平点亮 h g f …… a
f e
a g d
b
c h
h g f …… a 低电平点亮 接地
公共极
共阳极
共阴极
一.LED显示器接口原理
1.LED数码管的结构:①共阳与共阴
f e
b
f e
b
f e
b
f e
b
c
h
c
h
c
h
c
h
位选线
图10-2 4位LED显示器的构成
一.LED显示器接口原理
3.LED数码管的显示方式:静态与动态
(1)静态显示
各数码管在显示过程中持续得到送显信号,与各数码管接口 的I/O口线是专用的。
静态显示特点:
无闪烁,用元器件多,占I/O线多,无须扫描,节省CPU时间,编 程简单。
以8位LED 动态显示
2003.10.10 0
1
3FH
06H
为例
0
1
BFH
06H
3.
0
CFH
3FH
人 2 0 0 3. 1 0. 1 0 眼 0 看 1 到 的 3. 结 果
0 0 2
0
2
3FH
5BH
LED数码管动态显示举例
工作原理:从P0口送段代码,P1口送位选信号。段码虽同时 到达6个LED,但一次仅一个LED被选中。利用“视觉暂留”, 每 送一个字符并选中相应位线,延时一会儿,再送/选下一个 ……循环扫描即可。 3 7406 OC门 X +5V
图
6位动态扫描显示状态
LED数码管静态显示举例
VCC TxD RxD
A B
CLK A B CLK A B CLK
CLR
CLR
CLR
h g f e d c b a
74LS164
h g f e d c b a
74LS164
h g f e d c b a
74LS164
8051单 片机
共阳LED 数码管
+5V
程序设计举例
一.查表程序设计
例4—11 十六进制数转换成七段显示码。 设:将R1中的一位十六进制数(R0中的低4位)转换成七段显示 代码,并从P1口输出进行显示。设七段显示器为共阳极接法。 源程序如下: ORG 3000H START:MOV DPTR,#TABLE ;置表首地址 MOV A,R1 ;取十六进制数 ANL A,#0FH ;处理低4位 MOVC A,@A+DPTR ;查表 MOV P1,A TABLE:DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H DB 80H,90H,88H,83H DB 0C6H,A1H,86H,84H END
√
②非编码键盘: 单片机系统多采用此类键盘
采用软件编/译码的方式,通过扫描,对每个被按下 的键判别输出相应的键码/键值。 特点:不增加硬件开销,编码灵活,适用于小规模 的键盘,特别是单片机系统。但编程较复杂,占CPU 时间,还须软件“消颤”。
(2)按键组连接方式:独立式键盘与行列式键盘
①独立式键盘: 每键相互独立,各自与一条I/O线相 连,CPU可直接读取该I/O线的高/低电平状态。 特点:占I/O口线多,但判键速度快,多用于设置控 制键、功能键。适用于键数少的场合。 ②行列式键盘: 键按矩阵排列,各键处于矩阵行/列 的结点处,CPU通过对连在行(列)的I/O线送已知电平 的信号,然后读取列(行)线的状态信息。逐线扫描, 得出键码。 特点:键多时占用I/O口线少,但判键速度慢,多用于 设置数字键。适用于键数多的场合。
段 代 码
8051
P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0
上拉 电阻 ×14
共阴 数码管
P1.5 P1.4 P1.3 P1.2 P1.2 P1.0
位 选 线
初始化 查字段码 字段码送A口 位选送B口 延时1ms 是 是否显示完8个字符? 否 指向下一个待显数据 修改位选信号 返 回
(2)动态显示:
各数码管在显示过程中轮流得到送显信号,与各数码管接口 的I/O口线是共用的。
动态显示特点:
有闪烁,用元器件少,占I/O线少,必须扫描,花费CPU时间,编 程复杂。(有多个LED时尤为突出)
• 例如,要求显示“EE0-20”时, I/O口1和I/O口2轮流送入段选 码、位选码及显示状态如图所 示。段选码、位选码每送入一 次后延时1 ms,因人眼的视 觉暂留时间为0.1 s(100 ms),所以每位显示的间隔不 必超过20 ms,并保持延时一 段时间,以造成视觉暂留效果, 给人看上去每个数码管总在亮。 这种方式称为软件扫描显示。
一.LED显示器接口原理
2.LED数码管的译码:硬件译码与软件译码
8051
P1.3 P1.2 P1.1 P1.0
CD4511
D C B A
共阴LED