📄 keyboard_rc_int.c
字号:
/*
********************************************************************************************
源程序文件名: Keyboard_RC_INT.c
源程序名称: 中断方式的行列式键盘接口的源程序文件
程序版本: 1.0
程序功能:
本程序是中断方式的行列式键盘接口的源程序文件。
程序说明:
函数入口参数:
函数出口参数:
编译工具软件: IAR Embedded Workbench for Atmel AVR 版本:4.12 以上
链接子程序文件:
编作者: 磊元工作室
编作者 E-Mail: PTZSW@163.COM
编制日期: 2006年4月18日
----------------------------------------------------------------------------------------
适用器件芯片类型: ATmega 系列( Atmel 公司生产的8位 RISC 单片机)
器件芯片时钟频率: 11.059200 MHz
存储器模式: 大存储器模式
外部扩展存储器大小:0 【字节】
数据堆栈大小: 256 【字节】
----------------------------------------------------------------------------------------
源程序版本历史:
2006年4月18日 -------- 版本 1.0 :发行版本
********************************************************************************************
*/
/*==========================================================================================
本源程序包括的头部文件和其他源程序文件
==========================================================================================*/
#include "Keyboard_RC_INT.h" // 本程序的头部文件
#include "Delay.h" // 包含延时函数的头部文件
#include "Timer_Counter.h" // 定时器/计数器的头部文件
#include "Math_Arithmetic.h" // 算术运算和数制转换等数学算法的头部文件
#include "DataCheck_CRC_2Bit.h" // 2位监督码数据循环冗余校验的头部文件
#include "Test_Channels.h" // 测试通道操作的头部文件
#include "LCDM_SED1335.h" // SED1335液晶模块接口驱动的头部文件
#include "LCDM_Menu.h" // 液晶模块显示菜单的头部文件
#include "Communication_Manage.h" // 通信接收和发送协议命令与数据处理的头部文件
#include <math.h> // 系统数学函数的头部文件
#include "Error_Manage.h" // 处理系统各类错误的头部文件
#include "RTC_DS12887.h" // 实时时钟芯片 DS12887 接口驱动的头部文件
#include "LCDM_Day_Time.h" // 在液晶屏幕上显示日期和时间信息的头部
#include "Audio_ISD4000.h" // ISD4000集成电路接口驱动的头部文件
#include "Control_Handle_Manage.h" // 对控制操作指令进行识别和处理的头部文件
/*==========================================================================================
调试声明:
==========================================================================================*/
#define DEBUG // 调试声明
/*==========================================================================================
全局变量定义
==========================================================================================*/
/*--------------------------------------------------------------------------------------
行列式键盘接口消息任务标志变量的各位定义如下:
┏━━┳━━┳━━┳━━━━┳━━━━┳━━━━┳━━━━┳━━━━┓
┃BIT7┃BIT6┃BIT5┃ BIT4 ┃ BIT3 ┃ BIT2 ┃ BIT1 ┃ BIT0 ┃
┣━━╋━━╋━━╋━━━━╋━━━━╋━━━━╋━━━━╋━━━━┫
┃保留┃保留┃保留┃延时处理┃键盘延时┃键值处理┃有键按下┃继续判别┃
┗━━┻━━┻━━┻━━━━┻━━━━┻━━━━┻━━━━┻━━━━┛
--------------------------------------------------------------------------------------*/
volatile unsigned char key_rc_sign = 0 ;
/*--------------------------------------------------------------------------------------
行列式键盘接口键盘状态数值变量:
--------------------------------------------------------------------------------------*/
volatile unsigned char key_state = 0 ;
/*--------------------------------------------------------------------------------------
行列式键盘接口延迟定时时间数值变量:
--------------------------------------------------------------------------------------*/
volatile unsigned char key_delay_num = 0 ;
/*--------------------------------------------------------------------------------------
用户键盘输入缓冲区共用体变量:
--------------------------------------------------------------------------------------*/
KEY_INPUT_BUF key_buf ;
/*--------------------------------------------------------------------------------------
用户键盘输入缓冲区数组变量1维索引值的变量:
--------------------------------------------------------------------------------------*/
unsigned char key_buf_dim = 0 ;
/*--------------------------------------------------------------------------------------
用户键盘输入计数值变量:
--------------------------------------------------------------------------------------*/
unsigned char key_cnt_num = 0 ;
/*--------------------------------------------------------------------------------------
用户键盘页数计数值变量:
--------------------------------------------------------------------------------------*/
unsigned char key_page_num = 0 ;
/*==========================================================================================
本源程序文件内部使用的函数原型声明
==========================================================================================*/
static void Key_SubProgram_0_24(void) ; // 键盘状态为0和键盘编码24【菜单】
static void Key_SubProgram_0_25(void) ; // 键盘状态为0和键盘编码25【背光】
static void Key_SubProgram_0_26(void) ; // 键盘状态为0和键盘编码26【单个测试】
static void Key_SubProgram_0_27(void) ; // 键盘状态为0和键盘编码27【上页】
static void Key_SubProgram_0_28(void) ; // 键盘状态为0和键盘编码28【下页】
static void Key_SubProgram_0_30(void) ; // 键盘状态为0和键盘编码30【全部测试】
static void Key_SubProgram_1_11(void) ; // 键盘状态为1和键盘编码11【回车】
static void Key_SubProgram_1_12(void) ; // 键盘状态为1和键盘编码12【↑】
static void Key_SubProgram_1_20(void) ; // 键盘状态为1和键盘编码20【取消】
static void Key_SubProgram_1_21(void) ; // 键盘状态为1和键盘编码21【←】
static void Key_SubProgram_1_22(void) ; // 键盘状态为1和键盘编码22【↓】
static void Key_SubProgram_1_23(void) ; // 键盘状态为1和键盘编码23【→】
static void Key_SubProgram_11_1(void) ; // 键盘状态为11和键盘编码1【1】
static void Key_SubProgram_11_2(void) ; // 键盘状态为11和键盘编码2【2】
static void Key_SubProgram_11_3(void) ; // 键盘状态为11和键盘编码3【3】
static void Key_SubProgram_11_4(void) ; // 键盘状态为11和键盘编码4【4】
static void Key_SubProgram_11_5(void) ; // 键盘状态为11和键盘编码5【5】
static void Key_SubProgram_11_6(void) ; // 键盘状态为11和键盘编码6【6】
static void Key_SubProgram_11_7(void) ; // 键盘状态为11和键盘编码7【7】
static void Key_SubProgram_11_8(void) ; // 键盘状态为11和键盘编码8【8】
static void Key_SubProgram_11_9(void) ; // 键盘状态为11和键盘编码9【9】
static void Key_SubProgram_11_10(void) ; // 键盘状态为11和键盘编码10【0】
static void Key_SubProgram_11_11(void) ; // 键盘状态为11和键盘编码11【回车】
static void Key_SubProgram_11_19(void) ; // 键盘状态为11和键盘编码19【退格】
static void Key_SubProgram_11_20(void) ; // 键盘状态为11和键盘编码20【取消】
static void Key_SubProgram_11_29(void) ; // 键盘状态为11和键盘编码29【返回】
static void Key_SubProgram_12_1(void) ; // 键盘状态为12和键盘编码1【1】
static void Key_SubProgram_12_2(void) ; // 键盘状态为12和键盘编码2【2】
static void Key_SubProgram_12_3(void) ; // 键盘状态为12和键盘编码3【3】
static void Key_SubProgram_12_4(void) ; // 键盘状态为12和键盘编码4【4】
static void Key_SubProgram_12_5(void) ; // 键盘状态为12和键盘编码5【5】
static void Key_SubProgram_12_6(void) ; // 键盘状态为12和键盘编码6【6】
static void Key_SubProgram_12_7(void) ; // 键盘状态为12和键盘编码7【7】
static void Key_SubProgram_12_8(void) ; // 键盘状态为12和键盘编码8【8】
static void Key_SubProgram_12_9(void) ; // 键盘状态为12和键盘编码9【9】
static void Key_SubProgram_12_10(void) ; // 键盘状态为12和键盘编码10【0】
static void Key_SubProgram_12_11(void) ; // 键盘状态为12和键盘编码11【回车】
static void Key_SubProgram_12_19(void) ; // 键盘状态为12和键盘编码19【退格】
static void Key_SubProgram_12_20(void) ; // 键盘状态为12和键盘编码20【取消】
static void Key_SubProgram_12_29(void) ; // 键盘状态为12和键盘编码29【返回】
static void Key_SubProgram_13_1(void) ; // 键盘状态为13和键盘编码1【1】
static void Key_SubProgram_13_2(void) ; // 键盘状态为13和键盘编码2【2】
static void Key_SubProgram_13_3(void) ; // 键盘状态为13和键盘编码3【3】
static void Key_SubProgram_13_4(void) ; // 键盘状态为13和键盘编码4【4】
static void Key_SubProgram_13_5(void) ; // 键盘状态为13和键盘编码5【5】
static void Key_SubProgram_13_6(void) ; // 键盘状态为13和键盘编码6【6】
static void Key_SubProgram_13_7(void) ; // 键盘状态为13和键盘编码7【7】
static void Key_SubProgram_13_8(void) ; // 键盘状态为13和键盘编码8【8】
static void Key_SubProgram_13_9(void) ; // 键盘状态为13和键盘编码9【9】
static void Key_SubProgram_13_10(void) ; // 键盘状态为13和键盘编码10【0】
static void Key_SubProgram_13_11(void) ; // 键盘状态为13和键盘编码11【回车】
static void Key_SubProgram_13_14(void) ; // 键盘状态为13和键盘编码14【录音】
static void Key_SubProgram_13_15(void) ; // 键盘状态为13和键盘编码15【播放】
static void Key_SubProgram_13_16(void) ; // 键盘状态为13和键盘编码16【停止】
static void Key_SubProgram_13_19(void) ; // 键盘状态为13和键盘编码19【退格】
static void Key_SubProgram_13_20(void) ; // 键盘状态为13和键盘编码20【取消】
static void Key_SubProgram_13_29(void) ; // 键盘状态为13和键盘编码29【返回】
static void Key_SubProgram_14_1(void) ; // 键盘状态为14和键盘编码1【1】
static void Key_SubProgram_14_2(void) ; // 键盘状态为14和键盘编码2【2】
static void Key_SubProgram_14_3(void) ; // 键盘状态为14和键盘编码3【3】
static void Key_SubProgram_14_4(void) ; // 键盘状态为14和键盘编码4【4】
static void Key_SubProgram_14_5(void) ; // 键盘状态为14和键盘编码5【5】
static void Key_SubProgram_14_6(void) ; // 键盘状态为14和键盘编码6【6】
static void Key_SubProgram_14_7(void) ; // 键盘状态为14和键盘编码7【7】
static void Key_SubProgram_14_8(void) ; // 键盘状态为14和键盘编码8【8】
static void Key_SubProgram_14_9(void) ; // 键盘状态为14和键盘编码9【9】
static void Key_SubProgram_14_10(void) ; // 键盘状态为14和键盘编码10【0】
static void Key_SubProgram_14_11(void) ; // 键盘状态为14和键盘编码11【回车】
static void Key_SubProgram_14_14(void) ; // 键盘状态为14和键盘编码14【连放】
static void Key_SubProgram_14_15(void) ; // 键盘状态为14和键盘编码15【播放】
static void Key_SubProgram_14_16(void) ; // 键盘状态为14和键盘编码16【停止】
static void Key_SubProgram_14_19(void) ; // 键盘状态为14和键盘编码19【退格】
static void Key_SubProgram_14_20(void) ; // 键盘状态为14和键盘编码20【取消】
static void Key_SubProgram_14_29(void) ; // 键盘状态为14和键盘编码29【返回】
static void Key_SubProgram_15_1(void) ; // 键盘状态为15和键盘编码1【1】
static void Key_SubProgram_15_2(void) ; // 键盘状态为15和键盘编码2【2】
static void Key_SubProgram_15_3(void) ; // 键盘状态为15和键盘编码3【3】
static void Key_SubProgram_15_4(void) ; // 键盘状态为15和键盘编码4【4】
static void Key_SubProgram_15_5(void) ; // 键盘状态为15和键盘编码5【5】
static void Key_SubProgram_15_6(void) ; // 键盘状态为15和键盘编码6【6】
static void Key_SubProgram_15_7(void) ; // 键盘状态为15和键盘编码7【7】
static void Key_SubProgram_15_8(void) ; // 键盘状态为15和键盘编码8【8】
static void Key_SubProgram_15_9(void) ; // 键盘状态为15和键盘编码9【9】
static void Key_SubProgram_15_10(void) ; // 键盘状态为15和键盘编码10【0】
static void Key_SubProgram_15_11(void) ; // 键盘状态为15和键盘编码11【回车】
static void Key_SubProgram_15_12(void) ; // 键盘状态为15和键盘编码12【↑】
static void Key_SubProgram_15_18(void) ; // 键盘状态为15和键盘编码18【修改】
static void Key_SubProgram_15_19(void) ; // 键盘状态为15和键盘编码19【退格】
static void Key_SubProgram_15_20(void) ; // 键盘状态为15和键盘编码20【取消】
static void Key_SubProgram_15_21(void) ; // 键盘状态为15和键盘编码21【←】
static void Key_SubProgram_15_22(void) ; // 键盘状态为15和键盘编码22【↓】
static void Key_SubProgram_15_23(void) ; // 键盘状态为15和键盘编码23【→】
static void Key_SubProgram_15_27(void) ; // 键盘状态为15和键盘编码27【上页】
static void Key_SubProgram_15_28(void) ; // 键盘状态为15和键盘编码28【下页】
static void Key_SubProgram_15_29(void) ; // 键盘状态为15和键盘编码29【返回】
static void Key_SubProgram_16_11(void) ; // 键盘状态为16和键盘编码11【回车】
static void Key_SubProgram_16_20(void) ; // 键盘状态为16和键盘编码20【取消】
static void Key_SubProgram_16_29(void) ; // 键盘状态为16和键盘编码29【返回】
static void Key_SubProgram_21_11(void) ; // 键盘状态为21和键盘编码11【回车】
static void Key_SubProgram_21_12(void) ; // 键盘状态为21和键盘编码12【↑】
static void Key_SubProgram_21_20(void) ; // 键盘状态为21和键盘编码20【取消】
static void Key_SubProgram_21_21(void) ; // 键盘状态为21和键盘编码21【←】
static void Key_SubProgram_21_22(void) ; // 键盘状态为21和键盘编码22【↓】
static void Key_SubProgram_21_23(void) ; // 键盘状态为21和键盘编码23【→】
static void Key_SubProgram_21_27(void) ; // 键盘状态为21和键盘编码27【上页】
static void Key_SubProgram_21_28(void) ; // 键盘状态为21和键盘编码28【下页】
static void Key_SubProgram_21_29(void) ; // 键盘状态为21和键盘编码29【返回】
static void Key_SubProgram_23_1(void) ; // 键盘状态为23和键盘编码1【1】
static void Key_SubProgram_23_2(void) ; // 键盘状态为23和键盘编码2【2】
static void Key_SubProgram_23_3(void) ; // 键盘状态为23和键盘编码3【3】
static void Key_SubProgram_23_4(void) ; // 键盘状态为23和键盘编码4【4】
static void Key_SubProgram_23_5(void) ; // 键盘状态为23和键盘编码5【5】
static void Key_SubProgram_23_6(void) ; // 键盘状态为23和键盘编码6【6】
static void Key_SubProgram_23_7(void) ; // 键盘状态为23和键盘编码7【7】
static void Key_SubProgram_23_8(void) ; // 键盘状态为23和键盘编码8【8】
static void Key_SubProgram_23_9(void) ; // 键盘状态为23和键盘编码9【9】
static void Key_SubProgram_23_10(void) ; // 键盘状态为23和键盘编码10【0】
static void Key_SubProgram_23_11(void) ; // 键盘状态为23和键盘编码11【回车】
static void Key_SubProgram_23_12(void) ; // 键盘状态为23和键盘编码12【↑】
static void Key_SubProgram_23_13(void) ; // 键盘状态为23和键盘编码13【-】
static void Key_SubProgram_23_14(void) ; // 键盘状态为23和键盘编码14【G】
static void Key_SubProgram_23_15(void) ; // 键盘状态为23和键盘编码15【DG】
static void Key_SubProgram_23_16(void) ; // 键盘状态为23和键盘编码16【WG】
static void Key_SubProgram_23_17(void) ; // 键盘状态为23和键盘编码17【不用】
static void Key_SubProgram_23_18(void) ; // 键盘状态为23和键盘编码18【修改】
static void Key_SubProgram_23_19(void) ; // 键盘状态为23和键盘编码19【退格】
static void Key_SubProgram_23_20(void) ; // 键盘状态为23和键盘编码20【取消】
static void Key_SubProgram_23_22(void) ; // 键盘状态为23和键盘编码22【↓】
static void Key_SubProgram_23_29(void) ; // 键盘状态为23和键盘编码29【返回】
static void Key_SubProgram_24_20(void) ; // 键盘状态为24和键盘编码20【取消】
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -