项目文件
关于项目的内容知识点可以见专栏单片机原理及应用 的第四章 数码管动态显示
采用共阴极LED数码管,采用动态显示显示字符"L2"
图中的双联LED数码管相当于两个并联的数码管
下面先将位码(也就是选择哪个亮的)0x02 | 0x01 先后送入 P3口依次使能
共阴极LED数码管的位选是低电平来选择的
然后赋值P2端口,0x38是L,共阴极。0x5b是2。
流程图
先给1晶体管,赋值为led_mod[0] 是L
再给2晶体管,赋值为led_mod[1]是2
代码如下:
#include <REG51.H>
char led_mod[] = {0x38,0x5B}; //LED字模“L2”
void delay(unsigned int time);
void main() {
char led_point = 0;
while (1) {
P3 = 2 - led_point; //输出LED位码
P2 = led_mod[led_point]; //输出字模
led_point = 1 - led_point; //刷新LED位码
delay(30);
}
}
void delay(unsigned int time){
unsigned int j = 0;
for(;time>0;time--)
for(j=0;j<125;j++);
}
结果:
运行视频:
C51单片机——数码管动态显示