i2c.hed

来自「根据I2C协议传输的源代码」· HED 代码 · 共 1,490 行 · 第 1/5 页

HED
1,490
字号
                                          MOV     A, 98H                   ; TURN ON TMR0
                                          MOV     [0EH], A                 ; [0EH] : TMR0C
                                          RET
                               _SAMPLINGRATE0:
                                          MOV     A, SAMPLINGRATE0
                                          MOV     [10H], A                 ; [0DH] : TMR0L
                                          MOV     A, SAMPLINGRATE1
                                          MOV     [0FH], A                 ; [0CH] : TMR0H
                                          MOV     A, 98H                   ; TURN ON TMR0
                                          MOV     [11H], A                 ; [0EH] : TMR0C
                                          RET
                          _STANDBY:
                          _CH0_PLAYING:
                                          CLR     ACC
                                          SNZ     FSTANDBY
                                          RET
                                          SET     ACC.0
                                     ;     SZ      ACC.0
                                     ;     CLR     FSTANDBY
                                          RET
                          _STANDBY1:
                           _CH1_PLAYING: 
                                          CLR     ACC
                                          SNZ     FSTANDBY2
                                          RET
                                          SET     ACC.0                                          
                                      ;    SZ      ACC.0
                                      ;    CLR     FSTANDBY2
                                          RET

                          _STOP:
                                          SET     FSTOP
                                          RET


                          ;------------------------------------------------------------------------------
                          ; FUNCTION  : F_CHECKSUM
                          ; INPUT     : NONE
                          ; OUTPUT    : NONE
                          ; REMARK    :
                          ; DESTROY   : ACC, TBLP, INTC, MP0, [0FFH], [0FEH]
                          ;------------------------------------------------------------------------------
                          FUNCCHECKSUM:
                          _FUNCCHECKSUM:
                          _HT86_INITIALZIATION:
                                  CLR     WDT
                                  SET     VOICEC.2
                                  CLR     INTC.0
                                  CLR     [0FCH]                         ; TURN OFF ALL INTS
                                  CLR     [0FDH]                         ; TURN OFF ALL INTS
                                  CLR     [0FEH]                         ; TURN OFF ALL INTS
                                  CLR     [0F6H]
                                  MOV     A, 10H                          ;
                                  MOV     [0FFH], A                 ; SET [30H] TO LOOP COUNTER 10H
                          
                                  ;----------------------------------------------------------------------
                            ; REMARK : ACCUMULATE VROM DATA FROM 000000H TO 00000FH AND STORE IN [31H]
                                  ;----------------------------------------------------------------------
                                  CALL    FUNCREADBYTE                    ; READ ONE VROM BYTE
                                  
                                  ADDM    A, [0F6H]                        ; ACCUMULATE VROM BYTE TO [31H]
                                  SDZ     [0FFH]                           ; DECREMENT LOOP COUNTER
                                  JMP     $-3
                          
                                  MOV     A, [0F6H]                        ;
                                  ;ADDM    A,[30H]
                                  XOR     A, VOICEHED                   ; CHECK IF MATCH VOICE_HEAD?
                                  SZ      ACC                             ;
                                  JMP     FUNCCHECKSUM                        ; IF CHECKSUM NOT MATCHED, THEN REPEAT.
                                  CLR     [0F6H]                           ; CLEAR [31H]
                                  SET     FSTANDBY
                                  SET     FSTANDBY2
                                  RET
                          
                          
                          
                          ;------------------------------------------------------------------------------
                          ; FUNCTION  : CLRRAM
                          ; INPUT     : NONE
                          ; OUTPUT    : NONE
                          ; REMARK    :
                          ; DESTROY   : ACC, MP0
                          ;------------------------------------------------------------------------------
                          CLRRAM:
                          _CLRRAM:
                                  MOV     A,30H
                                  MOV     MP0,A
                                  CLR     WDT
                                  CLR     R0
                                  SIZ     MP0
                                  JMP     $-3
                                  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
                          
                          
                          ;------------------------------------------------------------------------------
                          ; FUNCTION  : INITTIMEBASE
                          ; INPUT     : NONE
                          ; OUTPUT    : NONE
                          ; REMARK    : 1MS FLAG SET
                          ; DESTROY   : TMR3, TMR3C, ACC , INTCH.1 , INTCH.5
                          ;
                          ;------------------------------------------------------------------------------
                          INITTIMEBASE:
                          _INITTIMEBASE:
                                        CLR   TMR3C
                          
                                  IFDEF RTC
                                        MOV   A,0FEH
                                        MOV   TMR3L,A
                                        MOV   A,9BH
                                     ELSE
                          
                               IF( HT86SYSTEMFREQUENCY==04000000)
                                     MOV   A,255-125
                                     MOV   TMR3L,A
                                     MOV   A,9AH
                               ENDIF
                          
                               IF( HT86SYSTEMFREQUENCY==06000000)
                                     MOV   A,255-188
                                     MOV   TMR3L,A
                                     MOV   A,9AH
                               ENDIF
                          
                               IF( HT86SYSTEMFREQUENCY==08000000)
                                     MOV   A,255-125
                                     MOV   TMR3L,A
                                     MOV   A,9BH
                               ENDIF
                                  ENDIF
                          
                                        MOV   TMR3C,A
                                        SET   INTCH.1
                                      ;  SET   EMI
                          
                                  RET
                              _PLAY_VOICE:
                              
                                      ; PLAY_VOICE(INT TRK, BIT CH)
                                       MOV     A, PLAY_VOICE0
                                       SZ      PLAY_VOICE1
                                       MOV     TRACKNUMBER2, A
                                       SNZ     PLAY_VOICE1
                                       MOV     TRACKNUMBER, A
                                       ;MOV     A,50H
                                       ;ANDM    A,VDSSTATUSFLAG
                                  MOV      A,51H
                                  ANDM     A,VDSSTATUSFLAG                                         
                                  MOV      A,03H
                                  ANDM     A,TFLAG4    

                                       CLR     FCHANNELNO
                                       SZ      PLAY_VOICE1
                                       SET     FCHANNELNO
                                       SET     FVOICEDOWN
                                       SNZ      DAC
                                       SET     FVOICEUP
                                       CALL    FUNCSPEECHINITIAL
                                       SZ      PLAY_VOICE1
                                       SET     TMR1C.4
                                       SNZ     PLAY_VOICE1
                                       SET     TMR0C.4

                                       RET
                                _STOP1:
;                                       CLR  TMR1C.4
;                                       CLR  INTC.3

                                       SZ   fstandby
                                       JMP  Voicedown
                                       SET  FSTOP2
                                       SET  fstandby2
                                       RET

                                _STOP0:
;                                       CLR  TMR0C.4
;                                       CLR  INTC.2
                                       SZ   fstandby2
                                       JMP  Voicedown
                                       SET  fstandby
                                       SET  FSTOP1
                                       RET
                                       

   IF( HT86SYSTEMFREQUENCY ==  08000000)
   #DEFINE DELLOOPCNT 5
   ENDIF
   
   IF( HT86SYSTEMFREQUENCY ==  06000000)
   #DEFINE DELLOOPCNT 4
   ENDIF

   IF( HT86SYSTEMFREQUENCY ==  04000000)
   #DEFINE DELLOOPCNT 3
   ENDIF
   
   
                             ; TOTAL 78 INST.                         
                             voiceup2:                                
                                  mov     a,80h                       
                                  xor     a,dah                       
                                  sz      zero                        
                                  jmp     VoiceUpRet                  
                                  snz     dah.7                       
                                  jmp     PlusVoiceData               
                             MinusVoiceData:                          
                                  clr     wdt                         
                                  mov     a,DELLOOPCNT ;5                         
                                  sdz     acc                         
                                  jmp     $-1                         
                                                                      
                                  mov     a,0f0h                      
                                  addm    a,dal                       
                                  mov     a,0ffh                      
                                  adcm    a,dah                       
                                  snz     dah.7                       
                                  jmp     VoiceUpRet                  
                                  jmp     MinusVoiceData    
                             Ch1VoiceUp:                              
                             _DAC_RAMP_UP:
                             _VOICEUP:
                                  sz      dac                         
                                  jmp     Ch1VoiceUp1                 
                                  set     vol                         
                                  CLR     DAL                         
                                  CLR     DAh                         
                                  MOV     A,07H                      ;
                                  mov     VOICEC, A               ;   
                                  set     vol                         
                                  CALL    HT82V733Enable              
                                                                      
                             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     dac                         
                             voiceup1:                                
                                  clr  wdt                            
                                  mov     a,DELLOOPCNT-1 ;4                         
                                  sdz     acc                         
                                  jmp     $-1                         
                                  sz      dah.7                       
                                  jmp     VoiceUpRet                  
                                  mov     a,10h                       
                                  addm    a,dal                       
                                  mov     a,0                         
                                  adcm    a,dah                       
                                  jmp     VoiceUp1                    
                             VoiceUpRet:  
;                                  RET                            
;                                  mov     a,80h                       
;                                  mov     da1bufH,a     

⌨️ 快捷键说明

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