📄 main.c
字号:
#include <reg52.h>
#include <stdio.h>
#include <uart.h>
#include <max7219.h>
#define P_KEY P1
void delay(int time)
{
int i;
for (i=0; i<time; i++)
{
;
}
}
char FindKey()
{
char key = -1, i;
P_KEY = 0x0f;
key = P_KEY;
if (key == 0x0f)
{
return -1;
}
delay(5000);
key = P_KEY;
if (key == 0x0f)
{
return -1;
}
for (i=0; i<4; i++)
{
P_KEY = ~(1 << (i + 4));
key = P_KEY;
key = key & 0x0f;
if (key == 0x0f)
{
continue;
}
if (key == 0x0e)
{
key = i + 0 * 4;
}
else if (key == 0x0d)
{
key = i + 1 * 4;
}
else if (key == 0x0b)
{
key = i + 2 * 4;
}
else if (key == 0x07)
{
key = i + 3 * 4;
}
P_KEY = 0x0f;
while( (P_KEY != 0x0f));
break;
}
return key;
}
/*
unsigned char FindKey()
{
unsigned char key, temp;
P_KEY = 0x0f;
key = P_KEY;
if (key == 0x0f)
{
return 0;
}
delay(5000);
key = P_KEY;
if (key == 0x0f)
{
return 0;
}
temp = (key >> 4);
if (temp >= 4)
{
if (temp == 4)
{
temp = 3;
}
else
{
temp = 4;
}
}
P_KEY = 0xf0;
key = P_KEY;
key = key & 0x0f;
if (key >= 4)
{
if (key == 4)
{
key = 3;
}
else
{
key = 4;
}
}
key = (key - 1) * 4 + temp;
P_KEY = 0x0f;
while( P_KEY != 0x0f);
return key;
}
*/
char buf[20];
sbit P20 = P2^0;
unsigned char code ascii[11]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0F};
void main(void)
{
int key;
int i;
uart_init();
InitialMax7219();
for (i=0; i<8; i++)
{
WriteToMax7219(i + 1, ascii[i]&0x7f);
}
while(1)
{
key = FindKey();
if (key >= 0)
{
sprintf(buf, "Key = %d \n", key);
SendStr(buf);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -