📄 lcd_key.c
字号:
/*------------------------------------------------------------------*-
LCD_KEY.C
键盘与LCD刷新函数库
-*------------------------------------------------------------------*/
#include "main.h"
#include "Keypad.h"
#include "LCD.h"
#include "delay.h"
/*-------私有变量定义----------------------------------------------------*/
static tByte cout=0; //按键次数计数变量
/*------公有变量声明-----------------------------------------------------*/
extern bit KEY_SCAN_G;
extern tWord Card_Money; //储存卡余额
extern tByte LCD_Key[6]; //显示按键缓冲区
extern tByte LCD_Money[5]; //显示卡数据缓冲区
//----------------------------------------------------------------------------
//刷新键盘_LCD_读卡数据,每隔50毫秒刷新一次,只在卡被激活后才被调用
//----------------------------------------------------------------------------
void LCD_KEY_Update(void)
{
char Key;
KEYPAD_Update(); //刷新键盘
if (KEYPAD_Get_Data_From_Buffer(&Key) == 0) //刷新键盘缓冲区
{
LCD_Update(LCD_Key,LCD_Money); //无键按下就只显示余额,然后返回
return;
}
if(Key=='*') //'*'为功能键,用作'取消'功能
{ //'*'被按下,允许重新输入键盘
LCD_Key[0]=' ';
LCD_Key[1]=' ';
LCD_Key[2]=' ';
LCD_Key[3]=' ';
LCD_Update(LCD_Key,LCD_Money); // 清扣除金额显示
KEYPAD_Clear_Buffer(); //清键盘缓冲区
cout=0; //清按键计数
return;
}
if(Key=='#'||cout==4) //'#'为功能键,用作'确认'功能
{ //'#'被按下或者按键次数cout=4
//余额=卡中金额-扣除金额
Card_Money=Card_Money-((LCD_Key[0]-48)*1000+(LCD_Key[1]-48)*100+(LCD_Key[2]-48)*10+(LCD_Key[3]-48));
LCD_Key[0]=' ';
LCD_Key[1]=' ';
LCD_Key[2]=' ';
LCD_Key[3]=' ';
LCD_Money[0]=Card_Money/1000+48; //加载千位
LCD_Money[1]=Card_Money%1000/100+48; //百位
LCD_Money[2]=Card_Money%1000%100/10+48; //十位
LCD_Money[3]=Card_Money%1000%100%10+48; //个位
LCD_Update(LCD_Key,LCD_Money); //余额显示,清扣除金额显示
delay_nms(500);
LCD_Money[0]=' '; // delay 0.5秒
LCD_Money[1]=' ';
LCD_Money[2]=' ';
LCD_Money[3]=' ';
LCD_Update(LCD_Key,LCD_Money); //清余额显示
KEYPAD_Clear_Buffer(); //清键盘缓冲区
cout=0; //清按键计数
KEY_SCAN_G=0; //清键盘扫描标志,停止键盘扫描
return;
}
//有键按下,但不是功能键
LCD_Key[cout++]= Key; //送数
LCD_Update(LCD_Key,LCD_Money); //显数
}
/*------------------------------------------------------------------*-
---- END OF FILE -------------------------------------------------
-*------------------------------------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -