📄 4x4+
字号:
#define _4X4_C_
#include "reg51.h"
#include "4x4.h"
sbit LED=P1^3;
unsigned char kn;
void delay10ms(unsigned char time);
unsigned char readkeynumber_4x4(void);
void shan(unsigned char n);
void main()
{
shan(1);
while(1)
{
kn=readkeynumber_4x4();
if(kn!=0xff)
{
shan(kn);
}
}
}
unsigned char readkeynumber_4x4()
{
unsigned char i,j;
P0=0X0F;
if((P0&0X0F)!=0X0F)///判断是否有按键
{
for(i=0;i<4;i++)//逐行扫描
{
P0=~(0X01<<(i+4));
if((P0&0X0F)!=0X0F)//判断某行是否有按键
{
for(j=0;j<4;j++)
{
if(((P0>>j)&0x01)==0)//判断按键具体的列
return i*4+j;//根据按键所属的行列计算键值
}
}
}
while((P0&0X0F)!=0X0F);//等按键释放
}
return 0xff;//无按键返回0xff
}
void delay10ms(unsigned char time)
{
unsigned char i;
int j;
for(i=time;i>0;i--)
{
for(j=800;j>0;j--);
}
}
void shan(unsigned char n)
{
unsigned char i;
for(i=n;i>0;i--)
{
LED=0;
delay10ms(40);
LED=1;
delay10ms(40);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -