?? rd_usekey.lis
字號:
.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 + -