- 11
- 0
- 约2.24千字
- 约 4页
- 2020-09-06 发布于江苏
- 举报
任务四 单片机控制数码管显示
4.1 单片机并口直接驱动单个LED显示。具体要求:将AT89C51单片机P0口P0.0~P0.7引脚连接到一个共阴数码管a~h段上,数码管公共端接地。在数码管上循环显示0~9数字,时间间隔为0.5s。
1、硬件设计图14所表示。
图14
所需元件清单图15所表示。
图15
2、程序设计:
LED数码显示原理:7段LED显示器内部由7个条形发光二极管和一个小圆点发光二极管组成,依据各管公共端接线形式,可分为共阴极型和共阳极型。
LED数码管a~h段8个发光二极管加正向电压发亮,加反向电压不发亮,依据差别亮暗组合就能形成差别字形,这种组合称为段码,共阴极型和共阳极型段码见表。
显示字形
段码(按h~a排列)
显示字形
段码(按h~a排列)
共阴极型
共阳极型
共阴极型
共阳极型
0
3FH
C0H
8
7FH
80H
1
06H
F9H
9
6FH
90H
2
5BH
A4H
A
77H
88H
3
4FH
B0H
B
7CH
83H
4
66H
99H
C
39H
C6H
5
6DH
92H
D
5EH
A1H
6
7DH
82H
E
79H
86H
7
07H
F8H
F
71H
8EH
因为显示数字0~9段码没有规律可循,只能采取查表方法来完成所需操作。若采取共阴极型数码管,根据数字0~9次序,在程序中创建段码表以下:
“TAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
程序以下:
ORG 0000H
MAIN: MOV R1,#0
MOV R2,#10 0~9
MOV DPTR,#TAB
LP: MOV A,R1
MOVC A,@A+DPTR
MOV P0,A
INC R1
ACALL DEL
DJNZ R2,LP
LJMP MAIN
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH (高电平有用)
DEL: MOV R5,#10
L2: MOV R7,#100
L1: MOV R6,#0FAH
DJNZ R6,$
DJNZ R7,L1
DJNZ R5,L2
RET
END
4.2 数码管动态显示
当显示器位数较多时,可采取动态显示。所谓动态显示就是一位一位地轮流点亮显示器各个位(扫描)。对于显示器每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),但因为人眼视觉暂留效应和发光二极管熄灭时余晖,我们看到却是多个字符“同时”显示。显示器亮度既和点亮时导通点亮相关,也和点亮时间长短和间隔时间相关。调整电流和时间参数,即可实现亮度较高较稳定显示。
本例中显示器由4个共阴极LED数码管组成。AT89C51单片机P0口输出显示段码,由一片74LS245驱动输出给LED数码管,由P1口输出位码,经74LS06输出给LED显示。4位数码管显示““1234”。
1、硬件设计图18所表示。
图18
所需元件清单图19所表示:
图19
2、软件设计
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP STOP
ORG 0030H
MAIN:MOV R0,#0
MOV R1,#30
MOV R5,#0
CLR 20H.7
MOV P0,#00H
MOV P1,#0FH
MOV TMOD,#01H
MOV TH0,#0FEH
MOV TL0,#0BH
MOV DPTR,#TAB
SETB ET0
SETB EA
SETB TR0
LP:MOV A,#3
MOVC A,@A+DPTR
SETB P1.2
MOV P0,A
JNB 20H.7,$
CLR 20H.7
MOV A,#4
MOVC A,@A+DPTR
CLR P1.2
SETB P1.3
MOV P0,A
JNB 20H.7,$
CLR 20H.7
LP2: MOV A,#1
MOVC A,@A+DPTR
CLR P1.3
SETB P1.0
MOV P0,A
JNB 20H.7,$
CLR 20H.7
MOV A,#2
MOVC A,@A+DPTR
CLR P1.0
SETB P
原创力文档

文档评论(0)