📄 10.c
字号:
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit BEEP=P3^2;
sbit led1=P3^3;
sbit led2=P3^4;
/*******************************************/
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x40,0X3f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0,0,0,1`h;
/******************************************/
void delay(uchar x)
{ uchar k;
while((x--)!=0)
{ for(k=0;k<125;k++)
{;}
}
}
/*************************************/
beep()
{
BEEP=!BEEP; //BEEP取反
delay(20);
BEEP=1; //关闭蜂鸣器
delay(10); //延时
}
/******************************************/
uchar key ()
{
uchar H,b;
H=0X30;//先查第0行
while (H<0X36)
{
P2=H;
b=P2;
if ((b&0X10)!=0)
{ delay(30);
b=P2;
if ((b&0X10)!=0)
{ beep();
return (H&0X0F);
}}
if ((b&0X20)!=0)
{
delay(30);
b=P2;
if ((b&0X20)!=0)
{ beep();
return (H&0X0F+1);
}}
// a=(P2&0x30)+(H&0x0f);
H++;
}
return (0);
}
main()
{
uchar new,old,i,j;
P0=0X00;
for (j=0;j<2;j++)
{
beep();
delay(250);delay(250);delay(250);delay(250);
}
j=0;
while (1)
{
new=key();
i=new;
/*switch (new)
{
case 0: i=14;break;
case 0x20:
i=1;break;
case 0x21:
i=2;break;
case 0x22:
i=3;break;
case 0x23:
i=4;break;
case 0x24:
i=5;break;
case 0x25:
i=6;break;
case 0x10:
i=7;break;
case 0x11:
i=8;break;
case 0x12:
i=9;break;
case 0x13:
i=10;break;
case 0x14:
i=11;break;
case 0x15:
i=12;break;
default:i=13;break;
}*/
if (i==12)
{
P0=0x00;
delay(50);
beep();
led2=1;
delay(50);
led1=0;
delay(200);
led2=0;
led1=1;
j=0;
}
else if (new!=0)
{delay(50);
beep();delay(50);beep();delay(50);beep();
P0=table[i];
old=new;
led1=0;
delay(250);delay(250);delay(250);
delay(250);delay(250);delay(250);delay(250);
delay(250);delay(250);delay(250);
led2=1;led1=1;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -