📄 read_key.c
字号:
/* DA is key's high 4 bits
if (DA == 0)
high(key) = 1
else
high(key) = 0
if (Inc == 0)
low(key) = 1
if (Dec == 0)
low(key) = 2
if (Wri == 0)
low(key) = 3
*/
#include "reg51.h"
void delay(unsigned int);
bit b_inc = 0,b_dec = 0,da_first = 0;
sbit Inc = P1^0;
sbit Dec = P1^1;
sbit DA = P1^2;
sbit Wri = P3^2;
unsigned char i;
unsigned char Read_Key(unsigned char *d,unsigned char *pc)
{
unsigned char key;
P1 = P1 | 0x0f;
if (Inc == 0)
{
delay(10);
if (Inc ==0)
{
if (b_inc == 0)
{
delay(300);
b_inc = 1;
}
if (DA == 0)
{
key = 0x11; // if (DA == 0) high(key) = 2;
(*pc)++;
}
else //if (Inc == 0) low(key) = 1;
{ key = 0x01;
(*d)++;
}
for ( i = 0;Inc == 0 && i < 60;i++)
delay(1);
}
}
else if (Dec == 0)
{
delay(10);
if (Dec == 0)
{
if (b_dec == 0)
{
delay(300);
b_dec = 1;
}
if (DA == 0)
{
key = 0x12;
(*pc)--;
}
else
{
key = 0x02;
(*d)--;
}
for (i = 0;Dec == 0 && i < 60;i++)
delay(1);
}
}
else if (DA == 0)
{
delay(50);
if (DA == 0)
{
b_inc = b_dec = 0;
if (Wri == 0)
key = 0x13;
else
{
key = 0x10;
if (!da_first)
{
da_first = 1;
(*pc)++;
}
}
}
}
else if (Wri == 0)
{
b_inc = b_dec = da_first = 0;
delay(100);
if (Wri == 0)
{
key = 0x03;
}
}
else
{
b_inc = b_dec = da_first = 0;
key = 0x00;
}
return key;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -