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

📄 11.asm

📁 lcd 显示 到遥控功能 开关 和编码器 电子音量是PT2314
💻 ASM
📖 第 1 页 / 共 4 页
字号:
		LCALL	WRTS
		MOV	SHUJU,#"C"
		LCALL	WRTS
      		MOV	SHUJU,#"D"
		LCALL	WRTS
		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		RET
;--------------------------------
IN_DIS3:	MOV	ZLING,#087H
		LCALL	WRTC
      		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		MOV	SHUJU,#"V"
		LCALL	WRTS
		MOV	SHUJU,#"C"
		LCALL	WRTS
      		MOV	SHUJU,#"D"
		LCALL	WRTS
		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		RET
;---------------------------
IN_DIS4:	MOV	ZLING,#087H
		LCALL	WRTC
      		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		MOV	SHUJU,#"D"
		LCALL	WRTS
		MOV	SHUJU,#"V"
		LCALL	WRTS
      		MOV	SHUJU,#"D"
		LCALL	WRTS
		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		RET
;----------------------
LOUD_DIS:	MOV	ZLING,#08DH
		LCALL	WRTC
      		MOV	SHUJU,#"3"
		LCALL	WRTS
      		MOV	SHUJU,#"D"
		LCALL	WRTS
		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		RET
LOUD_OF:	MOV	ZLING,#08DH
		LCALL	WRTC
      		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		MOV	SHUJU,#00100000B
		LCALL	WRTS
		MOV	SHUJU,#00100000B
		LCALL	WRTS
      		RET




BMQ:
                PUSH    ACC
	        PUSH    PSW
	        MOV     PSW,#08H
	        MOV     TH0,#0dcH
	        MOV     TL0,#00H
                MOV     A,TM1
                JZ      TM1_0
                DEC     TM1
                JMP     TM1_2
TM1_0:
                MOV      A,#100
                MOV      TM1,A    
TM1_1:
	        MOV      A,TM2
	        JZ       TM2_1
	        DEC      TM2
	        JMP      TM1_2
TM2_1:
	        MOV      FUNINT,#0	       
TM1_2:
TIMER0:    
             INC       SEC100 
             MOV       A,SEC100 
             CJNE      A,#100,TIMER0_E 
             MOV       SEC100,#0 
       ;      LCALL     TIME_PRO 
             MOV       A,SEC      ;"51C51 显示 1 秒钟,消失一秒种,形成闪动 
             ANL       A,#01 
             JZ        TIMER0_1 
             MOV       DIS_S0,#20H    ;" " 
             MOV       DIS_S1,#20H    ;" " 
             MOV       DIS_S2,#20H    ;" " 
             MOV       DIS_S3,#20H    ;" " 
             MOV       DIS_S4,#20H    ;" " 
             MOV       DIS_S5,#20H    ;" " 
             SJMP      TIMER0_2 
TIMER0_1:    MOV       DIS_S0,#35H    ;"5" 
             MOV       DIS_S1,#31H    ;"1" 
             MOV       DIS_S2,#43H    ;"C" 
             MOV       DIS_S3,#35H    ;"5" 
             MOV       DIS_S4,#31H    ;"1" 
             MOV       DIS_S5,#20H    ;" " 
TIMER0_2:
	     MOV       R1,#00H 
             MOV       DIS_H,HOUR 
             MOV       DIS_M,MIN 
             MOV       DIS_S,SEC 
         ;    LCALL     UPDATE_BUF 
         ;    LCALL     DISPLAY_PRO 
TIMER0_E: 
	        MOV      A,P0	  
	        anl      A,#0C0H 
	        MOV      R7,A
                jb       acc.6,BMQ1
               
	        XRL      A,LASTBMQ
	        ANL      A,#40h
	        JZ       BMQ1
                MOV      A,R7
                JB       ACC.7,BMUPKEY              
                MOV      TAB_KEY,#17
                JMP      BMQ1
BMUPKEY:
                MOV      TAB_KEY,#18
BMQ1:
	        MOV      A,LASTBMQ
	        ANL      A,#3FH
	        ORL      A,R7
	        MOV      LASTBMQ,A
                MOV      A,P2 
                RRC      A
                MOV      DP2,A            
	        MOV      A,DP2	  
	        anl      A,#03H 
	        MOV      R7,A
                jb       acc.0,BMQ2              
	        XRL      A,LASTBMQ
	        ANL      A,#01h
	        JZ       BMQ2
                MOV      A,R7
                JB       ACC.1,BMUPKEY1              
                MOV      TAB_KEY,#13;ok
                JMP      BMQ2
BMUPKEY1:
                MOV      TAB_KEY,#14;ok
BMQ2:
	        MOV     A,LASTBMQ
	        ANL     A,#0FCH
	        ORL     A,R7
	        MOV     LASTBMQ,A
	        MOV     A,DP2	  
	        anl     A,#0CH 
	        MOV     R7,A
                jb      acc.2,BMQ3               
	        XRL     A,LASTBMQ
	        ANL     A,#04h
	        JZ      BMQ3
                MOV     A,R7
                JB      ACC.3,BMUPKEY2              
                MOV     TAB_KEY,#11;ok
                JMP     BMQ3
BMUPKEY2:
                MOV     TAB_KEY,#12;ok
BMQ3:
	        MOV     A,LASTBMQ
	        ANL     A,#0F3H
	        ORL     A,R7
	        MOV     LASTBMQ,A
	        ;//////////////////////
	        MOV     A,DP2	  
	        anl     A,#30H 
	        MOV     R7,A
                jb      acc.4,BMQ4               
	        XRL     A,LASTBMQ
	        ANL     A,#10h
	        JZ      BMQ4
                MOV     A,R7
                JB      ACC.5,BMUPKEY3              
                MOV     TAB_KEY,#16
                JMP     BMQ4
BMUPKEY3:
                MOV     TAB_KEY,#15
BMQ4:
	        MOV     A,LASTBMQ
	        ANL     A,#0CFH
	        ORL     A,R7
	        MOV     LASTBMQ,A
KEYEXT:
	        POP     psw
	        POP     acc
	        RETI
;--------------------------------------------------------------------------------------------------------
	
REMTOE:		CLR	EX0
		PUSH	ACC
		PUSH	PSW
                mov     psw,#10
		MOV	C,P3.2
		NOP
		NOP
		JNC 	CONREM
		JNC 	CONREM
		NOP
		NOP
BUFF:		JMP	EXT_1		
;-----------------------------------------------------------------------------------------------	
;对遥控信号的9000微秒的初始低电平信号的识别。
	
CONREM:		MOV 	R4,#10
SB: 		NOP
		NOP
		CALL	D882		;定时882微秒,即数65536-64654=882
REM2:		MOV	C,P3.2
		NOP
		NOP
		JC	BUFF		;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序
		NOP
		NOP
		DJNZ	R4,SB		;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序
;-----------------------------------------------------------------------------------------------	
;对遥控信号的4500微秒的高电平信号的识别

		NOP
		NOP
		MOV	R4,#20
		JNB 	P3.2,$		;等待4.5毫秒高电平引导脉冲
RT6:		MOV	R7,#100		;延时201微秒
		DJNZ	R7,$
		NOP
		NOP
REM3:		MOV	C,P3.2
		JNC	EXT_1
		DJNZ	R4,RT6
		NOP
		NOP
		JB	P3.2,$
		NOP
		NOP
;-----------------------------------------------------------------------------------------------	
		
REM4:		MOV 	R0,#1AH 	;设定1AH为起始RAM区
		MOV 	R4,#4 
PP: 		MOV 	R7,#8
JJJJ: 		JNB 	P3.2,$		;等待地址码第一位的高电平信号
		NOP
		NOP
		CALL	D882		;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
REM6:		MOV 	C,P3.2		;将P3.2引脚此时的电平状态0或1存入C中
		NOP
		NOP
		JNC 	UUU		;如果为0就跳转到UUU
		NOP
		NOP
		JB 	P3.2,$		;如果为1就等待高电平信号结束
UUU: 		NOP
		NOP
		MOV 	A,@R0		;将R0中地址的给A
		RRC 	A		;将C中的值0或1移入A中的最低位
		NOP
		NOP
		MOV 	@R0,A		;将A中的数暂时存放在R0中
		NOP
		NOP
		DJNZ 	R7,JJJJ		;接收地址码的高8位
		INC 	R0		;对R0中的值加1,换成下一个RAM
		NOP
		NOP
		DJNZ 	R4,PP 		;接收完16位地址码和8位数据码和8位数据反码,存放在1AH/1BH/1CH/1DH的RAM中
		MOV 	A,1AH
		XRL 	A,#00H	
		NOP
		NOP
		JNZ 	EXT_1
		MOV 	A,1BH
		XRL 	A,#0FFH		
		NOP
		NOP
		JNZ 	EXT_1
		MOV 	A,1CH  	  
		CPL 	A
		XRL 	A,1DH	
		NOP
		NOP
		JNZ 	EXT_1
		MOV 	R4,#30	
		MOV 	DPTR,#REM_TAB

LOOKUP_1: 	MOV 	A,R4
		NOP
		NOP
		MOVC 	A,@A+DPTR
		NOP
		NOP
		XRL 	A,1CH
		NOP
		NOP
		JZ 	REM_BAK0
		DJNZ 	R4,LOOKUP_1
		MOV 	TAB_KEY,#0FFH
		SJMP	EXT_1
REM_BAK0: 	DEC	R4
		MOV 	TAB_KEY,R4 	;R4中的值即为标准的键值
EXT_1:		SETB	P3.2
		SETB	EX0
		POP	PSW
		POP	ACC
		RETI

REM_TAB:
    DB    00h
    DB    04H ;1
 ;================
    DB    0DH ;2    
;================
    DB    4BH ;3	
;================
    DB    1Bh ;4	
;===============
    DB    5EH ;5	
;================
    DB    08H ;6
;====================================================================================
    DB    42H ;7	
;====================================================================================
    DB    43H ;8	
////////////////////////////////////////////////////////////////
    DB    0FH ;9	
/////////////////////////////////////////
    DB    1EH ;10		
/////////////////////////////////////////
    DB    1DH  ;11           
////////////////////////////////////////
    DB    1CH  ;12
    ;////////////////////////
    DB    18H  ;13
    ;//////////////////////////////
    DB    15H  ;14
    ;///////////////////////////////
    DB    0EFH; ;15
    ;////////////////
    DB    0FFH  ;16
    ;//////////////////////
    DB    16H   ;17
    ;/////////////////////////////////
    DB    48H    ;18
    ;///////////////////////////////////
    DB    17H    ;19
    ;////////////////////////////////////////
    DB    0AH    ;20
    ;////////////////////////////////////
    DB    12H    ;21
    ;////////////////////////////////
    DB    11H    ;22
    ;/////////////////////////////////
    DB    4AH    ;23
    ;////////////////////////////////////
    DB    5DH    ;24         ;2
    ;////////////////////////////////////
    DB    02H             ;25
    ;///////////////////////////////////
    DB    01H             ;26
    ;////////////////////////////////
    DB    0CH             ;27
    ;///////////////////////////////
    DB    05H             ;28
    ;//////////////////////////////
    DB    45H             ;29
    ;///////////////////////////                      
    DB    55H 
    ;///////////////////////////////
    DB    4CH             
;====================================================================================	
D4740:		MOV 	R6,#10 	
DD2: 		MOV 	R5,#235
		DJNZ 	R5,$
		DJNZ 	R6,DD2 
		RET
;-----------------------------------------------------------------------------------------------	
SANKEY:         NOP
		NOP
		MOV	A,P1
		orl    a,#0f0h
		NOP
		NOP
		NOP
		CJNE	A,#0FFH,KEY_NEXIT
KEY_EXIT:	NOP
		NOP
		RET
;-----------------------------------------------------------------------------------------------			
KEY_NEXIT:
	        NOP
	        NOP
	        NOP
	        NOP
	        NOP
	        NOP
	        NOP
	        NOP
		NOP
		NOP
		NOP
		MOV	A,P1
		orl     a,#0f0h
		NOP
		NOP
		NOP
		CJNE	A,#0FFH,KEY_0
		SJMP	KEY_EXIT
;-----------------------------------------------------------------------------------------------	
KEY_0:          JB      MUTE_KEY,OUT_KEY
	        JB	ACC.0,KEY_1
	        nop
	        nop
	        nop
		MOV	TAB_KEY,#7;   ok
OUT_KEY:
		SJMP	KEY_EXIT
KEY_1:		JB      MUTE_KEY,OUT_KEY
	        JB	ACC.1,KEY_2
	        nop
	        nop
	        nop
		MOV	TAB_KEY,#5  ;ok	
		SJMP	KEY_EXIT
KEY_2:	        JB      MUTE_KEY,OUT_KEY
		JB	ACC.2,KEY_3
       	        nop
	        nop
		MOV	TAB_KEY,#6  ;ok		
		SJMP	KEY_EXIT
KEY_3:		JB      MUTE_KEY,OUT_KEY
	        JB	ACC.3,KEY_EXIT
                nop
	        nop
		MOV	TAB_KEY,#4  ;ok		
		SJMP	KEY_EXIT
/*
KEY_4:		JB      MUTE_KEY,OUT_KEY
	        JB	ACC.4,KEY_5
	        nop
	        nop
		MOV	TAB_KEY,#3		
		SJMP	KEY_EXIT
KEY_5:		JB      MUTE_KEY,OUT_KEY
	        JB	ACC.5,KEY_EXIT
	        nop
	        nop
		MOV	TAB_KEY,#8
		*/		
		SJMP	KEY_EXIT
;-----------------------------------------------------------------------------------------------	
TAB_VOL:        DB 3FH,3EH,3DH,3CH,3BH,3AH,39H,38H
                DB 37H,36H,35H,34H,33H,32H,31H,30H
                DB 2FH,2EH,2DH,2CH,2BH,2AH,29H,28H
                DB 27H,26H,25H,24H,23H,22H,21H,20H
                DB 1FH,1EH,1DH,1CH,1BH,1AH,19H,18H
                DB 17H,16H,15H,14H,13H,12H,11H,10H
                DB 0FH,0EH,0DH,0CH,0BH,0AH,09H,08H
                DB 07H,06H,05H,04H,03H,02H,01H,00H
TAB_TREB:       DB 70H,71H,72H,73H,74H,75H,76H,77H,7EH,7DH,7CH,7BH,7AH,79H,78H
TAB_BASS:       DB 60H,61H,62H,63H,64H,65H,66H,67H,6EH,6DH,6CH,6BH,6AH,69H,68H  

  END
;====================================================================================
;====================================================================================

⌨️ 快捷键说明

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