#include<reg52.h>
#define uchar unsigned char
sbit key1=P3^5;
sbit key2=P3^4;
void delay(uchar k)
{
uchar i,j;
for(i=k;i>0;i--)
for(j=110;j>0;j--);
}
void moveleft()
{
if(P1 == 0x7f) //0111 1111
P1 = 0xfe; //1111 1110
else
P1 = (P1 << 1) + 1 ; // 1111 1100 -> 1111 1101
}
void moveright()
{
if(P1 == 0xfe)
P1 = 0x7f;
else
P1 = (P1 >> 1) + (1 << 7);
}
void main()
{
P1 = 0xfe; //1111 1110
P3 = 0xff; //1111 1111
while(1)
{
if(key1 == 0)
{
delay(20);
if(key1 == 0)
{
while(!key1); //等待按鍵抬起
moveleft();
}
}
if(key2 == 0)
{
delay(20);
if(key2 == 0)
{
while(!key2);
moveright();
}
}
}
}
|