電路很簡單 8位流水燈接在單片機的P1口.如下是源代碼:
//=============================================================
//程序名:LLL22_4.C
//程序功能:流水燈控制左移 右移
//==============================================================
#include<reg51.h>//頭文件
L_M(); //流水燈左移控制程序
R_M(); //流水燈右移控制程序
//===============================================================
main() //主函數
{
while(1) //無限循環
{
L_M(); //調用左移程序
R_M(); //調用右移程序
}
}
//========左移控制程序==============================================
L_M() //左移主函數
{
unsigned char i,temp,a,b; //聲明無符號字符型變量A,TEMP I,B
unsigned int s; //聲明無符號整型變量S
temp=0xfe; //左移初始值
P1=temp; //P1輸出信號點亮發光管
for( s=0;s<30000;s++); //延時程序
for (i=1;i<8;i++) //發光管移動的位數
{
a=temp<<i; //發光管左移I位
b=temp>>(8-i) ; //數據右移(8-I)位
P1=a|b ; //邏輯或運算,并輸出到P1口
for(s=0;s<30000;s++); //延時程序
}
}
//================================================================
R_M()
{
unsigned char i,temp,a,b; //聲明無符號字符型變量A,TEMP I,B
unsigned int s; //聲明無符號整型變量S
temp=0x7f; //左移初始值
P1=temp; //P1輸出信號點亮發光管
for(s=0;s<30000;s++); //延時程序
for(i=1;i<8;i++) //發光管移動的位數
{ //發光管左移I位
a=temp>>i;
b=temp<<(8-i); //數據右移(8-I)位
P1=a|b; //邏輯或運算,并輸出到P1口
for(s=0;s<30000;s++); //延時程序
}
}
//=======================================================================