📄 qiang da.c
字号:
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};
sbit P2_7=P2^7;
sbit P3_3=P0^0;
sbit P2_0=P2^0;
uchar temp;
uchar k;
uchar code_h;
bit rst;
void keyc(void);
//延时函数
void mDelay(uchar Delay)
{ // 延时子程序
uchar i;
while(Delay--)
{
for(i = 0; i< 120; i++);
}
}
void interrupt1(void) interrupt 0 using 1
{
rst=1;
P2=255;
P2_7=0;
}
//主函数
void main(void)
{
EA=1;
IT0=1;
EX0=1;
rst=0;
while(1)
{
code_h=0xef;
P1=code_h;
temp=P1;
while(temp==code_h)//检测键盘是否有按键按下
{
code_h=(code_h<<1)|0x01;
if(code_h==0xff)
{code_h=0xef;}
P1=code_h;
temp=P1;
}
mDelay(5); //延时去抖
if(P1==temp)
{
keyc();
while(temp==P1) //等待按键放开
{;}
}
}
}
//键盘操作
void keyc(void)
{
uchar key,i;
switch(temp)
{
case 0xee:
key=12;
break;
case 0xed:
key=13;
break;
case 0xeb:
key=14;
break;
case 0xe7:
key=15;
break;
case 0xde:
key=8;
break;
case 0xdd:
key=9;
break;
case 0xdb:
key=10;
break;
case 0xd7:
key=11;
break;
case 0xbe:
key=4;
break;
case 0xbd:
key=5;
break;
case 0xbb:
key=6;
break;
case 0xb7:
key=7;
break;
case 0x7e:
key=0;
break;
case 0x7d:
key=1;
break;
case 0x7b:
key=2;
break;
case 0x77:
key=3;
break;
}
if(rst)
{
P2=table[key];
rst=0;
P3_3=0;
mDelay(100);
P3_3=1;
for(i=0;i<40;i++)
{
mDelay(250);
if(rst)
break;
}
}
else
{
rst=0;
for(i=0;i<4;i++)
{
P2=table[key];
P3_3=0;
mDelay(200);
P3_3=1;
P2=255;
mDelay(200);
if(rst)
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -