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

📄 inputdet.asm

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

	EXTRN	DATA(IROTE_DIRECT)       ;=1 为正向,=2为反向, 方向暂存
	
	
	;************ 公共变量定义 ****************
	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
     JNB   ICW1_FLG,ILBL_P13 
     JNB   IBC_VOLA,ILBL_P14      ;CW顺时钟 bit 1BH=1  00CH=2  bit 19H=1
     JNB   IBC_VOLS,ILBL_P15 
     SJMP ILBL_P16 
ILBL_P14:                        ;BC_VOLA
     JNB   IBC_VOLS,ILBL_P17 
     RET 
ILBL_P17:
      MOV  IROTE_DIRECT,#001H
ILBL_P15:
      SJMP ILBL_P12            ;ROTE_DIRECT 方向=1 为正向,=2为反向
ILBL_P16:
      CLR  ICW1_FLG
      CLR  ICW2_FLG
      CLR  ICCW1_FLG
      CLR  ICCW2_FLG   		;BC_VOLS
      MOV  A,IROTE_DIRECT 
      CJNE A,#001H,ILBL_P21 
ILBL_P22:
      CLR   SYS_START
      SETB  ICW2_FLG           ;23H
ILBL_P12:
      RET
ILBL_P13:
      JNB   ICCW1_FLG,ILBL_P24
      JNB   IBC_VOLA,ILBL_P18 
      JNB   IBC_VOLS,ILBL_P12 
      SJMP  ILBL_P19 
ILBL_P18:			
      JNB   IBC_VOLS,ILBL_P20 
      RET 
ILBL_P20:
      MOV IROTE_DIRECT,#002H
      RET 
ILBL_P19:
      CLR  ICW1_FLG
      CLR  ICW2_FLG
      CLR  ICCW1_FLG
      CLR  ICCW2_FLG
      MOV  A,IROTE_DIRECT 
      CJNE A,#002H,ILBL_P22 
ILBL_P21:
      CLR   SYS_START
      SETB  ICCW2_FLG
      RET 
ILBL_P24:			
      JB    IBC_VOLA,ILBL_P23 
      JNB   IBC_VOLS,ILBL_P12 
      CLR   ICW2_FLG
      CLR   ICCW1_FLG
      CLR   ICCW2_FLG 
      SETB  ICW1_FLG 
      RET 
ILBL_P23:			
      JB    IBC_VOLS,ILBL_P12 
      JNB   IBC_VOLA,ILBL_P12 
      CLR   ICW1_FLG
      CLR   ICW2_FLG
      CLR   ICCW2_FLG 
      SETB  ICCW1_FLG 
      RET 

⌨️ 快捷键说明

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