📄 liushuideng.c
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void dlms(void);
uchar kbscan(void);
void menu(void);
void toi(void);
uchar it=20;
uchar bdata te;
sbit te_0=te^0;
sbit te_7=te^7;
bit bdata flag1;
bit bdata flag2;
uchar key;
void main(void)
{
te=0x80;
P2=te;
TMOD=0xf1;
TH0=0x4c;
TL0=0x81;
TR0=1;
ET0=1;
EA=1;
while(1)
{
key=kbscan();
menu();
}
}
void dlms(void){
uchar i;
for(i=200;i>0;i--){}
}
uchar kbscan(void){
uchar sccode,recode,de;
P1=0xf0;
if((P1&0xf0)!=0xf0){
dlms();
if((P1&0xf0)!=0xf0){
sccode=0xfe;
while((sccode&0x04)!=0){
P1=sccode;
if((P1&0xf0)!=0xf0){
recode=(P1&0xf0)|0x0f;
de=(~sccode)+(~recode);
switch(de)
{case 0x11:
return(1);break;
case 0x21:
return(2);break;
case 0x41:
return(3);break;
case 0x81:
return(4);break;
case 0x12:
return(5);break;
case 0x22:
return(6);break;
case 0x42:
return(7);break;
case 0x82:
return(8);break;
default:
break;
}
}
else
sccode=(sccode<<1)|0x01;
}
}
}
return(0);
}
void menu(void){
if(key==8)
TR0=!TR0;
if(TR0==0)
switch(key)
{
case 1:
te=0x80;P2=te;break;
case 2:
te=0xc0;P2=te;break;
case 3:
te=0xe0;P2=te;break;
case 4:
te=0xf0;P2=te;break;
case 5:
te=0xf8;P2=te;break;
case 6:
te=0xfc;P2=te;break;
case 7:
te=0xfe;P2=te;break;
default:
break;
}
}
void toi(void) interrupt 1 using 1
{
TH0=0x4c;TL0=0x81;
if((--it)==0){
it=20;
if(TR0==1)
{
flag2=te_0;
te=te>>1;
te_7=flag2;
P2=te;
P2=te;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -