4X4矩阵组合按键小程序开发实现

版权申诉
0 下载量 70 浏览量 更新于2024-11-08 收藏 1KB RAR 举报
资源摘要信息: "该压缩包子文件包含两个文件,分别是'comb_key.c'和'comb_key.h'。这两个文件共同构成了一个使用4X4矩阵按键实现组合按键功能的程序。程序文件'comb_key.c'包含了实现组合按键逻辑的具体代码,而'comb_key.h'则可能包含了相关的头文件定义、宏定义和函数声明等。标题中提到的'comb_key.rar'可能是一个压缩文件的名称,表示该资源被压缩打包,以方便下载或分发。 在编程和硬件领域,矩阵键盘是一种常见的输入设备,它通过行列交叉的方式来识别按键,相比于线性键盘,它可以大幅减少所需的I/O端口数量。矩阵键盘的常见配置有2x3、4x3、4x4等,其中4x4矩阵键盘具有16个按键。每个按键的检测需要两个坐标来定义,即对应的行和列。 标题中提到的'组合按键'概念,意味着该程序不仅仅能检测单一按键的按下,还能检测多个按键同时或依次按下的情况,这为用户提供了更复杂的输入方式,比如可以实现键盘快捷键功能。在实际应用中,实现组合按键功能需要对按键的扫描算法进行优化,以便快速且准确地识别出用户输入的按键序列。 描述中提到的“已经实现了”,说明该程序是完整的,并且可以运行。在实际部署时,可能需要将其与具体的硬件设备相结合,如单片机或其他微控制器系统,以及相应的驱动程序。 从标题和描述中可以提炼出以下知识点: 1. 矩阵键盘的概念及工作原理:通过行列交叉来识别按键的输入设备,能够有效减少所需的I/O端口数量。 2. 4X4矩阵键盘的特点和按键数量:共有16个按键,需要4个行线和4个列线进行控制。 3. 组合按键的定义:单个按键的简单输入,以及同时或依次按下多个按键的复杂输入模式。 4. 组合按键程序的设计与实现:需要有高效的算法来处理按键的组合和顺序,实现复杂的功能。 5. 硬件与软件的结合:编程实现的组合按键程序需要与实际的硬件设备相结合,实现最终的功能。 6. 编程语言和环境:资源中包含的.c和.h文件表明,实现该程序可能使用了C语言,并在某种编程环境或开发框架下进行。 该资源对于希望了解或实现矩阵键盘编程的开发者来说,具有重要的参考价值。用户可以根据提供的代码和相关知识,进一步学习如何在自己的项目中实现和优化矩阵键盘的功能。"

以hive的角度检查语法: with cur_dim_comb as (SELECT DISTINCT t.dim_comb ,t.var_sub_class ,t.acc_value FROM gerp.cux_cst_data_alloc_his t WHERE t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id )) select tp.bd_code --事业部编码 ,tp.bd_name --事业部名称 ,hp.ou_code --OU名称 ,hp.ou_name --OU编码 ,op.main_class_desc --差异大类 ,op.acc_value --科目代码 ,op.acc_desc --科目名称 ,op.dim_comb --区分维度 ,op.begin_amount --期初余额 ,op.accrual_amount --本期发生 ,op.balance_diff_alloc_amount --期末差异结存 ,op.var_sub_class ,op.main_class_value ,op.org_id ,op.period_name ,op.job_ver_id from (select up.* ,q1.* from (SELECT DISTINCT maincl.* ,t.* FROM t inner join (SELECT fv.flex_value ,fv.description FROM fv inner join fs on fv.flex_value_set_id = fs.flex_value_set_id AND fs.flex_value_set_name = 'CUX_CST_VARIANCE_TYPE' AND fv.enabled_flag = 'Y' AND fv.hierarchy_level = '2' AND fv.flex_value LIKE '10%' ) maincl on t.var_main_class = maincl.flex_value inner join cur_dim_comb on cur_dim_comb.var_sub_class = t.var_sub_class and cur_dim_comb.acc_value = t.acc_value WHERE 1 = 1 AND t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id) ORDER BY maincl.description ,t.acc_value ,cur_dim_comb.dim_comb ) up inner join (SELECT t1.* ,SUM(t1.begin_amount) begin_amount ,SUM(t1.accrual_amount) accrual_amount ,SUM(t1.balance_diff_alloc_amount) balance_diff_alloc_amount FROM gerp.cux_cst_data_alloc_his t1 LEFT JOIN gerp.cux_cst_data_alloc_his t ON t1.top_var_type = '10' AND t1.var_sub_class = t.var_sub_class --p_var_sub_class AND t1.org_id = t.org_id --p_org_id AND t1.period_name = t.period_name --p_period_name AND t1.job_ver_id = t.job_ver_id --p_job_ver_id AND t1.acc_value = t.acc_value --p_acc_value WHERE t1.dim_comb in (select distinct dim_comb from cur_dim_comb) group by t1.org_id,t1.period_name,t1.job_ver_id,t1.var_sub_class,t1.acc_value ) q1 on q1.org_id = up.org_id --p_org_id AND q1.period_name = up.period_name --p_period_name AND q1.job_ver_id = up.job_ver_id --p_job_ver_id AND q1.var_sub_class = up.var_sub_class --p_var_sub_class AND q1.acc_value = up.acc_value --p_acc_value ) op

2023-05-26 上传