📄 voldet.asm
字号:
;************************ 主音量电位器检测子程序集(编码电位器) ************************
;编码电位器
;占用: ACC, C
;************* 外部变量说明 **********************
IBC_VOLA BIT P3.5 ;*** VOL+ 输入脚
IBC_VOLS BIT P2.0 ;*** VOL- 输入脚
EXTRN BIT(ICW1_FLG) ;正转到位标志位(*作为函数返回值), 开机时清0 !!!
EXTRN BIT(ICCW1_FLG) ;反转到位标志位(*作为函数返回值), 开机时清0 !!!
EXTRN BIT(ICW2_FLG) ;正转到位标志位(*作为函数返回值), 开机时清0 !!!
EXTRN BIT(ICCW2_FLG) ;反转到位标志位(*作为函数返回值), 开机时清0 !!!
EXTRN BIT(BKEY_BNCE)
EXTRN DATA(AD_DELAY)
;************ 公共变量定义 ****************
PUBLIC INPUT_DET
;=============================== 公共子程序 (可被C调用) ===============================
;***** 检测编码电位器的+-标志位*****************
;注意: 静音时不要调用该程序!!!
;该程序插入主程序中, 每次调用后, 刷新 CW2_FLG(正转到位标志) 刷新 CCW2_FLG(反转到位标志)
;主程序通过检测 CW2_FLG 和 CCW2_FLG 来确定音量的增加或减少, 音量处理后要把标志清0
;***********************************************
INPUT_DET:
SETB IBC_VOLA ;ready to detect volume-sw and input-sw
SETB IBC_VOLS ;bit 1AH=1 00CH=1 bit 18H=1
JB ICW2_FLG,ILBL_P12
JB ICCW2_FLG,ILBL_P12 ;BC_VOLS
JB IBC_VOLA,ILBL_P14 ;CW顺时钟 bit 1BH=1 00CH=2 bit 19H=1
JB IBC_VOLS,ILBL_P15
CLR ICW2_FLG
CLR ICCW2_FLG ;BC_VOLS
ILBL_P12:
RET
ILBL_P14: ;BC_VOLA
JNB IBC_VOLS,ILBL_P17
CLR ICW2_FLG
CLR ICCW2_FLG ;BC_VOLS
RET
ILBL_P17:
SETB ICW2_FLG
SETB ICW1_FLG
CLR ICCW1_FLG
CLR ICCW2_FLG ;BC_VOLS
MOV AD_DELAY,#8
RET
ILBL_P15:
CLR ICW2_FLG
SETB ICCW2_FLG ;BC_VOLS
CLR ICW1_FLG
SETB ICCW1_FLG
MOV AD_DELAY,#8
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -