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

📄 mvoldet.asm

📁 完整功放的控制程序
💻 ASM
字号:
;************************ 主音量电位器检测子程序集(编码电位器) ************************
;编码电位器
;占用:	ACC, C
       
       ;************* 外部变量说明 **********************
       	BC_VOLA		BIT	P2.1	;*** VOL+ 输入脚
       	BC_VOLS		BIT	P2.2	;*** VOL- 输入脚
       	
	EXTRN	BIT(CW2_FLG)     	;正转到位标志位(*作为函数返回值), 开机时清0 !!!
	EXTRN	BIT(CCW2_FLG)           ;反转到位标志位(*作为函数返回值), 开机时清0 !!!
	EXTRN	BIT(CW1_FLG)      	;正转起始标志位, 		  开机时清0 !!!
	EXTRN	BIT(CCW1_FLG)           ;反转起始标志位, 		  开机时清0 !!!

	EXTRN	DATA(ROTE_DIRECT)       ;=1 为正向,=2为反向, 方向暂存
	
	
	
	
	
	;************ 公共变量定义 ****************
	PUBLIC	MVOL_DET



;=============================== 公共子程序 (可被C调用) ===============================
;***** 检测编码电位器的+-标志位*****************
;注意: 静音时不要调用该程序!!!
;该程序插入主程序中, 每次调用后, 刷新 CW2_FLG(正转到位标志) 刷新 CCW2_FLG(反转到位标志) 
;主程序通过检测 CW2_FLG 和 CCW2_FLG 来确定音量的增加或减少, 音量处理后要把标志清0
;***********************************************

MVOL_DET:
     SETB  BC_VOLA              ;ready to detect volume-sw and input-sw
     SETB  BC_VOLS              ;bit 1AH=1    00CH=1   bit 18H=1  
     JB    CW2_FLG,LBL_P12 
     JB    CCW2_FLG,LBL_P12  	;BC_VOLS
     JNB   CW1_FLG,LBL_P13 
     JNB   BC_VOLA,LBL_P14      ;CW顺时钟 bit 1BH=1  00CH=2  bit 19H=1
     JNB   BC_VOLS,LBL_P15 
     SJMP LBL_P16 
LBL_P14:                        ;BC_VOLA
     JNB   BC_VOLS,LBL_P17 
     RET 
LBL_P17:
      MOV  ROTE_DIRECT,#001H
LBL_P15:
      SJMP LBL_P12            ;ROTE_DIRECT 方向=1 为正向,=2为反向
LBL_P16:
      CLR  CW1_FLG
      CLR  CW2_FLG
      CLR  CCW1_FLG
      CLR  CCW2_FLG   		;BC_VOLS
      MOV  A,ROTE_DIRECT 
      CJNE A,#001H,LBL_P21 
LBL_P22:
      CLR   SYS_START
      SETB  CW2_FLG           ;23H
LBL_P12:
      RET
LBL_P13:
      JNB   CCW1_FLG,LBL_P24
      JNB   BC_VOLA,LBL_P18 
      JNB   BC_VOLS,LBL_P12 
      SJMP  LBL_P19 
LBL_P18:			
      JNB   BC_VOLS,LBL_P20 
      RET 
LBL_P20:
      MOV ROTE_DIRECT,#002H
      RET 
LBL_P19:
      CLR  CW1_FLG
      CLR  CW2_FLG
      CLR  CCW1_FLG
      CLR  CCW2_FLG
      MOV  A,ROTE_DIRECT 
      CJNE A,#002H,LBL_P22 
LBL_P21:
      CLR   SYS_START
      SETB  CCW2_FLG
      RET 
LBL_P24:			
      JB    BC_VOLA,LBL_P23 
      JNB   BC_VOLS,LBL_P12 
      CLR   CW2_FLG
      CLR   CCW1_FLG
      CLR   CCW2_FLG 
      SETB  CW1_FLG 
      RET 
LBL_P23:			
      JB    BC_VOLS,LBL_P12 
      JNB   BC_VOLA,LBL_P12 
      CLR   CW1_FLG
      CLR   CW2_FLG
      CLR   CCW2_FLG 
      SETB  CCW1_FLG 
      RET 

⌨️ 快捷键说明

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