在前面我介绍了51单片机的数码管的原理,今天实现了一下,不过因为条件原因,我只能让那些数码管亮3个,数字还不是很清楚。代码还是上次那个代码:
#include<reg52.h>//包含头文件
sbit wei1=P1^0;
sbit wei2=P1^1;
sbit wei3=P1^2;
sbit wei4=P1^3;
sbit miao=P1^4;
unsigned code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e,
};//共阳数码管码表
void delay(int a)
{
int b,c;
for(b=a;b>0;b--)
for(c=30;c>0;c--);
}
void main()//主程序
{
while(1)//循环
{
wei1=0;//选通第一个数码管的位选,关闭其他数码管位选
wei2=1;
wei3=1;
wei4=1;
miao=1;//打开秒针
P0=table[1];//送入段选信号1
delay(1);
wei1=1;//选通第二个数码管的位选,关闭其他数码管位选
wei2=0;
wei3=1;
wei4=1;
miao=1;//打开秒针
P0=table[2];//送入段选信号2
delay(1);
wei1=1;//选通第三个数码管的位选,关闭其他数码管位选
wei2=1;
wei3=0;
wei4=1;
miao=1;//打开秒针
P0=table[3];//送入段选信号 3
delay(1);
wei1=1;//选通第一个数码管的位选,关闭其他数码管位选
wei2=1;
wei3=1;
wei4=0;
miao=1;//打开秒针
P0=table[4];//送入段选信号 1111 1001
delay(1);
}
}
代码可以跑,只是因为我的数码管有问题。
实验器材:
(1)最小系统
(2)4个数码管
(3)杜邦线若干
实验结果:
如果连线不会那么就请参考我的博客:http://blog.youkuaiyun.com/sum_tw/article/details/60466103对着连线。