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

📄 huangqipu.asm

📁 LCD+2314+功放 SONIX MCU
💻 ASM
📖 第 1 页 / 共 4 页
字号:
       JMP     RDBYT3_1       
      
       MOV      A,#4
       B0MOV     TEM22,A
       B0MOV       H,#0
       B0MOV       L,#RDBUF
;       B0MOV     L,A
    
       
    RDBYT3_3:    
       CALL    RDBYT3
        
       B0MOV     @HL,A      
       
       CALL    LACK3
       INCMS     L
       NOP
       DECMS     TEM22
       JMP     RDBYT3_3   
       CALL    RDBYT3           
       B0MOV     @HL,A  
             
       CALL    NACK3  
    RD3STOPEXT:            
       CALL    STOP3
       
       B0MOV     H,#0
       B0MOV     L,#RDBUF
     ;  B0MOV     R4,A
      
       B0MOV     A,@HL
       
       B0MOV     XCVB,A
      
       INCMS     L
       B0MOV     A,@HL
          
     
       B0MOV     BASS,A
       SUB       A,#15
       BTS1      FC
       JMP       RDBASS_1
       MOV       A,#7
       B0MOV     BASS,A
       
  RDBASS_1:      
      
       
      
       INCMS     L
       B0MOV     A,@HL
          
      
       B0MOV     TREBLE,A   

       SUB     A,#15
       BTS1     FC
       JMP     RDTRE_1
       MOV     A,#7
       B0MOV     TREBLE,A
    RDTRE_1:   
      
       INCMS     L
       B0MOV     A,@HL
          
      
       B0MOV     BALANCE,A          
       SUB      A,#13
       BTS1     FC
       JMP      RDBAL_1
       MOV      A,#6
       B0MOV     BALANCE,A
    RDBAL_1: 
            
      
       BTS1     RDBUF+4.2
       JMP       RDBUR_1
              
       BSET      SWITCH.2
       BSET      SWITCH1.2 
       JMP       RDBUR_2
       RDBUR_1:              
       BCLR      SWITCH.2
       BCLR      SWITCH1.2 
       RDBUR_2:          
       RET   
       ;/////////////////////
  STA3:
       BCLR     P5M.SCL3
       call iicnop
       BCLR      P1M.SDA3       
       call iicnop
       BSET     P1M.SDA3
       call iicnop
        BSET     P5M.SCL3
       call iicnop
       RET
     ;//////////////////////////
    STOP3:

        BSET     P1M.SDA3
        call iicnop
        BSET    P5M.SCL3
        call iicnop
 	    BCLR    P5M.SCL3
        call iicnop
	    BCLR     P1M.SDA3
        call iicnop

	    RET
	  ;///////////////////////////
   CACK3:
       
        CALL IICNOP
        BCLR  P1M.SDA3
     	CALL IICNOP
     	;CALL IICNOP
     	BCLR     P5M.SCL3
	    call iicnop
	    BCLR     XO1.4
	    BTS0    P1.SDA3
	    BSET     XO1.4        
     	BSET     P5M.SCL3
        call iicnop
    	RET
  ;//////////////////////////
     NACK3:
        BCLR     P1M.SDA3
     	call     iicnop     	
     	BCLR     P5M.SCL3
	call     iicnop 	     
     	BSET     P5M.SCL3
        call     iicnop
    	RET
  ;//////////////////////////
       LACK3:

        BSET     P1M.SDA3
     	call     iicnop     	
     	BCLR     P5M.SCL3
        call     iicnop 	     
     	BSET     P5M.SCL3
        call iicnop

    	RET
       
  WRBYT3:
    MOV A,#09
    B0MOV   BT_CNT,A

  WRBYT_LOOP3:
    DECMS   BT_CNT
    JMP   WRBYT_NEXT31
            
    RET
 WRBYT_NEXT31:  
   
     BCLR  P1M.SDA3 
     BTS0  TEM21.7
     JMP WR30
     BSET  P1M.SDA3
  WR30:  
     call iicnop
     BCLR  P5M.SCL3   
     call iicnop
     BSET   P5M.SCL3
   ;  call iicnop
     RLCM  TEM21         
     JMP    WRBYT_LOOP3      
;/////////////////////////////////////

  ;//////////////////////////
  
       
  RDBYT3:
    BCLR    P1M.SDA3
    MOV A,#09
    B0MOV   BT_CNT,A
  RDBYT_LOOP3:
    DECMS   BT_CNT
    JMP   RDBYT_NEXT31 
    B0MOV   A,TEM21          
    RET
 RDBYT_NEXT31:    

     call iicnop
     call iicnop
     BCLR  P5M.SCL3   
     call iicnop
     BSET  FC
     BTS1 P1.SDA3
     BCLR  FC    
     BSET   P5M.SCL3     
     RLCM  TEM21         
     JMP  RDBYT_LOOP3  
//----------------------------------
//WR BASS TO AT24C02
//----------------------
WRBASS:
    MOV  A,#11H
    MOV  MDT,A
    MOV  A,BASS
    MOV  MDT1,A
    CALL WRNBYT3
    RET    
//----------------------------------
//WR TREBLE TO AT24C02
//----------------------
WRTREBLE:
    MOV  A,#12H
    MOV  MDT,A
    MOV  A,TREBLE
    MOV  MDT1,A
    CALL WRNBYT3
    RET      
//----------------------------------
//WR BALANCE TO AT24C02
//----------------------
WRBALANCE:
    MOV  A,#13H
    MOV  MDT,A
    MOV  A,BALANCE
    MOV  MDT1,A
    CALL WRNBYT3
    RET  
//----------------------------------
//WR  LOUD TO AT24C02
//----------------------
WRLOUD:
    MOV  A,#14H
    MOV  MDT,A
    
    MOV  A,SWITCH
    MOV  MDT1,A
    CALL WRNBYT3
    RET  
    
//----------------------------------
//INIT PT2314
//----------------------
 
 INITvolue:  
    BSET TEM1.0
    BTS1 SWITCH.2
    BCLR TEM1.0
    
 ; 133023
 ; 321330  
    BTS1 XCVB.1
    JMP VOLSW_2    
    MOV a,#0X41
    B0MOV SWITCH,A
    MOV a,#0X43
    B0MOV SWITCH1,A
    JMP VOLSW_E
  VOLSW_2:  
    BTS1 XCVB.2
      JMP VOLSW_3    
    MOV a,#0X43
    B0MOV SWITCH,A
    MOV a,#0X42
    B0MOV SWITCH1,A
    JMP VOLSW_E
  VOLSW_3:    

 BTS1 XCVB.3
      JMP VOLSW_4   
    MOV a,#0X43
    B0MOV SWITCH,A
    MOV a,#0X41
    B0MOV SWITCH1,A
    JMP VOLSW_E
  VOLSW_4:  

 BTS1 XCVB.4
      JMP VOLSW_5   
    MOV a,#0X40
    B0MOV SWITCH,A
    MOV a,#0X43
    B0MOV SWITCH1,A
    JMP VOLSW_E
  VOLSW_5:   
   BTS1 XCVB.5
      JMP VOLSW_6    
    MOV a,#0X42
    B0MOV SWITCH,A
    MOV a,#0X43
    B0MOV SWITCH1,A
    JMP VOLSW_E
  VOLSW_6:     
     BTS1 XCVB.6
      JMP VOLSW_7    
    MOV a,#0X43
    B0MOV SWITCH,A
    MOV a,#0X40
    B0MOV SWITCH1,A
    JMP VOLSW_E
  VOLSW_7:
  
    MOV a,#0X41
    B0MOV SWITCH,A
    MOV a,#0X43
    B0MOV SWITCH1,A
    CLR XCVB
    BSET  XCVB.1
  VOLSW_E:
  
  
  
    
    BCLR SWITCH.2
    BCLR SWITCH1.2
    BTS1 TEM1.0
    JMP VOLUE_1
    BSET SWITCH.2
    BSET SWITCH1.2 
       
    
 VOLUE_1: 
   
    MOV a,#0x18
    OR  SWITCH,A
    OR  SWITCH1,A
  
    
    B0MOV A,SWITCH
    
    B0MOV MDT,A
    MOV a,#0X21
    B0MOV MDT1,A   
    
    CALL WRNBYT
    

    ;;;;;;;;;;;;;;;;
    B0MOV A,SWITCH1
    
     B0MOV MDT,A
    MOV a,#0X21
    B0MOV MDT1,A
    
    CALL WRNBYT2
    ;;;;;;;;;;;;;
    
   B0MOV A,BALANCE
   
   B0MOV Y,#V_BALANCE$M
   B0MOV   Z,#V_BALANCE$L
   ADD   Z,A
   MOVC  
   
   
   OR  A,#0Xe0
   B0MOV MDT,A
   B0MOV LeftSD,A
   
   MOV   A,#12
   SUB   A,BALANCE 

   B0MOV Y,#V_BALANCE$M
   B0MOV   Z,#V_BALANCE$L
   ADD   Z,A
   MOVC 

   OR  A,#0Xc0
   B0MOV MDT1,A
   B0MOV RightSD,A 
   CALL WRNBYT  
   CALL WRNBYT2  
 
   B0MOV A,BASS
   SUB A,#7
   BTS1 FC
   JMP VOLUEB_1
   MOV A,#14
   SUB A,BASS
   OR A,#0X08
   JMP  VOLUEB_2  
   
 VOLUEB_1:
   B0MOV A,BASS
 VOLUEB_2: 
   OR   A,#0X60     
   B0MOV MDT,A    
    
   ;;;;;;;;;; 
    
   B0MOV A,TREBLE
   SUB A,#7
   BTS1 FC
   JMP VOLUET_1
   MOV A,#14
   SUB A,TREBLE
   OR A,#0X08
   JMP  VOLUET_2  
   
 VOLUET_1:
    B0MOV A,TREBLE
 VOLUET_2: 
    OR   A,#0X70  
    
    B0MOV MDT1,A   
    
    CALL WRNBYT   
    CALL WRNBYT2       
    RET
     
    
     
 ;  /////////////////////////  
 
 ORG 0XC00
  yao_kong:
     BTS0  P0.0
     JMP REMOT_E
     
     CLR  TC1C     
     BCLR FTC1ENB
 
  REMOT2: 
     BTS1  P0.0
     JMP REMOT2
     BSET  FTC1ENB 
  REMOT2A:                  
     B0MOV A,TC1C     
     SUB A,#250
     BTS0 FC
     JMP REMOT_E

     BTS0  P0.0 
     JMP REMOT2A 
       
     B0MOV A,TC1C    

     B0MOV TEM1,A
     SUB A,#98
     BTS0 FC
     JMP REMOT3

     B0MOV A,TEM1
     SUB A,#30
     BTS0 FC
     JMP REMOT2B
     JMP REMOT_4
 REMOT2B:    
     MOV    A,LXJCNT
     SUB    A,#4
     BTS0   FC 
     JMP    REMOT2C 
     INCMS  LXJCNT
     NOP        
     JMP    REMOT_4   
 REMOT2C:
     BSET   XO.1
 REMOT_4:
     BTS1   P0.0
     JMP     REMOT_4
     JMP REMOT_EXT    
 
          
  REMOT3:   
      MOV a,#0X20  ;32     
      B0MOV RFCNT,A    
  BYTE1:
      BTS1  P0.0
      JMP   BYTE1
      CLR   TC1C 
      BSET  FTC1ENB
   BYTE1A:
      B0MOV A,TC1C
      SUB A,#100       
      BTS0 FC
      JMP REMOT_4
      BTS0  P0.0
      JMP BYTE1A      
      B0MOV A,TC1C
      BCLR  FTC1ENB     
      SUB A,#31 ;17

      RRCM RF3
      RRCM RF2
      RRCM RF1
      RRCM RF0   
      DECMS  RFCNT
      JMP  BYTE1
      JMP  YIMA        
  BYTE3:
      B0MOV A,RF1
      XOR A,#0X20
      BTS1 FZ
      JMP REMOT_E
      B0MOV A,RF0
      XOR A,#0XDF
      BTS1 FZ
      JMP REMOT_E
      MOV  A,RF2
      XOR  A,#0FFH
      XOR  A,RF3
      BTS1 FZ      
      JMP REMOT_E
  YIMA:
   ;   B0MOV A,RF2      
   ;   B0MOV LAST_REV,A   
      BSET  XO.1
      CLR   LXJCNT
  REMOT_EXT:   
   /*   MOV a,#0XFF
      B0MOV R1,A    
      BCLR RF.0    
      BTS0 XO.0
      JMP REMOT_E 
      MOV a,#0X10
      XOR A,RF3
      BTS0 FZ
      JMP REMOT_E 
      BCLR  XO.1*/
   REMOT_E:
   
      RET        
      
/*   VOLtoPt2314:  
      
       BSET P6.3     
       BTS0 P6.3
      
      JMP  LOWINPUT
      BTS1  xo.0
      jmp  VOLtoPtEND
      BTS0  xo.5
      jmp  VOLtoPtEND    
    
       
      BSET    
      B0MOV a,leftsd
      B0MOV mdt,a
      B0MOV a,rightsd
      B0MOV mdt1,a
            
      BSET   XOMUTE.1
      BTS1  XOMUTE.0
      JMP  VOLtoPtEND
      BCLR  XOMUTE.0
 ;;;;;;;;;;;;;;;;;;;;
       
       MOV a,#0x20
       or MCD4094,A  
       B0MOV  a,mcd4094    
       
       CALL CD4094
       
     ;;;;;;;;;;;;;;  
      
      JMP  VOLTOPT_2      
      
 LOWINPUT:
 

       
       
     
       
       
 
 
       
      BSET  XOMUTE.0 
      MOV a,#0XdF
      B0MOV mdt,a
      MOV a,#0xff
      B0MOV mdt1,a
   
      BTS1  XOMUTE.1
      JMP  VOLtoPtEND      
      BCLR XOMUTE.1
      
       BCLR   
       MOV a,#0Xdf
       and MCD4094,A  
       B0MOV  a,mcd4094    
       
       CALL CD4094
       
      
      
      
  VOLTOPT_2:    

      
      
      CALL WRNBYT
      CALL WRNBYT2
        
  VOLtoPtEND:    
       BCLR   
       
        
      RET */
      
            
     

    
 ;;;;;;;;;;;;;;;;;;;;;;;;;
    












;-------------------------------------------------------------------------------
; Isr (Interrupt Service Routine)
; Arguments	:
; Returns	:
; Reg Change:
;-------------------------------------------------------------------------------
Isr:
;-----------------------------------
; Save ACC
;-----------------------------------
	push						;Save A and Pflag

	;b0xch	  	A,AccBuf			;B0xch instruction do not change C,Z flag	
   	;b0mov       	A,PFLAG
   	;b0mov       	PflagBuf,A

;-----------------------------------
; Interrupt service routine  
;-----------------------------------
		
INTP00CHK:						; Check INT0 interrupt request
	B0BTS1	FP00IEN					; Check P00IEN
	JMP	INTTC1CHK				; Jump check to next interrupt
	B0BTS0	FP00IRQ					; Check P00IRQ
	JMP	INTP00					; Jump to INT0 interrupt service routine
INTTC1CHK:						; Check TC1 interrupt request
	B0BTS1	FTC1IEN					; Check TC1IEN
	JMP	INT_EXIT				; Jump to exit of IRQ
	B0BTS0	FTC1IRQ					; Check TC1IRQ
	JMP	INTTC1					; Jump to TC1 interrupt service routine

;-----------------------------------
; Exit interrupt service routine
;-----------------------------------

INT_EXIT:
	pop						;Restore A and Pflag
	
   	;b0mov       	A, PflagBuf
	;b0mov       	PFLAG, A			;Restore the PFlag
	;b0xch		A,AccBuf			;Restore the Reg. A
							;B0xch instruction do not change C,Z flag
	reti						;Exit the interrupt routine

;-------------------------------------------------------------------------------
;	INT0 interrupt service routine
;-------------------------------------------------------------------------------
INTP00:
	b0bclr	FP00IRQ

	;Process P0.0 external interrupt here

	jmp	INT_EXIT
;-------------------------------------------------------------------------------
;	TC1 interrupt service routine
;-------------------------------------------------------------------------------
INTTC1:
	b0bclr	FTC1IRQ

	;Process TC1 timer interrupt here

	jmp	INT_EXIT

;-------------------------------------------------------------------------------
; SysInit
; System initial to define Register, RAM, I/O, Timer......
;-------------------------------------------------------------------------------
SysInit:


  BCLR  FTC1IEN
  BCLR  FTC1IRQ
  
  MOV   A,#30H
  MOV   TC1M,A   

  CLR   P0M
  CLR   P1M
  CLR   P2M
  CLR   P5M
  CLR   P0UR
  CLR   P1UR
  CLR   P2UR
  CLR   P5UR
//  CLR   P10C


  MOV   A,#0FFH
  MOV   P2M,A 
  BCLR   P2.RW


  CLR   XO2
  BCLR  XO.0
  MOV   a,#0XFF
  B0MOV CURBMQ,A
  B0MOV LASTBMQ,A

  MOV   a,#33
  B0MOV VOLMAST,A
  
  MOV   a,#0X58
  B0MOV SWITCH,A
  B0MOV SWITCH1,A  

  
  MOV   a,#3
  B0MOV T1,A
  B0MOV T2,A  
  CLR   XO
  BCLR  P2.7             //POWER OFF
  MOV   a,#10
  CALL  DELAY1MS
  CALL  LCDINIT
  MOV   a,#5 

  CLR   XCVB
  CLR   XCVB1
  BSET  XCVB.0  
  CALL  GETXS  
  CALL  LCDSTR   
  CALL  DELAY1S  
  CALL  RDNBYT3   
   
 ; CLR  XCVB1
  BCLR   XCVB.0
  
  
  CALL INITvolue
   
  INITvolueRET:  
  
  B0MOV A,XCVB
  BTS0  FZ
  BSET  XCVB.1
  
  
  CALL  GETXS
  CALL  VOLUPDN
  CALL  LCDSTR
  
  BSET  XO.0         //POWER ON
  BCLR  XO.1        //HAVE KEY
  BCLR  XO.5        //MUTE
  BSET  P2.7
   ret

;-------------------------------------------------------------------------------
; ClrRAM
; Use index @YZ to clear RAM (00h~2Fh)
;-------------------------------------------------------------------------------

ClrRAM:

	clr 		Y
	mov		A, #0x2F		 
	b0mov		Z, A				;Set @YZ address from 2fh

ClrRAM10:
	clr 		@YZ				;Clear @YZ content
	decms		Z   				;z = z - 1 , skip next if z=0
	jmp 		ClrRAM10 
	clr 		@YZ				;Clear address $00

	ret

;-------------------------------------------------------------------------------
	ENDP
 

⌨️ 快捷键说明

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