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

📄 691speechmodal.s14

📁 TI 691 的驱动部分
💻 S14
📖 第 1 页 / 共 5 页
字号:
       ;_ADCCON1 &= 0x3f ;
       ;_ADCCON1 |=0x20;				//enter idle , must be do .
       ;_IER1 &= 0xfe ;
       
       
       lda   #1
       sta   np:Sp691_wordTemp1
       
       ldy   #0
       lda   np:PRMBN BellPlay_Rom,y
       sta   np:Sp691_wordTemp
       
       iny
       lda   np:PRMBN BellPlay_Rom,y
       sta   np:Sp691_wordTemp+1
       
       iny
       lda   np:PRMBN BellPlay_Rom,y
       sta   np:Sp691_wordTemp+2
       
       iny
       lda   np:PRMBN BellPlay_Rom,y
       sta   np:Sp691_wordTemp+3
       
       
             
       lda   #00000001b
       sta   _ChanCONx	     
       lda   np:Sp691_wordTemp+3
       sta   np:_CSx
       lda   np:Sp691_wordTemp+2
       sta   np:_ADDRHx
       lda   np:Sp691_wordTemp+1
       sta   np:_ADDRMx
       lda   np:Sp691_wordTemp	     
       sta   np:_ADDRLx
       lda   np:_INCRx		       
       ora   #01h
       sta   np:_INCRx
       lda   #00000001b
       and   #00000111b
       ora   #00100000b
       sta   _ChanCONx      
       
       lda np:Sp691_volume
       and #0fh
       cmp #00h
       bne BellPlay_Rom_OK1
       jmp BellPlay_Rom_End
BellPlay_Rom_OK1:
       lda np:DictSysFlag                 ;闹铃
       and #02                            ;
       cmp #0	                          ;
       beq BellPlay_Rom_OK       	  ;
       jmp BellPlay_Rom_End               ;
BellPlay_Rom_OK:  
       
       lda #0
       sta np:Sp691_VolumeFlag    
       jsr _Speech691_initial
       
       jsr BellPlay_FM
       
       
BellPlay_Rom_End:	 
       lda   np:_INCRx
       and   #0feh
       sta   np:_INCRx	     
      
       jsr   DelayDlg  
       jsr   _Speech691Sleep
      
      jsr SysSpeEnableTouchPanel
      ; pla
      ; sta   np:_ADCCON1
      ; pla
      ; sta   np:_IER1	 ;EnableTouchPanel
       pla
       sta   _SOper1+1 
       pla	 
       sta   _SOper1
       pla
       tax
       pla	 
       
       
       
        
       rts
;*----------------------------------------------------------------------
;*			      BellPlay_FM
;*----------------------------------------------------------------------     
	    
BellPlay_FM:
      lda #04
      jsr Speech691_sendData
      lda #04
      jsr Speech691_sendData
      
Bell_FM_OutReady:
      jsr Bell_FM_WaitOutReady
      cmp #0
      beq Bell_FM_WaitOK
      jmp Bell_FM_Return
Bell_FM_WaitOK:
     
      jsr _Spe691_ReadRetValue
      lda np:Sp691_returnValue
      asl a
      asl a
      asl a 
      asl a  
      sta np:Speech691_len
      lda np:Sp691_returnValue+1
      and #0fh
      
      clc
      adc np:Speech691_len
      sta np:Speech691_len
Bell_FM_InReady:
      jsr Bell_FM_WaitInReady
      cmp #0	  
      beq Bell_FM_InReadyOK
      jmp Bell_FM_Return
Bell_FM_InReadyOK:
      lda np:Speech691_len	
      bne Bell_FM_GetData     
Bell_FM_Wait1:
      lda np:_PI
      and #OUTRDYH
      bne Bell_FM_Wait1 
      jsr _Spe691_ReadRetValue
      lda np:Sp691_returnValue
      and #0fh
      cmp #0
      beq Bell_FM_checkReturn1
      jmp Bell_FM_Return
Bell_FM_checkReturn1:
      lda np:Sp691_returnValue+2
      and #0fh
      cmp #2
      beq Bell_FM_checkReturn2
      jmp Bell_FM_Return
Bell_FM_checkReturn2:
      lda np:Sp691_returnValue+3
      and #0fh
      cmp #3
      beq Bell_FM_checkReturn3
      jmp Bell_FM_Return
Bell_FM_checkReturn3:
      lda np:Sp691_returnValue+1
      and #0fh
      sta np:Speech691_len     
      lda #09
      jsr Speech691_sendData
      lda np:Speech691_len
      jsr Speech691_sendData      
Bell_FM_GetData:
      lda np:Sp691_wordTemp1
      cmp #0
      beq Bell_FM_GetData_Flash
Bell_FM_GetData_Rom:
      lda _DATAx1                 
      
      jmp Bell_FM_GetData_Process
Bell_FM_GetData_Flash:
      ldy #0
      lda (_SOper1),y

Bell_FM_GetData_Process:      
      tax  
      lsr a
      lsr a
      lsr a
      lsr a
      ora #10h
      jsr Speech691_sendData
      txa
      and #0fh
      ora #10h
      jsr Speech691_sendData

      sec
      lda np:Speech691_len
      sbc #1
      sta np:Speech691_len

      lda np:Sp691_wordTemp1
      cmp #1
      beq Bell_FM_GetData_P1
      
      
      clc
      lda _SOper1
      adc #1
      sta _SOper1
      lda _SOper1+1
      adc #0
      sta _SOper1+1	 

Bell_FM_GetData_P1:
      lda np:DictSysFlag+3	       ;判断有无按键	
      and #01h                         ;
      cmp #0
      bne Bell_FM_Return_N_Key     
      
      lda np:DictSysFlag               ;
      and #02h                         ;判断有无闹铃
      cmp #0                           ;
      bne Bell_FM_Return_N      ;
      
      jmp Bell_FM_InReady
      
Bell_FM_Return:

      jsr DelayDlg		       ;MDF3:Add @17:07 for improve tone quanlity 
        
      jsr _Speech691_initial
      lda #3
      jsr _Speech691Sleep
      rts
Bell_FM_Return_N:     
      ;lda   np:DictSysFlag
      ;and   #0fdh
      ;sta   np:DictSysFlag    
      
      jsr DelayDlg
      
      jsr _Speech691_initial
      lda #3
      jsr _Speech691Sleep
      rts
Bell_FM_Return_N_Key:      
      ;lda   np:DictSysFlag
      ;and   #0fdh
      ;sta   np:DictSysFlag  
      
      jsr DelayDlg
      
      jsr _Speech691_initial
      lda #3
      jsr _Speech691Sleep
      rts
      
      
      
      
;*-------------------------------------------------------------------------
;*			 Bell_FM_WaitOutReady
;*-------------------------------------------------------------------------

Bell_FM_WaitOutReady:
	ldy	#0ffh
	sty	np:Sp691_wordTemp
	lda	#05h
	sta	np:Sp691_wordTemp+1
Bell_FM_WaitOutReady0:
	lda	np:_PI
	and	#OUTRDYH
	bne	Bell_FM_WaitOutReady01	
	lda	#0	
	rts
Bell_FM_WaitOutReady01:	
	dey
	cpy	#0
	bne	Bell_FM_WaitOutReady1
	
	ldy	np:Sp691_wordTemp
	dey
	sty	np:Sp691_wordTemp
	cpy	#0
	bne	Bell_FM_WaitOutReady2
	ldy	np:Sp691_wordTemp+1
	dey
	sty	np:Sp691_wordTemp+1
	cpy	#0
	bne	Bell_FM_WaitOutReady3
	
	lda	#1

	rts	
Bell_FM_WaitOutReady3:
	lda	#0ffh
	sta	np:Sp691_wordTemp
	
Bell_FM_WaitOutReady2:
	ldy	#0ffh
Bell_FM_WaitOutReady1:
	lda	np:_PI
	and	#OUTRDYH
	bne	Bell_FM_WaitOutReady11
	
	lda	#0
	
	rts
	
Bell_FM_WaitOutReady11:
	lda	np:DictSysFlag+3
	and	#01h
	cmp	#0
	bne	Bell_FM_OutReadyStop
	
	lda	np:DictSysFlag              
	and	#02h                          ;
	cmp	#0                            ;
	bne	Bell_FM_OutReadyStop ;

	lda	np:_PI
	and	#OUTRDYH
	bne	Bell_FM_WaitOutReady0
	
	lda	#0
	
	rts
Bell_FM_OutReadyStop:
	lda	#1
	
	rts
	
;*-------------------------------------------------------------------------
;*			 Bell_FM_WaitInReady
;*-------------------------------------------------------------------------
Bell_FM_WaitInReady:
	ldy	#0ffh
	sty	np:Sp691_wordTemp
	lda	#3						
	sta	np:Sp691_wordTemp+1
Bell_FM_WaitInReady0:
	dey
	cpy	#0
	bne	Bell_FM_WaitInReady1
	
	ldy	np:Sp691_wordTemp
	dey
	sty	np:Sp691_wordTemp
	cpy	#0
	bne	Bell_FM_WaitInReady2
	ldy	np:Sp691_wordTemp+1
	dey
	sty	np:Sp691_wordTemp+1
	cpy	#0
	bne	Bell_FM_WaitInReady3
	
	lda	#1

	rts	
Bell_FM_WaitInReady3:
	lda	#0ffh
	sta	np:Sp691_wordTemp
	
Bell_FM_WaitInReady2:
	ldy	#0ffh
Bell_FM_WaitInReady1:

	lda	np:DictSysFlag+3
	and	#01h
	cmp	#0
	bne	Bell_FM_InReadyStop
	lda	np:DictSysFlag              
	and	#02h                           ;                                                  
	cmp	#0                             ;                                                  
	bne	Bell_FM_InReadyStop   ;

	lda	np:_PI
	and	#INRDYH
	bne	Bell_FM_WaitInReady0
	
	lda	#0
	
	rts
Bell_FM_InReadyStop:
	lda	#1	
	rts		  
       		 
;*************************************************************************
;*函数名:		    Spe691FMMusicPlay_Flash
;*说明:		    播放MIDI音乐
;*输入参数:
;*	       U8*	     SAddress	    数据地址
;*返回值:     Void
;*修改历史:   
;*	   姓名		日期	     说明
;*	  -----		----	     ----
;*************************************************************************		
Spe691FMMusicPlay_Flash:
      pha
      txa
      pha
      lda _SOper1
      pha
      lda _SOper1+1
      pha
      ;lda np:_IER1
      ;pha
      ;lda np:_ADCCON1
      ;pha
      
      
      ;lda np:_IER1	;DisableTouchPanel
      ;and #11111110b
      ;sta np:_IER1
      
      ;lda   np:_ADCCON1
      ;and   #03fh
      ;sta   np:_ADCCON1
      ;ora   #020h
      ;sta   np:_ADCCON1
      
      ;lda    #0
      ;sta    np:_ADCCON1 
      
      jsr SysSpeDisableTouchPanel
      
      
      
      
      lda #0
      sta np:Sp691_wordTemp1
      ldy #0	   
      lda np:PRMBN Spe691FMMusicPlay_Flash,y
      sta _SOper1     
      iny
      lda np:PRMBN Spe691FMMusicPlay_Flash,y
      sta _SOper1+1	
      
      lda np:DictSysFlag+3
      and #0feh
      sta np:DictSysFlag+3
      
      lda np:DictSysFlag+1
      and #0fdh
      sta np:DictSysFlag+1
      
      ;brk 
      
      clc
      lda _SOper1
      adc #40h
      sta _SOper1
      lda _SOper1+1
      adc #0
      sta _SOper1+1

      lda np:Sp691_volume
      and #0fh
      cmp #00h
      bne Spe691FMMusicPlay_OK1   

      jmp Speech691FMMusicPlay_End
Spe691FMMusicPlay_OK1:
      
      lda np:DictSysFlag+3
      and #01
      cmp #0
      beq Spe691FMMusicPlay_OK
      
      lda np:DictSysFlag+1
      and #02
      cmp #0
      beq Spe691FMMusicPlay_OK
      
      jmp Speech691FMMusicPlay_End
Spe691FMMusicPlay_OK:
      lda #0
      sta np:Sp691_VolumeFlag	   
      jsr _Speech691_initial
       
Spe691FMMusicPlay_start_now:
      
      ;lda np:DictSysFlag+3
      ;and #0feh
      ;sta np:DictSysFlag+3
  	       
      jsr Speech691Play_FM  ;play midi file	
            
Speech691FMMusicPlay_End:
      ;lda np:DictSysFlag+3
      ;and #01h
      ;sta np:DictSysFlag+3 ;Add this code @2005/02/22/17:01     error code
        
      jsr DelayDlg
      jsr _Speech691_initial			;2005-5-22 04:59下午
      jsr _Speech691Sleep  			;2005-5-22 04:59下午
        
      jsr SysSpeEnableTouchPanel
      ;pla
      ;sta np:_ADCCON1
      ;pla
      ;sta np:_IER1		;EnableTouchPanel
      pla
      sta _SOper1+1
      pla
      sta _SOper1
      pla
      tax
      pla
      rts

;*-----------------------------------------------------------------------------
;*			     Spe691FMMusicPlay_Rom
;*-----------------------------------------------------------------------------	    
Spe691FMMusicPlay_Rom:
       pha
       txa
       pha
       lda   _SOper1
       pha
       lda   _SOper1+1
       pha
       ;lda   np:_IER1
       ;pha
       ;lda   np:_ADCCON1
       ;pha
       
	    
       ;lda   np:_IER1
       ;and   #11111110b
       ;sta   np:_IER1
       
       ;lda   np:_ADCCON1
       ;and   #03fh
       ;sta   np:_ADCCON1
       ;ora   #020h
       ;sta   np:_ADCCON1
       
       ;lda    #0
       ;sta    np:_ADCCON1       
       
       jsr SysSpeDisableTouchPanel
       
       
       lda np:DictSysFlag+3
       and #0feh
       sta np:DictSysFlag+3
      
       lda np:DictSysFlag+1
       and #0fdh
       sta np:DictSysFlag+1
       
       
       ;_ADCCON1 &= 0x3f ;
       ;_ADCCON1 |=0x20;				//enter idle , must be do .
       ;_IER1 &= 0xfe ;
       
       
       lda   #1

⌨️ 快捷键说明

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