大香蕉大香蕉在线播放-日韩av在线一区中文字幕-日韩熟女熟妇久久精品综合-精品免费视频一区二区三区

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開發(fā)工具

提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

PIC16F877單片機(jī)完成i2c通訊程序

更新時(shí)間: 2019-03-23
閱讀量:2107

十年專注單片機(jī)方案開發(fā)的方案公司英銳恩,分享PIC16F877單片機(jī)完成i2c通訊程序。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。

用PIC16F877完成的I2C通訊
W_TEMP      EQU     72H                            ;W的臨時(shí)寄存器
STATUS_TEMP EQU     73H
DATA_W      EQU     74H                            ;數(shù)據(jù)寫入寄存器
DATA_R      EQU     75H                            ;數(shù)據(jù)讀出寄存器
SCL         EQU     3                              ;時(shí)鐘的位地址
SDA         EQU     4
WP          EQU     2                              ;寫保護(hù)線
ADDRESS     EQU     26H                            ;定義地址常數(shù)
VALUE       EQU     55H                            ;計(jì)劃寫入的值

 

;----------------------------------------
ORG      0000H
         NOP
         CLRF       PCLATH                           ;確保頁選位為0
         CALL       INIT_I2C                            ;I2C的初始化程序
         CLRF       DATA_R                           ;清數(shù)據(jù)讀取寄存器
         MOVLW      VALUE
         MOVWF      DATA_W

CALL       WRITE                              ;調(diào)用寫子程序
         CALL       DELAY10MS                     ;延時(shí)
         CALL       READ                               ;調(diào)用讀子程序
         GOTO       $
;-------------------------------------------------------------------------
WRITE
WETSTART
         CALL        I2C_IDLE                      ;I2C的初始化程序
         BANKSEL     SSPCON2
         BSF         SSPCON2,0                     ;SEN   建立啟動(dòng)時(shí)序
         BANKSEL     PIR1
         BTFSS       PIR1,3                        ;SSPIF   啟動(dòng)時(shí)序是否完成
         GOTO        $-1

SENDWRTCOMM
         MOVLW       B'10100000'                   ;     7位地址+1位寫控制位
         BANKSEL     SSPBUF
         MOVWF       SSPBUF
         CALL        WRTACKTEST                    ;檢測(cè)應(yīng)答信號(hào)
SENDADDRESS
         BANKSEL     SSPSTAT
         BTFSC       SSPSTAT,0                     ;BF       檢測(cè)寄存器滿標(biāo)志位

GOTO        $-1
         MOVLW       ADDRESS                       ;寫一個(gè)單元地址字節(jié)
         BANKSEL     SSPBUF
         MOVWF       SSPBUF                        ;開始一次字節(jié)寫操作
         CALL        WRTACKTEST                    ;檢測(cè)應(yīng)答信號(hào)
SENDDATA                                           ;發(fā)送數(shù)據(jù)字節(jié)
         BANKSEL     SSPSTAT
         BTFSC       SSPSTAT,0                     ;BF      檢測(cè)寄存器滿標(biāo)志位
         GOTO        $-1                          
         MOVF        DATA_W,0                      ;寫一個(gè)數(shù)據(jù)字節(jié)
         BANKSEL     SSPBUF

 MOVWF       SSPBUF                        ;開始一個(gè)字節(jié)寫操作
         CALL        WRTACKTEST                    ;檢測(cè)應(yīng)答信號(hào)
         BANKSEL     PIR1
         BCF         PIR1,3                       ;SSPIF   清除MSSP的中斷標(biāo)志位 
WRTSTOP
         BANKSEL     SSPCON2
         BSF         SSPCON2,0                    ;SEN       停止
         BANKSEL     PIR1
         BCF         PIR1,3                      

    RETURN
;-----------------------------------------------------------------------
READ
READSTART
         CALL        I2C_IDLE
  BANKSEL     PIR1
  BCF         PIR1,3             

 

  BANKSEL     SSPCON2
         BSF         SSPCON2,0            

 

         BSF         SSPCON2,RSEN
         BANKSEL     PIR1
         BTFSS       PIR1,3        

 

    GOTO        $-1
WRTWRITE
         MOVLW       0A0H
        BANKSEL     SSPBUF
         MOVWF       SSPBUF
         CALL        WRTACKTEST
WRTADDRESS
         MOVLW       ADDRESS
         BANKSEL     SSPBUF
         MOVWF       SSPBUF
        CALL        WRTACKTEST
         CALL        DELAY10MS
RESTART
         CALL        I2C_IDLE
         BANKSEL     PIR1
  BCF         PIR1,3               ;SSPIF
         BANKSEL     SSPCON2
         BSF         SSPCON2,0           ;SEN
         BANKSEL     PIR1
         BTFSS       PIR1,3              ;SSPIF
         GOTO        $-1

WRTREAD
         MOVLW       0A1H
         BANKSEL     SSPBUF
         MOVWF       SSPBUF
         CALL        WRTACKTEST
         BANKSEL     PIR1
         BCF         PIR1,3                ; SSPIF
STARTREAD
         BANKSEL     SSPCON2
         BSF         SSPCON2,3             ;RCEN
READDATA
         BANKSEL     PIR1
         BCF         PIR1,3                ;SSPIF
         BTFSS       PIR1,3                ;SSPIF
         GOTO        $-1
  BANKSEL     SSPBUF
         MOVF        SSPBUF,0

 MOVWF       DATA_R
         BANKSEL     PIR1
         BCF         PIR1,3                 ;SSPIF
SENDREADNACK
         BANKSEL     SSPCON2
         BSF         SSPCON2,5                ;ACKDT
         BSF         SSPCON2,4                ;ACKEN
         BANKSEL     PIR1
         BTFSS       PIR1,3                    ;SSPIF
         GOTO        $-1

READSTOP
         BANKSEL     SSPCON2
         BSF         SSPCON2,2                 ;PEN
         BANKSEL     PIR1
         BTFSS       PIR1,3                    ; SSPIF
  GOTO        $-1
  BCF         PIR1,3                     ;SSPIF
         RETURN
;----------------------------------------------------------------------
WRTACKTEST
         BANKSEL     PIR1
         BCF         PIR1,3                    ;SSPIF
         BTFSS       PIR1,3
         GOTO        $-1
         RETURN               

 

;-----------------------------------------------------------------------------
I2C_IDLE
         BANKSEL     SSPSTAT
         BTFSC      SSPSTAT,2            ;R_W
  GOTO       $-1
         MOVF       SSPCON2,0
  ANDLW      1FH
         BTFSS      STATUS,2             ;Z
         GOTO       $-3
         RETURN

;------------------------------------------------------------------------
INIT_I2C
         BANKSEL    TRISC
         BSF        TRISC,SDA
         BSF        TRISC,SCL
  BCF        TRISE,WP
         BANKSEL    PORTE
         BCF        PORTE,WP
         BANKSEL    SSPADD

  MOVLW      9
         MOVWF      SSPADD
         BCF        SSPSTAT,6
  BSF        SSPSTAT,7
  BANKSEL    SSPCON
  MOVLW      38H
  MOVWF      SSPCON
        
         RETURN
;------------------------------------------------------------------------
DELAY10MS
MOVLW    0FFH
    MOVWF     7FH
L1      MOVLW     0FFH
MOVWF     7EH
L2 DECFSZ    7EH,1
GOTO      L2
DECFSZ    7FH,1
        GOTO      L1
        RETURN
        END

男人和女人干污污| 正在播放 国产精品推荐| 久久久久亚洲精品无码系列 | 欧美日韩亚洲人人夜夜澡| 日韩 欧美 成人 免费| 欧美性做爰片免费视频看| 中文字幕国产精品一区二区三区| 国产裸模大尺度私拍视频| 多男用舌头伺候一女| 日日爱黄色毛片视频| 国内不卡的中文字幕一区| 女人逼逼出水视频| 啊啊啊男女激情插插视频| 两人爽爽爽无码免费视频| 国产免费好大好硬| 日本免费精品一区二区三区四区| 八插8插黄色视频| 五月天婷婷一区二区三区久久| 亚洲综合区欧美一区二区| 久久精品国产亚洲av伦理| 国产美女裸体视频全免费| 国产一二三四五自产| 日韩欧美一区二区三区在线视频 | 久久久中文字幕在线视频| 国产综合精品一区二区青青| 在线看免费无码a片视频| 最新黄色A级一短片| 性一乱一交一免费看视频| 亚洲精品成a人在线观看| 偷窥国内肥臀老熟女视频| 亚洲乱码专区一区二区三区四区| 男人大鸡巴操女人的大逼| 大黑屌后入骚妇屁股| 免费女人男人肏逼| 亚洲综合色88综合天堂| 欧美大鸡巴操穴日韩| 国产高清一区二区三区四区色| 影音先锋亚洲中文综合网| 女人18片毛片。| 2021国产精品自在自线| 九热中文字幕在线|