简单LED流水灯的制作及电路图

我是个业余爱好者,请大伙关照关照,哪位朋友知道的话,请把制作用的材料一起告诉我,越详细越好,3Q!

第1个回答  2013-09-12
看看这个,用51单片机做的
//P2.0、P2.1、P2.2三个口分别接黄红绿三个信号灯,每隔59秒红灯和绿灯轮流亮和暗,
//第60秒黄灯持续亮一秒,此时其他灯不亮。
#include<reg52.h>
#define uchar unsigned char
sbit yellow=P2^0;
sbit red=P2^1;
sbit green=P2^2;
sbit coma=P2^3;
sbit comb=P2^4;
int i=0,k=0,j=59;
///////////////////////////////////////////
uchar getcode(uchar a)
{
uchar p;
switch (a)
{
case 0: p=0xC0; break;
/* 0 */
case 1: p=0xF9; break;
/* 1 */
case 2: p=0xA4; break;
/* 2 */
case 3: p=0xB0; break;
/* 3 */
case 4: p=0x99; break;
/* 4 */
case 5: p=0x92; break;
/* 5 */
case 6: p=0x82; break;
/* 6 */
case 7: p=0xF8; break;
/* 7 */
case 8: p=0x80; break;
/* 8 */
case 9: p=0x90; break;
/* 9 */
default:

break;
}
return(p);
}
///////////////////////////////////////////////
void delay( )
{
int x,y;
for(x=4;x>0;x--)
for(y=0;y<125;y++)

{ }
}
//////////////////////////////////////////////
void display( )
{
P1=getcode(j/10);coma=1;comb=0;delay();
P1=getcode(j%10);coma=0;comb=1;delay();
}
///////////////////////////////////////////
main(
)
{
TMOD=0x01;
TH0=-(50000/256);
TL0=-(50000%256);
TR0=1;
EA=1;
ET0=1;
do{ display(); }
while(1);
}
////////////////////////////////////////////
void timer0( ) interrupt 1
{
i++;
TH0=-(50000/256);
TL0=-(50000%256);
if(i==20)

{i=0;j--;}
if(j<0)

{j=59;k++;}
if(k==2)

k=0;
if(j==0)

{yellow=0;red=1;green=1;}
if(k==0&&j!=0)

{red=0;yellow=1;green=1;}
if(k==1&&j!=0)

{green=0;red=1;yellow=1;}
}本回答被网友采纳
相似回答