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

📄 a30_key_led.asm

📁 用W588D写的驱动6210-2.4G无线模块,收发程序在一块,(65C02汇编指令实现)
💻 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 + -