#include
#include //该库函数中包含了下面程序中要用到的_crol_()函数
#define uint unsigned int
#define uchar unsigned char
uchar flag,d;
const unsigned char design[77]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,// 左移
0x7F,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,//右移
0xFE,0xFF, 0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0, //逐渐点亮
0xFE,0xFF, 0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0, //逐渐点亮
0xE7,0xDB,0xBD,0x7E,0xFF ,//从中间到两边
0xE7,0xDB,0xBD,0x7E,0xFF,//从中间到两边
0x7F,0x7F,0xDF,0xDF,0xf7,0xf7,0xfd,0xfd,0x0,0x0,
0xbf,0xbf,0xef,0xef,0xfb,0xfb,0xfe,0xfe,0x0,0x0,
0x3f,0xcf,0xfc,0xf3,
0x1f,0x8f,0xc7,0xe3,0xf1,};
void delayms() // 延时子程序
{
uint i;
for(i = 0; i < 20000; i++);
}
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while(1)
{ if(flag==1)
{ ES=0;
flag=0;
SBUF=d;
while(!TI);
TI=0;
ES=1;
}
}
}
void ckzd() interrupt 4
{ uchar b,LED,c, i; uint a;
uchar LED1=0XFE,LED2=0XFD,LED3=0XFB,LED4=0XF7,LED5=0XEF,LED6=0XDF,LED7=0xbf,LED8=0X7F;
RI=0;
b=SBUF;
d=SBUF;
flag=1;
switch( b ) {
case 'a':
P1=P1&LED1;break;
case 'A': //led1
P1=P1|(~LED1);break;
case 'b':
P1=P1&LED2;break;
case 'B': //led2
P1=P1|(~LED2);break;
case 'c':
P1=P1&LED3;break;
case'C': //led3
P1=P1|(~LED3); break;
case'd':
P1=P1&LED4;break;
case'D': //led4
P1=P1|(~LED4);break;
case 'e':
P1=P1&LED5; break;
case'E':
//led5
P1=P1|(~LED5); break;
case 'f':
P1=P1&LED6;break;
case'F':
P1=P1|(~LED6);break; //led6
case 'g':
P1=P1&LED7; break;
case'G':
P1=P1|(~LED7);break; //led7
case 'h':
P1=P1&LED8;break;
case'H':
P1=P1|(~LED8);break; //led8
case '1':
LED = 0x7f;
P1 = P1&LED;
for(i=0;i<8;i++)
{
LED = _crol_(LED,1);//循环左移1位,点亮下一个LED,_crol_()是库函数左移
P1 = LED;
delayms();//延时
} ;
LED = 0x7f;
P1 = P1&LED;
for(i=0;i<8;i++)
{
LED = _crol_(LED,1);//循环左移1位,点亮下一个LED,_crol_()是库函数左移
P1 = LED;
delayms();//延时
} ;
P1=0xff;
break;
case '2':
LED = 0xFE;
P1 =P1& LED;
for(i=0;i<8;i++)
{
LED = _cror_(LED,1);//循环右移1位,点亮下一个LED,_crol_()是库函数左移
P1 = LED;
delayms();//延时
} ;
LED = 0xFE;
P1 =P1& LED;
for(i=0;i<8;i++)
{
LED = _cror_(LED,1);//循环右移1位,点亮下一个LED,_crol_()是库函数左移
P1 = LED;
delayms();//延时
} ;
P1=0xff;
break;
case '3':
for (c=0; c<77; c++)
{
for(a=0; a<30000; a++); //延时一段时间
P1 = design[c]; //读已定义的花样数据并写花样数据到 P0 口
}
default:
P1=0xff;
break;
}
}