📄 kb_lcd.c
字号:
/****************************************************************************
* *
* File: KB_LCD.C (KB_LCD模块源程序) *
* *
* Author: 王凤秀 *
* *
* Compiler: KEIL C51 V6.23 *
* *
* Description: CPU=AT89S52 *
* (注意:S52和S53并不一样,S52没有SPI,需要自己造. *
* Date: 2006/03/08 *
* *
*****************************************************************************
* *
* Version | Date | Description *
* --------+----------+----------------------------------------------------- *
* V1.0 | 06.11.09 | 原始文本 *
* *
****************************************************************************/
bit flag_first;
#define _KB_LCD_GLOBALS
#include "INCLUDES.H>
uchar code VER[]="V1.1";
//键盘/液晶显示模块源程序.
/****************************************************************************
* *
* Function: main *
* *
****************************************************************************/
void main(void)
{
init(); //主程序初始化
while (1)
{
TOGGLE_WD();
if (CmdValid) //处理命令
{
EA=false;
cmd_execution();
CmdValid = FALSE;
SPI_Reply();
SPI_Indicator=true; //关掉通信指示灯
EA=true;
}
kb(); //键盘模块处理
TOGGLE_WD();
if(Half_Second_Flag) //半秒中断标记
{
Half_Second_Flag=false;
if (New_DateTime[0x06] & 0x04)
{
New_DateTime[0x06]=New_DateTime[0x06] & 0xFB;
}
else
{
New_DateTime[0x06]=New_DateTime[0x06] | 0x04;
INC_Second();
}
Get_TimeCode();
LCD_Refresh();
}
}
}
void kb(void)
{
c1=0;c2=0;c3=0;
c=P1;
c&=0x0F;
if(c!=0x0F) //有键入更新码值
{
flag_kb=1;//有键入
K_LED=0;
kbchuli(); //更新码值
if(Afunction==1&&Bfunction==1)
{
Afunction=0;
Bfunction=0;
flag_function=1;
}
}
else//无键入或有键入去抖动处理
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -