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

📄 rd_usekey.lis

📁 LCD1602键盘显示模块实例
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module RD_UseKey.c
                        .area text(rom, con, rel)
 0000                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
                        .area data(ram, con, rel)
 0000                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 0000           _g_cReturnKeyNum::
 0000                   .blkb 1
                        .area idata
 0000 FF                .byte 255
                        .area data(ram, con, rel)
 0001                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 0001           _g_cReturnLongPressKeyNum::
 0001                   .blkb 1
                        .area idata
 0001 FF                .byte 255
                        .area data(ram, con, rel)
 0002                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 0002           _g_wKeyPressTimeCounter::
 0002                   .blkb 2
                        .area idata
 0002 0000              .word 0
                        .area data(ram, con, rel)
 0004                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 0004           _g_wKeyPressDelayCounter::
 0004                   .blkb 2
                        .area idata
 0004 0000              .word 0
                        .area data(ram, con, rel)
 0006                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 0006           _s_cKeyBUFFCounter:
 0006                   .blkb 1
                        .area idata
 0006 00                .byte 0
                        .area data(ram, con, rel)
 0007                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 0007           _s_cKeyBUFFHeadPoint:
 0007                   .blkb 1
                        .area idata
 0007 00                .byte 0
                        .area data(ram, con, rel)
 0008                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 0008           _s_cKeyBUFFTailPoint:
 0008                   .blkb 1
                        .area idata
 0008 00                .byte 0
                        .area data(ram, con, rel)
 0009                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 0009           _s_cLongKeyPressNum:
 0009                   .blkb 1
                        .area idata
 0009 FF                .byte 255
                        .area data(ram, con, rel)
 000A                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 000A           _s_cKeyNum:
 000A                   .blkb 1
                        .area idata
 000A FF                .byte 255
                        .area data(ram, con, rel)
 000B                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 000B           L2:
 000B                   .blkb 1
                        .area idata
 000B FF                .byte 255
                        .area data(ram, con, rel)
 000C                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 000C           L3:
 000C                   .blkb 1
                        .area idata
 000C 00                .byte 0
                        .area data(ram, con, rel)
 000D                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 000D           L4:
 000D                   .blkb 2
                        .area idata
 000D 0000              .word 0
                        .area data(ram, con, rel)
 000F                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
                        .area text(rom, con, rel)
 0000                   .dbfile O:\2007全国电子设计大赛\键盘显示模块\RD_UseKey.c
 0000                   .dbfunc s _Key_Scan __Key_Scan fV
 0000                   .dbsym s LongPressAcceleration L4 i
 0000                   .dbsym s IfLongKeyPress L3 c
 0000                   .dbsym s OldKeyCode L2 c
 0000           ;    NowKeyCode0 -> R20
                        .even
 0000           __Key_Scan:
 0000 4A93              st -y,R20
 0002                   .dbline -1
 0002                   .dbline 179
 0002           ; /***********************************************************
 0002           ; *   函数库说明:按键处理函数库                             *
 0002           ; *   版本:      v2.00                                      *
 0002           ; *   作者:      傻孩子                                     *
 0002           ; *   创建日期:  2005年11月27日                             *
 0002           ; * -------------------------------------------------------- *
 0002           ; *  [支 持 库]                                              *
 0002           ; *   支持库名称:RD_MacroAndConst.h                         *
 0002           ; *   需要版本:  v0.01 &abv                                 *
 0002           ; *   支持库说明:系统常用宏定义库                           *
 0002           ; *                                                          *
 0002           ; *   支持库名称:RD_UseKey.h                                *
 0002           ; *   需要版本:  ----                                       *
 0002           ; *   支持库说明:按键处理声明库                             *
 0002           ; * -------------------------------------------------------- *
 0002           ; *  [版本更新]                                              *
 0002           ; *   修改:      傻孩子                                     *
 0002           ; *   修改日期:  2006年4月15日                              *
 0002           ; *   版本:      v1.3                                       *
 0002           ; *                                                          *
 0002           ; *   修改:      傻孩子                                     *
 0002           ; *   修改日期:  2006年4月23日                              *
 0002           ; *   版本:      v1.31                                      *
 0002           ; *                                                          *
 0002           ; *   修改:      傻孩子                                     *
 0002           ; *   修改日期:  2006年5月5日                               *
 0002           ; *   版本:      v1.32                                      *
 0002           ; *                                                          *
 0002           ; *   修改:      王卓然                                     *
 0002           ; *   修改日期:  2007年2月25日                              *
 0002           ; *   版本:      v2.00                                      *
 0002           ; * -------------------------------------------------------- *
 0002           ; *  [版本历史]                                              *
 0002           ; *     v1.3以下  1、提供了对键盘缓冲区的支持。              *
 0002           ; *               2、支持长按键处理。                        *
 0002           ; *               3、需要外部提供一个毫秒级的延时计数器。    *
 0002           ; *               4、需要外部提供一个有返回值得键盘扫描      *
 0002           ; *                  函数,该函数需要做基本的去抖。          *
 0002           ; *               5、可以外部定义缓冲区大小,空键值。        *
 0002           ; *               6、增加了一个入口键盘扫描码的噪声抑制参    *
 0002           ; *                 KEY_PRESS_DELAY,该值为毫秒级的单向      *
 0002           ; *                 递减数值,即如果值不为零,则减到0为。    *
 0002           ; *                 如果键盘响应过于迟钝,可以适当改小该     *
 0002           ; *                 参数值。                                 *
 0002           ; *     v1.3      修改了头文件的组织形式,对外的接口模式     *
 0002           ; *               对一些时间计数器进行了分类和统一宏定义     *
 0002           ; *               允许外部通过宏定义将这些接口连接到实际     *
 0002           ; *               的计数器上。同时兼容从前的版本。           *
 0002           ; *     v1.31     修正了按键去抖计数器会干扰外部单向计数     *
 0002           ; *               器的错误。                                 *
 0002           ; *     v1.32     允许选择自动刷新按键和手动刷新按键两种模式 *
 0002           ; *     v2.00     支持长按键以重复的间隔触发。               *
 0002           ; * -------------------------------------------------------- *
 0002           ; *  [说明]                                                  *
 0002           ; *            1、在外部合适的位置(毫秒中断程序)增加         *
 0002           ; *               USEKEY_INSERT_MS_TIMER_OVF_ISR_CODE来保证  *
 0002           ; *               头文件的正常使用。                         *
 0002           ; *            2、可以通过定义KEY_BUFF_SIZE来设置键盘缓冲区  *
 0002           ; *               的大小。                                   *
 0002           ; *            3、可以通过定义KEY_PRESS_DELAY来设置去抖得    *
 0002           ; *               时间常数。                                 *
 0002           ; *            4、可以通过_USE_KEY_PRESS_SCAN_FUNC_INTERFACE *
 0002           ; *               来连接用于键盘扫描的函数。该函数必须返回   *
 0002           ; *               扫描码。                                   *
 0002           ; *            5、通过GetKeyCode()函数来获得缓冲区状态,当   *
 0002           ; *               该函数返回True时,可以从ReturnKeyNum和     *
 0002           ; *               ReturnLongPressKeyNum中分别获取按键和长    *
 0002           ; *               按键的扫描码,两个值不能同时不为KeyNull    *
 0002           ; *            6、允许通过_USE_KEY_MANUL_REFRESH来选择自动刷 *
 0002           ; *               新按键缓冲区的模式。                       *
 0002           ; *            7、可以通过宏_USE_KEY_LONG_PRESS_DELAY_TIME来 *
 0002           ; *               定义长按键的最小判定时间。                 *
 0002           ; *            9、可以通过宏_USE_KEY_LONG_PRESS_REPEAT来打开 *
 0002           ; *               长按键重复触发功能。                       *
 0002           ; *            8、宏_USE_KEY_LONG_KEY_FASTEST_SPEED_LEVEL可  *
 0002           ; *               以用来设定长按键时重复触发的最小时间间隔等 *
 0002           ; *               级。取值范围是0至4,数值越大,时间间隔越小 *
 0002           ; *               默认情况下为2,即一秒钟重复4次。           *
 0002           ; ***********************************************************/
 0002           ; 
 0002           ; /********************
 0002           ; * 头 文 件 配 置 区 *
 0002           ; ********************/
 0002           ; # include "RD_MacroAndConst.h"
 0002           ; # include "LIB_Config.h"
 0002           ; # include "RD_UseKey.h"
 0002           ; 
 0002           ; /********************
 0002           ; *   系 统 宏 定 义  *
 0002           ; ********************/
 0002           ; 
 0002           ; 
 0002           ; /*------------------*
 0002           ; *   常 数 宏 定 义  *
 0002           ; *------------------*/
 0002           ; #ifndef KEY_BUFF_SIZE
 0002           ;     # define KEY_BUFF_SIZE     8
 0002           ; #endif
 0002           ; #ifndef KEY_NULL
 0002           ;     # define KEY_NULL         0xff
 0002           ; #endif
 0002           ; 
 0002           ; #ifndef KEY_PRESS_DELAY
 0002           ;     # define KEY_PRESS_DELAY  50
 0002           ; #endif
 0002           ; 
 0002           ; #ifndef _USE_KEY_LONG_PRESS_DELAY_TIME
 0002           ;     # define _USE_KEY_LONG_PRESS_DELAY_TIME     1000
 0002           ; #endif
 0002           ; #ifndef _USE_KEY_LONG_KEY_FASTEST_SPEED_LEVEL
 0002           ;     # define _USE_KEY_LONG_KEY_FASTEST_SPEED_LEVEL 2
 0002           ; #endif
 0002           ; 
 0002           ; #if _USE_KEY_LONG_KEY_FASTEST_SPEED_LEVEL == 0
 0002           ;     # define _USE_KEY_LONG_PRESS_FASTEST_SPEED 0x03ff
 0002           ; #elif _USE_KEY_LONG_KEY_FASTEST_SPEED_LEVEL == 1
 0002           ;     # define _USE_KEY_LONG_PRESS_FASTEST_SPEED 0x01ff
 0002           ; #elif _USE_KEY_LONG_KEY_FASTEST_SPEED_LEVEL == 2
 0002           ;     # define _USE_KEY_LONG_PRESS_FASTEST_SPEED 0x00ff
 0002           ; #elif _USE_KEY_LONG_KEY_FASTEST_SPEED_LEVEL == 3
 0002           ;     # define _USE_KEY_LONG_PRESS_FASTEST_SPEED 0x007f
 0002           ; #elif _USE_KEY_LONG_KEY_FASTEST_SPEED_LEVEL == 4
 0002           ;     # define _USE_KEY_LONG_PRESS_FASTEST_SPEED 0x003f
 0002           ; #else
 0002           ;     # define _USE_KEY_LONG_PRESS_FASTEST_SPEED 0x00ff 
 0002           ; #endif
 0002           ; 
 0002           ; /********************
 0002           ; *   函 数 声 明 区  *
 0002           ; ********************/
 0002           ; static void _Key_Scan(void);
 0002           ; 
 0002           ; /********************
 0002           ; *   函 数 声 明 区  *
 0002           ; ********************/
 0002           ; void Add_Key_Code(void);
 0002           ; unsigned char Get_Key_Code(void);
 0002           ; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -