数码管的动态显示
要学会运用switch case语句,并明白什么必要,什么不必要
#include<reg52.h>
sbit A2=P2^2;
sbit A1=P2^1;
sbit A0=P2^0;
sbit ENLED=P1^1;
void delay(unsigned long int); //子函数的声明
unsigned char code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//表示含有0,1,2,3,4,5,6,7,8,9的数组
void main()
{
unsigned char i=0;
unsigned int n=0;
ENLED=0;
for(n=0;n<=10;n++)
{
switch(i)
{
case 0:A2=0;A1=0;A0=00=table[n];
delay(5000);//起延时作用
case 1:A2=0;A1=0;A0=10=table[n];
delay(5000);
case 2:A2=0;A1=1;A0=00=table[n];
delay(5000);
case 3:A2=0;A1=1;A0=10=table[n];
delay(5000);
case 4:A2=1;A1=0;A0=00=table[n];
delay(5000);
case 5:A2=1;A1=0;A0=10=table[n];
delay(5000);
}
}
}
void delay(unsigned int m)//子函数
{
unsigned int x,y;
for(x=0;x<300;x++)
{
for(y=0;y<m;y++);
}
}
如果想要改变间断时间,只需改变delay括号中的数字即可
|