|
#include <reg51.h>
#include <intrins.h>
#define wei P2
#define xian P0
typedef unsigned int u1;
typedef unsigned int u2;
u1 code leds[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void delay (u1 i)//延迟函数
{
while (i--);
}
void dong () //数码管显示0-7
{
u1 i;
for (i=0;i<8;i++)
{
switch (i)
{ case (0):wei=0x00;break;
case (1):wei=0x01;break;
case (2):wei=0x02;break;
case (3):wei=0x03;break;
case (4):wei=0x04;break;
case (5):wei=0x05;break;
case (6):wei=0x06;break;
case (7):wei=0x07;break;
}
xian=leds[i];
delay (10000) ;
xian=0x00;
}
}
void xia () //数码管显示7-0
{
u1 k;
for (k=7;k>=0;k--)
{
switch (k)
{ case (0):wei=0x00;break;
case (1):wei=0x01;break;
case (2):wei=0x02;break;
case (3):wei=0x03;break;
case (4):wei=0x04;break;
case (5):wei=0x05;break;
case (6):wei=0x06;break;
case (7):wei=0x07;break;
}
xian=leds[k];
delay (10000);
xian=0x00;
}
}
void main ()
{
u2 i ;
for (i=0;i<12;i++)
{
dong();
xia ();
}
}//为啥不能连续显示、0-7然后再显示7-0 第二次不能显示了 ,为甚吗?
|
|