标签:
proteus
13.动态数码显示技术一
——LED数码管的驱动原理与动态扫描显示
一、实验原理
这里用的共阳极的LED数码管,共阳就是7段的显示字码共用一个电源的正。原理示意图:
从上图可以看出,要是数码管显示数字,有两个条件:1、是要在VT端(3/8脚)加正电源;2、要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。这样才能显示的。
如要显示“0”,则要 a,b,c,d,e,f六个字段亮就显示“0”了,而g和dp字段不亮;这样只要向P0口送出相应的代码即可,编码方法如下表:
| dp |
g |
f |
e |
d |
c |
b |
a |
显示的字符 |
编码 |
| P0.7 |
P0.6 |
P0.5 |
P0.4 |
P0.3 |
P0.2 |
P0.1 |
P0.0 |
| 1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
C0H |
| 1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
F3H |
| 1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
2 |
A4H |
| 1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
3 |
B0H |
| 1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
4 |
99H |
| 1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
5 |
92H |
| 1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
6 |
82H |
| 1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
7 |
F8H |
| 1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
8 |
80H |
| 1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
9 |
90H |
| 1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
A |
88H |
| 1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
F |
8EH |
程序使用时,只需将显示数字所对应的编码送P0口,然后打开相应的数码管显示位的电源控制即可显示相应的字符;程序如下:
LED EQU P0
ORG 0000H
ajmp start
org 0030h
start: mov sp,#60h;
mov LED,#0A4H ;将数字2的编码送LED口
SETB P2.0 ;打开第一位数码管的显示电源
ACALL D1MS ;调用延时1MS子程序
CLR P2.0 ;显示1MS后关第一位数码管显示
MOV LED,#0B0H ;数字3的编码
SETB P2.1 ;打开第二位数码管的显示电源
ACALL D1MS ;调用延时1MS子程序
CLR P2.1 ;显示1MS后关第二位数码管显示
MOV LED,#99H ;数字4的编码
SETB P2.2 ;打开第三位数码管的显示电源
ACALL D1MS ;调用延时1MS子程序
CLR P2.2 ;显示1MS后关第三位数码管显示
MOV LED,#92H ;数字5的编码
SETB P2.3 ;打开第四位数码管的显示电源
ACALL D1MS ;调用延时1MS子程序
CLR P2.3 ;显示1MS后关第四位数码管显示
AJMP start ;返回从第一位显示循环
;1MS延时子程序1MS延时(按12MHZ算)
D1MS: MOV R7,#80
DJNZ R7,$
RET
END ;
二、仿真实验电路
三、仿真文件下载
系统分类:
单片机 | 用户分类:
Proteus仿真实验 | 来源:
整理 | 【推荐给朋友】 | 【添加到收藏夹】