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

📄 i2c.inc

📁 使用16f873來設定adi的HDMI轉RGB的chip設定參數值。
💻 INC
字号:
;******************************************************************************
;       SET AD9880 
;******************************************************************************
I2C_START_BIT     
                BCF     RC,SDA
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                BCF     RC,SCL
                
                RETLW   0
;************************************
I2C_STOP_BIT
                BCF     RC,SDA
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                BSF     RC,SCL
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                BSF     RC,SDA
                NOP
                NOP
                NOP
                NOP
                RETLW   0
;************************************        RETLW   0
I2C_SEND
                MOVLW   08H             ;8 BIT
                MOVWF   CYCLE
                
              
I2C_SEND_1      
                         
                RLF     TEMP2           ;SEND TEMP2 TO MEMORY
                BTFSC   STATUS,CF                   
                GOTO    I2C_SEND_2                
                BCF     RC,SDA
                GOTO    I2C_SEND_3
I2C_SEND_2    
                BSF     RC,SDA 
I2C_SEND_3           
                
                NOP 
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP

                BSF     RC,SCL      ;ONE CLOCK
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                BCF     RC,SCL
                NOP
                NOP
                NOP

                DECFSZ  CYCLE
                GOTO    I2C_SEND_1
                
              ;  MOVLW   10H
               ; TRIS    RC
                

                BCF     RC,SDA      ;ACK
                
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                BSF     RC,SCL
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                BCF     RC,SCL
               
                BSF     RC,SDA
                
                MOVLW    1AH
                MOVWF    CYCLE
DEL_28
                DECFSZ   CYCLE
                GOTO     DEL_28         ;(0.25*2)+(0.75*12)=10 us
                
    ;            MOVLW   00H
     ;           TRIS    RC
                
                
                RETLW   0
;************************************
I2C_READ_0
                MOVLW   08H
                MOVWF   CYCLE

  ;              B1
  ;              BCF     TRISA,MEM_CK
  ;              BSF     TRISA,MEM_DA
  ;              B0

I2C_READ_1
                RLF     TEMP2           ;MEMOUY DATA-->TEMP2
                BCF     TEMP2,BIT_0
                BTFSC   RC,SDA
                BSF     TEMP2,BIT_0

                BSF     RC,SCL      ;ONE CLOCK
                NOP
                BCF     RC,SCL

                DECFSZ  CYCLE
                GOTO    I2C_READ_1

  ;              B1
  ;              BCF     TRISA,MEM_CK
  ;              BCF     TRISA,MEM_DA
  ;              B0
  
               

                RETLW   0
;***********************************
; READ AD9880
;***********************************
RD_AD9880
                CALL    I2C_STOP_BIT
                CALL    I2C_START_BIT

                MOVLW   98H            ;AD9880 ADDRESS/WRITE
                MOVWF   TEMP2
                CALL    I2C_SEND

                MOVF    ADDR,W           ; ADDRESS
                MOVWF   TEMP2
                CALL    I2C_SEND
            
                CALL    I2C_STOP_BIT
                CALL    I2C_START_BIT

                MOVLW   99H            
                MOVWF   TEMP2
                CALL    I2C_SEND
                CALL    I2C_READ_0        

                MOVF    TEMP2,W
                MOVWF   DATAS           
                CALL    I2C_STOP_BIT

                RETLW   0
;***********************************
; WRITE AD9880
;***********************************
WE_AD9880
                CALL    I2C_STOP_BIT
                CLRF    RTC
WE_DEL_4MS
                BTFSS   RTC,RF5
                GOTO    WE_DEL_4MS
    ;            CALL    I2C_STOP_BIT
                CALL    I2C_START_BIT
;WAIT_ACK_1
             ;   BTFSS   RC,SDA
            ;    GOTO    ADG1
             ;   BTFSS   RTC,RF3
             ;   GOTO    WAIT_ACK_1
             ;   RETLW   0

ADG1
                MOVLW   98H           
                MOVWF   TEMP2
                CALL    I2C_SEND

                MOVF    ADDR,W           ;ADDRESS
                MOVWF   TEMP2
                CALL    I2C_SEND
                
                MOVF    TEMP,W           
                MOVWF   TEMP2
                CALL    I2C_SEND
             
                

                RETLW   0                
                
;***********************************
; WRITE AD9880~~SINGLE
;***********************************
WE_SINGLE
                MOVF    TEMP,W           
                MOVWF   TEMP2
                CALL    I2C_SEND
                RETURN

⌨️ 快捷键说明

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