📄 a30_key_led.asm
字号:
;********************************************************************
;********************************************************************
;==================按键扫描,以及处理和LED闪烁========================
;>>包含函数:1.MLED_FLASH ;LED闪动
; 3.MKEY_SCAN ;按键扫描
; 4.MKEY1_SZ ;K1处理
; 5.MKEY2_REC ;K2处理
; 6.MKEY3_PLAY ;K3处理
;====================================================================
;修改日期:2008/01/25
;程序员:Wangbo
;====================================================================
Mac_KEY_Port EQU BP1
Mac_KEY_NUM EQU 0EH
Mac_KEY1_PRE EQU 02H
Mac_KEY2_PRE EQU 04H
Mac_KEY3_PRE EQU 08H
Mac_SYSLED_Port EQU BP0
Mac_SYSLED_NUM EQU DBH
;数码管
; ***A****
; F* *B
; ****G***
; E* *C
; ****D***
;
;====================================================================
;录音工作标志,控制一LED不断地灯闪烁
;接口:BP03
;接口定义: Mac_SYSLED_Port EQU BP0
; Mac_SYSLED_NUM EQU 04H
;====================================================================
;1.LED慢速闪动
;-----------------------------------------------
MLED_FLASH:
LDA !Mac_SYSLED_Port ;取接口数值
BIT #Mac_SYSLED_NUM
BEQ SLED_ON
LDA #Mac_SYSLED_NUM
TRB !Mac_SYSLED_Port ;清接口
BRA SLED_FLASH_RTS
SLED_ON:
LDA #Mac_SYSLED_NUM
TSB !Mac_SYSLED_Port ;置位接口
SLED_FLASH_RTS:
RTS
;====================================================================
;3. 按键扫描
; 键盘属性: 一般的键盘,一个端口对应一个按键
; 按键接口: BP12,BP13,BP14
; 接口定义: Mac_KEY_Port EQU BP1
; Mac_KEY_NUM EQU 1CH
;-------------按键处理过程中所定义变量------------------
; gKEY_NUM DS 1 ;按键扫描值。
; gKEY_Process DS 1 ;按键按下标志
; gKEY_Filter DS 1 ;滤波计数
;====================================================================
MKEY_SCAN:
;--------------------------------------------
LDA Mac_KEY_Port ;按键端口
AND #Mac_KEY_NUM ;总按键对应的数值
CMP #Mac_KEY_NUM
BCS SKEY_SCAN_END
;------------------------------------------------有键按下
INC gKEY_Filter
LDA gKEY_Filter ;滤波处理
CMP #3 ;数值可调
BCC SKEY_SCAN_RTS
STZ gKEY_Filter
;--------------------------------------------
LDA Mac_KEY_Port
AND #Mac_KEY_NUM ;总按键对应的数值
STA gKEY_NUM ;传送键值
TRB gKEY_Process
;--------------------------------------------
STZ gSTOP_Counter ;清SLEEP计数器
;--------------------------------------------
BRA SKEY_SCAN_RTS
SKEY_SCAN_END:
;------------------------------------------------没键按下
STZ gKEY_Filter
LDA #Mac_KEY_NUM
TRB gKEY_Process
TSB gKEY_NUM
SKEY_SCAN_RTS:
RTS
;====================================================================
;4. K1处理 SW3_PLAY
; K1对应的端口:BP11
;----------------------------------------------
MKEY1_PLAY:
LDA gKEY_NUM
BIT #Mac_KEY1_PRE
BNE SKEY1_PLAY_RTS
LDA gKEY_Process
BIT #Mac_KEY1_PRE
BNE SKEY1_PLAY_RTS
;-------------------------------------------确定有键按下
LDA #Mac_KEY1_PRE
TSB gKEY_Process
;--------------------------------------------
STZ gSTOP_Counter ;清SLEEP计数器
;--------------------------------------------
JSR MLED_FLASH
SKEY1_PLAY_RTS:
RTS
;====================================================================
;5. K2处理
; K2对应的端口:BP12
;------------------------------------------------
MKEY2_REC:
LDA gKEY_NUM
BIT #Mac_KEY2_PRE
BNE MKEY2_REC_RTS
LDA gKEY_Process
BIT #Mac_KEY2_PRE
BEQ SKEY2_REC_RUN1
JMP MKEY2_REC_RTS
SKEY2_REC_RUN1:
;--------------------------------------------确定有键按下
LDA #Mac_KEY2_PRE
TSB gKEY_Process
;--------------------------------------------
STZ gSTOP_Counter ;清SLEEP计数器
;--------------------------------------------
JSR MLED_FLASH
MKEY2_REC_RTS:
RTS
;====================================================================
;6. K3处理
; K3对应的端口:BP13
;------------------------------------------------
MKEY3_TRACK:
LDA gKEY_NUM
BIT #Mac_KEY3_PRE
BNE SKEY3_TRACK_RTS
LDA gKEY_Process
BIT #Mac_KEY3_PRE
BEQ SKEY3_PLAY_RUN_ON
JMP SKEY3_TRACK_RTS
SKEY3_PLAY_RUN_ON:
;---------------------确定有键按下
LDA #Mac_KEY3_PRE
TSB gKEY_Process
;--------------------------------------------
STZ gSTOP_Counter ;清SLEEP计数器
;--------------------------------------------
INC gDIP_NUM
JSR MDIP_NUM
SKEY3_TRACK_RTS:
RTS
;=========================================================
;数码管显示,显示gDIP_NUM中的数字(0-9)
MDIP_NUM:
LDA gDIP_NUM
CMP #07H
BCC SDIP_NUM_DIP
LDA #01H
STA gDIP_NUM
SDIP_NUM_DIP:
LDX gDIP_NUM
LDA TAB_LED_NUM,X
STA !BP0
RTS
;数码管显示字
TAB_LED_NUM:
;--------0---1---2---3---4---5---6---7---8---9---A
DB FFH,F9H,A4H,B0H,99H,92H,82H,F8H,00H,90H,C0H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -