⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyboard_rc_int.c

📁 AVR128的键盘控制指令程序
💻 C
📖 第 1 页 / 共 5 页
字号:
/*
********************************************************************************************
源程序文件名:      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 + -