#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar idata plus[9]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09,0x00};
uchar idata plus1[9]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x00};
uchar *p;
bit flag=1;
uint n=200;
void delay(uint t)
{
uchar i;
for(;t>0;t--)
for(i=248;i>0;i--);
}
void fall()
{
n+=10;
if(n>500) n=100;
}
void rise()
{
n-=10;
if(n<100) n=500;
}
void keyscan()
{
uchar k;
P1=0xff;
if(P1!=0xff)
delay(20);
if(P1!=0xff)
{
k=~(P1 & 0xff);
if(k==1) rise();
else fall();
}
}
void rol()
{
P2=*p;
delay(n);
p++;
if(*p==0x00)
p=p-8;
}
void inter() interrupt 0 using 1
{
p=plus;
}
void inter1() interrupt 2 using 2
{
p=plus1;
}
void main()
{
p=plus;
while(1)
{
keyscan();
rol();
}
}
评论2
最新资源