#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秒;
|