📄 text1.c
字号:
#include<reg52.h>
#define unchar unsigned char
/*----------------------------
延时
-----------------------------*/
void delay()
{
unchar i,j;
for(i=0;i<20;i++)
for(j=0;j<20;j++);
}
unchar Led[]={0x3f,0x06,0x5b,0x4f,0x66};
unchar disbuf[4]={0};
/*----------------------------
判断有无按键,并返回按键值
----------------------------*/
unchar Keybcd()
{
unchar count,cmd,key;
key=0;
while(key==0)
{ P1=0x0f;
if( P1!=0x0f){
delay();
if(P1!=0x0f){
cmd=0xef;
for(count=0;count<4;count++){
P1=cmd;
if((P1&0x0f)!=0x0f){
key= (cmd&0xf0)+(P1&0x0f);
key=~key;
break;}
else
cmd=(cmd<<1)+1;
}
}
}
else
return(0); /*-------没加这句即开始无按键没返回值-------*/
}
P1=0x0f;
while(P1!=0x0f);
return(key);
}
/*----------------------------
LED显示
---------------------------*/
void display()
{
static unchar x=0 ;
switch(x){
case 0:P2=0xff;P0=Led[disbuf[0]];P2=0xf7;delay();x=1;break;
case 1:P2=0xff;P0=Led[disbuf[1]];P2=0xfb;delay();x=2;break;
case 2:P2=0xff;P0=Led[disbuf[2]];P2=0xfd;delay();x=3;break;
case 3:P2=0xff;P0=Led[disbuf[3]];P2=0xfe;delay();x=0;break;
}
}
/*-----------------------------
有按键就移位
------------------------------*/
void yi_wei(unchar a[],unchar x)
{
unchar i;
for(i=3;i>0;i--){
a[i]=a[i-1];
}
a[i]=x;
}
/*----------------------------
主程序
------------------------------*/
void main()
{
unchar var,temp;
while(1){
display();
var=Keybcd();
if(var==0x28){
temp=1;
yi_wei(disbuf,temp);
display();
}
else if(var==0x24) {
temp=2;
yi_wei(disbuf,temp);
display();
}
else if(var==0x22){
temp=3;
yi_wei(disbuf,temp);
display();
}
else if(var==0x48){
temp=4;
yi_wei(disbuf,temp);
display();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -