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

📄 pt6554.asm

📁 .ifnz I2C_SUPPORT ************************************************************** Function : fPro
💻 ASM
字号:
.ifnz PT6554
fProcessVfdWrite:
        inx     pt6554_count
        inx     pt6554_count
        ;;STB=0
	    rmb		VFD_STB_bit,VFD_PORT
        lda     #%01000010
        sta     rOutBuffer
        jsr     fSentOneByte  
        ;;STB=1
        smb		VFD_STB_bit,VFD_PORT
        lda     IOP_DATA0_L
        and     #VFD_DAT_LN_MASK
        sta     pt6554_count 
        lda        #6      						  
        sta     pt6554_display_length
        ldx     #0
pt6554_SentDataloop:
        lda     IOP_DATA2_L,x
        sta     rOutBuffer
        jsr     fSentOneByte               
        inx
        cpx     pt6554_display_length
        bne     pt6554_SentDataloop
        lda     pt6554_count
        cmp     #1
        bne     next1
        lda     #%00000011
        sta     rOutBuffer
        jsr     fSentOneByte    
        bra     pt6554_end
next1: 
        cmp     #6
        bne     next2
        lda     #%10000000
        sta     rOutBuffer
        jsr     fSentOneByte    
        bra      pt6554_end
next2:   
        cmp     #3
        bne     next3
        lda     #%01000000
        sta     rOutBuffer
        jsr     fSentOneByte    
        bra     pt6554_end
next3:   
        cmp     #4
        bne     pt6554_end
        lda     #%11000000
        sta     rOutBuffer
        jsr     fSentOneByte    
        lda		#0
		sta		pt6554_count 
pt6554_end:            
		;;STB=0
		rmb		VFD_STB_bit,VFD_PORT 
		rmb		VFD_CLK_bit,VFD_PORT       
        rts
              
;;*************************************************************
;;Function    : spl10 fProcessVfdRead
;;Description : process VFD read function 
;;Input       : parameter on memory 
;;Output      : data memory
;;**************************************************************
fProcessVfdRead:
		rmb	    VFD_STB_bit,VFD_PORT
		bbs     VFD_DATA_IN_bit,VFD_DATA_IN_PORT,pt6554_data_is_High

		lda     #%01000011
		sta     rOutBuffer
		jsr     fSentOneByte  
		smb	    VFD_STB_bit,VFD_PORT
		jsr     fReceiveOneByte
		ldx     #30
               
check_next_bit:
		ror		pt6554_receiver
		ror		pt6554_receiver+1
		ror		pt6554_receiver+2
		ror		pt6554_receiver+3   
		bcc		next_loop
		stx		VfdResponse1
		bra		pt6554_data_is_High
next_loop:
		dex
		bne		check_next_bit
               
pt6554_data_is_High:

		stz     pt6554_receiver+1
		stz     pt6554_receiver+2
		stz     pt6554_receiver+3
		lda     #2
		sta     pt6554_receiver

		rmb	    VFD_STB_bit,VFD_PORT
		rmb	    VFD_CLK_bit,VFD_PORT
		rts

;;**************************************************************
;;Function     : sent byte to spl10
;;Description  : if rSpl10CtrlFlag=1 ,indication communication fail
;;Input        : rOutBuffer
;;Output       : NONE
;;**************************************************************
fSentOneByte:
		ldy     #8     
		clc     
SentOneBit:
		rmb     VFD_CLK_bit,VFD_PORT     ;;clk=0

		ror     rOutBuffer
		bcs     lDataIsHigh
		rmb     VFD_DATA_bit,VFD_DATA_PORT
		bra     DataIsSet
lDataIsHigh:
		smb     VFD_DATA_bit,VFD_DATA_PORT
DataIsSet:
		jsr     fDelay1
		jsr     fDelay1
		jsr     fDelay1
		jsr     fDelay1

		smb     VFD_CLK_bit,VFD_PORT       ;;clk=1
		        
		jsr     fDelay1
		jsr     fDelay1
		jsr     fDelay1
		jsr     fDelay1

		dey
		bne		SentOneBit
               
SentOneBytefail:
               
		rts               
;;***********************************************
;;fReceiveOneByte
;;**********************************************         
fReceiveOneByte:
              
lReceiveOneBit:
               
		;;clk=0
		rmb		VFD_CLK_bit,VFD_PORT   
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		;;clk=1
		smb		VFD_CLK_bit,VFD_PORT
		bbs		VFD_DATA_IN_bit,VFD_DATA_IN_PORT,lRevDataIsHigh
lRevDataIsLow:
		clc
		bra		lRevOk
lRevDataIsHigh:
		sec
lRevOk:       

		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		jsr		fDelay1
		rol		pt6554_receiver
		rol		pt6554_receiver+1
		rol		pt6554_receiver+2
		rol		pt6554_receiver+3
		bcc		lReceiveOneBit
                   
		rts   

.endif

⌨️ 快捷键说明

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