#include<reg51.h>
code unsigned charC51BOX2[3] _at_ 0x43;
void delay(void);
unsigned charRL(unsigned char c,n);
main()
{
unsigned char n; /*n是循环移位数*/
P0 = 0xFE; /*P1为11111110*/
n = 1; /*设定移位数为1,可以定义所需循环移动的位数,例如:2,3等*/
while(1)
{
P0 = RL(P0,n);
delay();
}
}
/*延时函数*/
void delay(void)
{
unsigned char i,j,k;
for(i=100;i!=0;i--)
for(j=100;j!=0;j--)
for(k=50;k!=0;k--);
}
/*循位左移位函数*/
unsigned charRL(unsigned char c,n)
{
unsigned char a,b,result;
a=c>>(8-n);
b=c<<n;
result=a|b;
return(result);
}修改上述程序,使指示灯两两右循环;
修改上述程序,使指示灯右循环间隔为0.1秒;
|