LED流水和数码管流水效果"独立"进行,实现方法包里有代码,互相交流。
仿真原理图:
单片机源程序如下:
#include
#include
#define Number 50 //数码管数字长亮时间,t=Number*50ms=2500ms
#define Speed 6 //数码管数字显示流动速度,t=Speed*50ms=300ms
#define time100 100 //延时函数时间:t=time100=100ms
#define time1000 1000 //延时函数时间:t=time1000=1000ms
#define uchar unsigned char
#define uint unsigned int
bit flag=0;
uchar timer=0;
uchar K=0;
uchar N=0;
uchar num;
uchar num1;
uchar a;
uchar b;
uchar c;
uchar code temp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xc7,0xc1,0x86};
uchar code table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar code led[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
/****************************************
延时函数(ms)
****************************************/
void delay(uint t)
{
int x,y;
for(x=t;x>0;x--)
for(y=110;y>0;y--);
}
/****************************************
流水灯显示
****************************************/
//闪烁
void ledBlink_display()
{
P1=P3=0x00; // 闪烁 1
delay(time100);
P1=P3=0xff;
delay(time100);
P1=P3=0x00; // 闪烁 2
delay(time100);
P1=P3=0xff;
delay(time100);
}
//流动 1
void ledFlow_display1()
{
for(b=0;b<8;b++)
{P3=led[b];
delay(time100);
}
P3=0x00;
for(c=0;c<8;c++)
{P1=led[c];
delay(time100);
}
P1=0x00;
}
// 流动 2
void ledFlow_display2()
{
for(b=0;b<8;b++)
{P3=led[b];
delay(time100);
}
P3=0x00;
for(c=0;c<8;c++)
{P1=led[c];
delay(time100);
}
P1=0x00;
}
//流动 3
void ledFlow_display3()
{
for(b=0;b<8;b++)
{P3=led[b];
delay(time100);
}
P3=0x00;
for(c=0;c<8;c++)
{P1=led[c];
delay(time100);
}
P1=0xff;
}
//流动 4
void ledFlow_display4()
{
for(b=7;b>0;b--)
{P3=led[b];
delay(time100);
}
P3=0x00;
for(c=7;c>0;c--)
{P1=led[c];
delay(time100);
}
P1=0x00;
}
// 流动 5
void ledFlow_display5()
{
for(b=7;b>0;b--)
{P3=led[b];
delay(time100);
}
P3=0x00;
for(c=7;c>0;c--)
{P1=led[c];
delay(time100);
}
P1=0xff;
}
//流动 6
void ledFlow_display6()
{
for(b=7;b>0;b--)
{P3=led[b];
delay(time100);
}
P3=0x00;
for(c=7;c>0;c--)
{P1=led[c];
delay(time100);
}
P1=0x00;
}
//交替闪
void ledExchangeBlink_display()
{
P3=0xaa;
P1=0x55;
delay(time100);
P3=0x55;
P1=0xaa;
delay(time100);
P3=0xaa;
P1=0x55;
delay(time100);
P3=0x55;
P1=0xaa;
delay(time100);
P3=0xaa;
P1=0x55;
delay(time100);
P3=0x55;
P1=0xaa;
delay(time100);
}
//左右闪 1
void led_RL_Blink_display1()
{
P3=0x00;
P1=0xff;
delay(time100);
P3=0xff;
P1=0x00;
delay(time100);
}
//左右闪 2
void led_RL_Blink_display2()
{
P3=0x00;
P1=0xff;
delay(time100);
P3=0xff;
P1=0x00;
delay(time100);
}
//左右闪 3
void led_RL_Blink_display3()
{
P3=0x00;
P1=0xff;
delay(time100);
P3=0xff;
P1=0x00;
delay(time100);
}
//4组流
void ledFourGroupFlow_display()
{
P1=P3=0x11;
P3=0xf0;
P1=
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』