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

📄 ht8xxx.he1.ht83_

📁 use Holtek HT83F60 flash voice MCU edit,function:Play PCM12 Voice ,sentence ,VOL control,Stop voice
💻 HT83_
📖 第 1 页 / 共 2 页
字号:
      ; PLAY_VOICE(INT TRK_H,INT TRK_L,BIT CH , BIT FILTER)
         MOV     A,_PLAY_VOICE0
         MOV     TRACKNUMBER02,A
         MOV     A,_PLAY_VOICE1
         MOV     TRACKNUMBER01,A
         SZ	_PLAY_VOICE2
         RET
         CLR	_filter_         
         SZ     _PLAY_VOICE3; _PLAY_VOICE2
         SET     _filter_
         SET	_FVOICEUP
         CALL    FUNCSPEECHINITIAL
         SET     _FVOICEUP
         SET     _FVOICEDOWN
         CALL    _DAC_RAMP_UP
         SET     TMR0C.4
         SET	 INTC.2
         SET	 EMI
         RET

_STOP0:
_STOP:
         JMP    CM__MAD4MP6P8MSTOP1_i


 _PLAY_VOICE_WITH_UP_DOWN:       
        ; PLAY_VOICE_WITH_UP_DOWN(INT TRK_H,INT TRK_L,BOOL UP,BOOL DOWN)
         MOV     A,PLAY_VOICE_WITH_UP_DOWN0
         MOV     TRACKNUMBER02,A
         MOV     A,PLAY_VOICE_WITH_UP_DOWN1
         MOV     TRACKNUMBER01,A

         CALL    FUNCSPEECHINITIAL
         SZ      PLAY_VOICE_WITH_UP_DOWN2
         SET     _FVOICEDOWN
         SZ      PLAY_VOICE_WITH_UP_DOWN3
         CALL    _DAC_RAMP_UP
         SET	INTC.2
         SET     TMR0C.4
         SET	 EMI
         RET     

 _PLAY_VOICE_WITH_SR_UP_DOWN:       
        ; PLAY_VOICE_WITH_SR_DOWN(INT TRK_H,INT TRK_L,INT SR_H,INT SR_L,BOOL UP,BOOL DOWN)
         MOV     A,PLAY_VOICE_WITH_SR_UP_DOWN0
         MOV     TRACKNUMBER02,A
         MOV     A,PLAY_VOICE_WITH_SR_UP_DOWN1
         MOV     TRACKNUMBER01,A
         
         CALL    FUNCSPEECHINITIAL
         SZ      PLAY_VOICE_WITH_SR_UP_DOWN4
         SET     _FVOICEDOWN
         SZ      PLAY_VOICE_WITH_SR_UP_DOWN5
         CALL    _DAC_RAMP_UP
         MOV     A,PLAY_VOICE_WITH_SR_UP_DOWN2
         MOV     TMR0,A
         MOV     A,PLAY_VOICE_WITH_SR_UP_DOWN3
         MOV     TMR0C,A
        SET	INTC.2
         SET     TMR0C.4
         SET	 EMI
         RET              
         


      __PLAY_SENTENCE:                           ; PLAY_SENTENCE(INT TRK_H,INT TRK_L,BIT CH,BIT FILTER)
      		
      		
      		MOV	A,_PLAY_SENTENCE0
      		MOV	DATACODE,A
      		MOV	A,_PLAY_SENTENCE1
      		MOV	_PLAY_SENTENCE0,A
      		MOV	A,DATACODE
      		MOV	_PLAY_SENTENCE1,A
      		SZ	_PLAY_SENTENCE2
      		RET
      		CLR	_filter_
      		SZ	_PLAY_SENTENCE3;_PLAY_SENTENCE2
      		SET	_filter_
      		SET _FVOICEDOWN
      		SET	 EMI
		JMP	_PLAY_SENTENCET    		
      		

         
                          _STANDBY:
                          _CH0_PLAYING:
                                          CLR     ACC
                                          SnZ      _FSTANDBY0
                                          SET     ACC.0
                                          RET     


                          _CH0_WAITTING_FINISH:
                                          CLR    WDT
                                          CLR    WDT2
                                          SNZ      _FSTANDBY0
                                          JMP     _CH0_WAITTING_FINISH
                                          RET

                          

                          ;------------------------------------------------------------------------------
                          ; FUNCTION  : VOLUMPUP
                          ; INPUT     : NONE
                          ; OUTPUT    : NONE
                          ; REMARK    : 
                          ; DESTROY   : 
                          ;
                          ;------------------------------------------------------------------------------
                          VOLUMEUP:
                          _VOLUMEUP:
                                 MOV    A,20H
                                 ADDM   A,VOLTMP
                                 MOV    A,VOLTMP
                                 SZ     CARRY
                                 MOV    A,0FFH
                                 MOV    VOL,A
                                 MOV    VOLTMP,A
                                 RET
                          ;------------------------------------------------------------------------------
                          ; FUNCTION  : VOLUMEDOWN
                          ; INPUT     : NONE
                          ; OUTPUT    : NONE
                          ; REMARK    : 
                          ; DESTROY   : 
                          ;
                          ;------------------------------------------------------------------------------
                          VOLUMEDOWN:
                          _VOLUMEDOWN:
                                 MOV    A,0E0H
                                 ADDM   A,VOLTMP
                                 MOV    A,VOLTMP
                                 SNZ    CARRY
                                 MOV    A,020H
                                 MOV    VOL,A
                                 MOV    VOLTMP,A
                                 RET  

                          _VOLUME:
                                 mov   a,VOLUME0
                                 swap  acc
                                 RL    ACC
                                 AND   A,0E0H
                                 MOV   VOLTMP,A
                                 SZ    DAC
                                 MOV   VOL,A
                                 RET 

ENDIF
           
;------------------------------------------------------------------------------
; FUNCTION  : CLRRAM
; INPUT     : NONE
; OUTPUT    : NONE
; REMARK    :
; DESTROY   : ACC, MP0
;------------------------------------------------------------------------------
;_CLRRAM:
;CLRRAM:

_CLRRAM1:
CLRRAM1:
_CLRRAM:
CLRRAM:
       MOV   A,30H
       MOV   MP0,A
       MOV   A,80H-30H
       CLR   R0
       INC   MP0
       SDZ   ACC
       JMP   $-3
       RET

        
_HT86_INITIALZIATION:
_HT83_INITIALZIATION:
       CLR    WDT
       SET    VROMC
       CLR    INTC.0      
       SET    _FSTANDBY0
       set    _FVOICEUP
       CLR    DAC
       CLR    PWMC
       SET    VOL      
       SET    voltmp 
       RET
          
          
;------------------------------------------------------------------------------
; FUNCTION  : _DAC_RAMP_UP
; INPUT     : NONE
; OUTPUT    : NONE
; REMARK    :
; DESTROY   : ACC, TBLP, INTC, MP0, TMR0,TMR1,DAC,DAH,DAL,datacode
;------------------------------------------------------------------------------         
voiceup2:                                
     mov     a,80h                       
     xor     a,PWMH                       
     sz      zero                        
     jmp     VoiceUpRet                  
     snz     PWMH.7                       
     jmp     PlusVoiceData               
MinusVoiceData:                          
     clr     wdt                         
     mov     a,DELLOOPCNT ;5                         
     sdz     acc                         
     jmp     $-1                         
                                         
     mov     a,0f0h                      
     addm    a,PWML                       
     mov     a,0ffh                      
     adcm    a,PWMH                       
     snz     PWMH.7                       
     jmp     VoiceUpRet                  
     jmp     MinusVoiceData    
Ch1VoiceUp:                              
_DAC_RAMP_UP:
_VOICEUP:
     CLR     _SPECIAL_JUMP_AT_RAMPUP
     CLR      _BACK_INTC_0
     SZ      INTC.0
     SET     _BACK_INTC_0
     CLR     INTC.0
   _VOICEUP_DOWNIN_:  
     sz      PWMC                         
     jmp     Ch1VoiceUp1                 
     set     vol                         
     SZ      PWMCR.3                                               
     jmp     _VOICEUP1
     clr     PWML
     mov     a,80h
     mov     PWMH,a
     mov     A,05H 
     mov     PWMCR,a
     jmp     Ch1VoiceUp1

_VOICEUP1:
     clr     PWML
     clr     PWMH
     mov     A,0DH 
     mov     PWMCR,a                                    
                                         
Ch1VoiceUp1:                                                                        
     mov     a,voltmp                    
     mov     DataCode,a                  
     mov     a,vol                       
     and     a,0e0h                      
     sz      acc                         
     jmp     voiceup2                    
     set     vol                         
PlusVoiceData:                           
     MOV     A,VOL                       
     MOV     VOL,A                       
     set     PWMC                         
voiceup1:                                
     clr     wdt                           
     mov     a,DELLOOPCNT-1 ;4                         
     sdz     acc                         
     jmp     $-1                         
     sz      PWMH.7                       
     jmp     VoiceUpRet                  
     mov     a,10h                       
     addm    a,PWML                       
     mov     a,0                         
     adcm    a,PWMH                       
     jmp     VoiceUp1                    
VoiceUpRet:  
     clr      PWML
     mov     a,80h
     mov     PWMH,a
     mov     a,Datacode                  
     mov     vol,a 
     clr     _FVOICEUP      
     
     SZ     _SPECIAL_JUMP_AT_RAMPUP  
     JMP     _VOICEUP_DOWNIN_RET 
     SZ     _BACK_INTC_0
     SET     INTC.0                                     
     ret
                                   
;------------------------------------------------------------------------------
; FUNCTION  : _DAC_RAMP_DOWN
; INPUT     : NONE
; OUTPUT    : NONE
; REMARK    :
; DESTROY   : ACC, TBLP, INTC, MP0, TMR0,TMR1,DAC,DAH,DAL,datacode
;------------------------------------------------------------------------------                                                                      
Pvoicedown: 
Voicedown:  
_DAC_RAMP_DOWN:                           
_VOICEDOWN:
     CLR    FSTOP
     CLR    TMR0C.4
     CLR     CONTROLCODE
     MOV    A,5BH;33H
     ANDM   A,INTC
     SNZ    PWMC                         
     RET                                 
     CLR      _BACK_INTC_0
     SZ      INTC.0
     SET     _BACK_INTC_0
     CLR     INTC.0          
     SET    _SPECIAL_JUMP_AT_RAMPUP                                   
voicedwn2:        
     mov     a,80h                       
     XOR     a,PWMH                       
     sz      acc                         
     JMP     _VOICEUP_DOWNIN_ ;call    Ch1VoiceUp     
    _VOICEUP_DOWNIN_RET:              
     clr     datacode                    
     set     vol                         
     SNZ     PWMCR.3
     JMP     voicedwn3
voicedwn1:                               
     clr     wdt                                
     mov     a,DELLOOPCNT-1 ;4                         
     sdz     acc                         
     jmp     $-1                         
     nop                                 
     mov     a,0f0h                      
     addm    a,PWML                       
     mov     a,0ffh                      
     adcm    a,PWMH                       
     sz      PWMH                         
     jmp     voicedwn1                   
     sz      PWML                         
     jmp     voicedwn1    
voicedwn3:                      
     SZ     _BACK_INTC_0
     SET     INTC.0  
     set     _FSTANDBY0                                                                      
     clr     PWMC                         
     ret          
                                   

        

SEC_FUNCCHECKSUM	.section   at 04c0h  'code'	
#DEFINE _PAGE_TEMP [7FH]     
_FUNCCHECKSUM:
;;;;; PROGRAM 
       CLR   WDT
       CLR   WDT2
       set   VROMC
       CLR    LATCH0H
       CLR    LATCH0M
       CLR    LATCH0L
       CLR   TBLP
       CLR   _PAGE_TEMP
       CLR    PCM1addrCL ;; FOR CHECKSUM
       CLR    PCM1addrCM ;; FOR CHECKSUM
_FUNCCHECKSUM1:       
       CALL   READ_PROGRAM
       ADDM   A,PCM1addrCL
       MOV    A,TBLH
       ADCM   A,PCM1addrCM
       SIZ    TBLP
       JMP    _FUNCCHECKSUM1
       INC    _PAGE_TEMP
       SNZ     _PAGE_TEMP.ROMSIZE
       JMP    _FUNCCHECKSUM1
;;;;;;;  VROM    
   CHECKV:
       MOV    A,LATCHD
       CALL   INCADDRV
       ADDM   A,PCM1addrCL
       MOV    A,LATCHD
       ADCM   A,PCM1addrCM
       siz   Latch0L
       JMP   CHECKV
       siz   Latch0M
       JMP   CHECKV
       inc   Latch0H
       MOV   A,Latch0H
       XOR   A,VROMENDADDRESS>>16
       SZ    ACC
       JMP   CHECKV
       MOV   A,PCM1addrCL
       OR    A,PCM1addrCM
       RET

INCADDRV:
       siz   Latch0L
       RET
       siz   Latch0M
       RET
       inc   Latch0H
       RET
  
READ_PROGRAM:
       MOV   A,_PAGE_TEMP
       ADDM   A,PCL
       JMP   Checksum1
       JMP   Checksum2
       JMP   Checksum3
       JMP   Checksum4 
       JMP   Checksum5
       JMP   Checksum6
       JMP   Checksum7
       JMP   Checksum8

;PROMCHECKSUM1     .section    at   00FEH   'code'               
;Checksum1:
;       tabrdc  acc
;       ret
;;Free Rom Size here  100H ~ 1FDH
;
;
;                
;PROMCHECKSUM2     .section    at   01FEH   'code'                
;Checksum2:
;       tabrdc  acc   ; DON'T CHANGE ADDRESS 
;       ret           ; DON'T CHANGE ADDRESS 
;;Free Rom Size here  200H ~ 2FDH
;
;
;
;PROMCHECKSUM3     .section    at   02FEH   'code'                
;Checksum3:
;       tabrdc  acc   ; DON'T CHANGE ADDRESS 
;       ret           ; DON'T CHANGE ADDRESS 
;;Free Rom Size here  300H ~ 3FDH


                
PROMCHECKSUM4     .section    at   03FEH   'code'                
Checksum4:
       tabrdc  acc   ; DON'T CHANGE ADDRESS 
       ret           ; DON'T CHANGE ADDRESS 

;Free Rom Size here  400H ~ 4FDH



PROMCHECKSUM5     .section    at   04FEH   'code'                
Checksum5:
       tabrdc  acc   ; DON'T CHANGE ADDRESS 
       ret           ; DON'T CHANGE ADDRESS 

;Free Rom Size here  500H ~ 5FDH



PROMCHECKSUM6     .section    at   05FEH   'code'                
Checksum6:
       tabrdc  acc   ; DON'T CHANGE ADDRESS 
       ret           ; DON'T CHANGE ADDRESS 
;Free Rom Size here  600H ~ 6FDH

PROMCHECKSUM7     .section    at   06FCH   'code'                
Checksum7:
       tabrdc  acc   ; DON'T CHANGE ADDRESS 
       ret           ; DON'T CHANGE ADDRESS 
Checksum8:
       tabrdl  acc   ; DON'T CHANGE ADDRESS 
       ret           ; DON'T CHANGE ADDRESS 
             
  

⌨️ 快捷键说明

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