📄 key.c
字号:
#include "includes.h"
#include "key.h"
#include "eeprom.h"
#include "display.h"
sbit SET = P1^1;
sbit UP = P1^2;
sbit DOWN = P1^3;
uchar KeyOld1, KeyOld2;
/*键盘扫描子函数*/
void KeyScan(void)
{
uchar temp0, temp1;
uchar KeyNew;
if (SET == 0) {
KeyNew = 0x01;
}
else if (UP == 0) {
KeyNew = 0x03;
}
else if (DOWN == 0) {
KeyNew = 0x02;
}
else {
KeyNew = 0xff;
KeyOld1 = 0xff;
KeyOld2 = 0xff;
}
temp0 = KeyNew ^ KeyOld1;
temp1 = KeyNew ^ KeyOld2;
if (temp0 != 0) {
if (temp1 != 0) {
KeyOld2 = KeyNew;
}
else {
if (KeyNew <= 0x04) {
KeyManage(KeyNew);
Clear();
if (FlagSet == 0)
Flash = 1;
Display();
KeyOld1 = KeyNew;
}
}
}
}
void KeyManage(uchar key_value)
{
switch (MenuCoun) {
case 0:
KeySon1(key_value);
break;
case 1:
KeySon2(key_value);
break;
case 2:
KeySon3(key_value);
break;
case 3:
KeySon4(key_value);
break;
case 4:
KeySon5(key_value);
break;
case 5:
KeySon6(key_value);
break;
case 6:
KeySon7(key_value);
break;
case 7:
KeySon8(key_value);
break;
case 8:
KeySon9(key_value);
break;
case 9:
KeySon10(key_value);
break;
case 10:
KeySon11(key_value);
break;
case 11:
KeySon12(key_value);
break;
default:
break;
}
}
void KeySon1(uchar value)
{
switch (value) {
case 1:
//FlagSet = !FlagSet;
break;
case 2:
MenuCoun += 1;
break;
case 3:
MenuCoun = 11;
break;
default:
break;
}
}
void KeySon2(uchar value)
{
switch (value) {
case 1:
//FlagSet = !FlagSet;
break;
case 2:
MenuCoun += 1;
break;
case 3:
MenuCoun -= 1;
break;
default:
break;
}
}
void KeySon3(uchar value)
{
switch (value) {
case 1:
//FlagSet = !FlagSet;
break;
case 2:
MenuCoun += 1;
break;
case 3:
MenuCoun -= 1;
break;
default:
break;
}
}
void KeySon4(uchar value)
{
switch (value) {
case 1:
//FlagSet = !FlagSet;
break;
case 2:
MenuCoun += 1;
break;
case 3:
MenuCoun -= 1;
break;
default:
break;
}
}
void KeySon5(uchar value)
{
switch (value) {
case 1:
//FlagSet = !FlagSet;
break;
case 2:
MenuCoun += 1;
break;
case 3:
MenuCoun -= 1;
break;
default:
break;
}
}
void KeySon6(uchar value)
{
switch (value) {
case 1:
FlagSet = !FlagSet;
if (FlagSet) {
Set[0] = read(0);
}
else {
write(0, Set[0]);
}
break;
case 2:
if (FlagSet) {
Set[0] += 1;
if (Set[0] > 2)
Set[0] = 0;
}
else {
MenuCoun += 1;
}
break;
case 3:
if (FlagSet) {
Set[0] -= 1;
if (Set[0] < 0)
Set[0] = 2;
}
else {
MenuCoun -= 1;
}
break;
default:
break;
}
}
void KeySon7(uchar value)
{
switch (value) {
case 1:
FlagSet = !FlagSet;
if (FlagSet) {
Set[1] = read(1);
}
else {
write(1, Set[1]);
}
break;
case 2:
if (FlagSet) {
Set[1] += 1;
if (Set[1] > 2)
Set[1] = 0;
}
else {
MenuCoun += 1;
}
break;
case 3:
if (FlagSet) {
Set[1] -= 1;
if (Set[1] < 0)
Set[1] = 2;
}
else {
MenuCoun -= 1;
}
break;
default:
break;
}
}
void KeySon8(uchar value)
{
switch (value) {
case 1:
FlagSet = !FlagSet;
if (FlagSet) {
Set[2] = read(2);
}
else {
write(2, Set[2]);
}
break;
case 2:
if (FlagSet) {
Set[2] += 1;
if (Set[2] > 2)
Set[2] = 0;
}
else {
MenuCoun += 1;
}
break;
case 3:
if (FlagSet) {
Set[2] -= 1;
if (Set[2] < 0)
Set[2] = 2;
}
else {
MenuCoun -= 1;
}
break;
default:
break;
}
}
void KeySon9(uchar value)
{
switch (value) {
case 1:
FlagSet = !FlagSet;
if (FlagSet) {
Set[3] = read(3);
}
else {
write(3, Set[3]);
}
break;
case 2:
if (FlagSet) {
Set[3] += 1;
if (Set[3] > 1)
Set[3] = 0;
}
else {
MenuCoun += 1;
}
break;
case 3:
if (FlagSet) {
Set[3] -= 1;
if (Set[3] < 0)
Set[3] = 1;
}
else {
MenuCoun -= 1;
}
break;
default:
break;
}
}
void KeySon10(uchar value)
{
switch (value) {
case 1:
FlagSet = !FlagSet;
if (FlagSet) {
Set[4] = read(4);
}
else {
write(4, Set[4]);
}
break;
case 2:
if (FlagSet) {
Set[4] += 1;
if (Set[4] > 1)
Set[4] = 0;
}
else {
MenuCoun += 1;
}
break;
case 3:
if (FlagSet) {
Set[4] -= 1;
if (Set[4] < 0)
Set[4] = 1;
}
else {
MenuCoun -= 1;
}
break;
default:
break;
}
}
void KeySon11(uchar value)
{
switch (value) {
case 1:
FlagSet = !FlagSet;
if (FlagSet) {
Set[5] = read(5);
}
else {
write(5, Set[5]);
}
break;
case 2:
if (FlagSet) {
Set[5] += 1;
if (Set[5] > 1)
Set[5] = 0;
}
else {
MenuCoun += 1;
}
break;
case 3:
if (FlagSet) {
Set[5] -= 1;
if (Set[5] < 0)
Set[5] = 1;
}
else {
MenuCoun -= 1;
}
break;
default:
break;
}
}
void KeySon12(uchar value)
{
switch (value) {
case 1:
FlagSet = !FlagSet;
if (FlagSet) {
Set[6] = read(6);
}
else {
write(6, Set[6]);
}
break;
case 2:
if (FlagSet) {
Set[6] += 1;
if (Set[6] > 1)
Set[6] = 0;
}
else {
MenuCoun = 0;
}
break;
case 3:
if (FlagSet) {
Set[6] -= 1;
if (Set[6] < 0)
Set[6] = 1;
}
else {
MenuCoun -= 1;
}
break;
default:
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -