- 数码管的结构及原理
- 程序实现
- 数字0-9显示
数码管的结构及原理
![](https://img-blog.csdnimg.cn/cca942eb54e64825b391ea6b9de4d812.png)
1.编写前请确认数码管(共阴极/共阳极电路)
共阴极:=0数码管不亮 =1数码管亮
共阳极:=1数码管不亮 =0数码管亮
作者以共阳极电路进行编写,如为共阴极电路请相反编写即可。
硬件连接:发光二极管引脚a b c d e f g d;分别连接单片机P0口的P0.0~P0.7。
程序实现
#include<reg52.h>//单片机头文件
sbit dula=P2^6; //锁存器的锁存端定义
sbit wela=P2^7;//锁存器的锁存端定义
void main(){
P0=1;//P0口给数码管送入位选信号
wela=0; //打开锁存端让P0=1通过
wela=1; //关闭锁存端让P0=1通过,使P0=1保持在输出端
P0=0xc0;//给P0口数码管段送去0的编码 0xc0
dula=0;//打开锁存端让P0=0xc0通过
dula=1;//关闭锁存端让P0=0xc0通过,使P0=0xc0保持在输出端上
while(1);
}
效果:开发板显示:数字 0
数字0-9显示(修改程序段:两个P0=?程序段注意前后顺序)
0:P0=1/P0=0xC0
1:P0=0XFD/P0=0xF9
2:P0=1/P0=0xA4
3:P0=1/P0=0xB0
4:P0=0XDF/P0=0x99
5:P0=1/P0=0x92
6:P0=1/P0=0x82
7:P0=1/P0=0xF8
8:P0=1/P0=0x80
9:P0=1/P0=0x90