/* #include
#define uint unsigned int
#define uchar unsigned char
void delayn50ms(uint n)
{
uint i,j;
for(i=0;i
}
main()
{
uchar x,y;
while(1)
{
x=0xfe;
for(y=0;y<8;y++)
{
P2=x;
x=x<<1|0x01;
delayn50ms(5);
}
P2=0x00;
}
}
*/
//程序名:LLL22_4.C
//程序功能:流水灯控制左移 右移
//==============================================================
#include
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; //左移初始值
P2=temp; //P1输出信号点亮发光管
for( s=0;s<30000;s++); //延时程序
for (i=1;i<8;i++) //发光管移动的位数
{
a=temp< b=temp>>(8-i) ; //数据右移(8-I)位
P2=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; //左移初始值
P2=temp; //P1输出信号点亮发光管
for(s=0;s<30000;s++); //延时程序
for(i=1;i<8;i++) //发光管移动的位数
{ //发光管左移I位
a=temp>>i;
b=temp<<(8-i); //数据右移(8-I)位
P2=a|b; //逻辑或运算,并输出到P1口
for(s=0;s<30000;s++); //延时程序
}
}
相关文章