亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? emc-epprom.txt

?? 義隆單片機讀寫24C** ** 24CXX 接口I2C總線讀/寫的程序 ** (所有時序均基于4MHZ晶體震蕩器頻率)
?? TXT
?? 第 1 頁 / 共 2 頁
字號:

 freego 發表于 2002-4-21 12:53 侃單片機 ←返回版面     

小弟提問? 

1、匠人兄在“TX”中讀得應答位,小弟沒看懂如果讀得值為“1”即沒有應答該如何處理?
2、匠人兄在“WRPAGE”中將寫入次數循環“NUM_24”次不知有否考慮當寫入字節數超越頁界(如每頁16BYTES、32BYTES)時數據地址溢出而覆蓋頁首的問題?
    

 

 程序匠人 發表于 2002-4-21 15:30 侃單片機 ←返回版面     

答復freego 

1、匠人兄在“TX”中讀得應答位,小弟沒看懂如果讀得值為“1”即沒有應答該如何處理?
答:這段程序中,沒有對可能的錯誤做處理(因為我的設計中,I2C總線上只掛了一個器件),在“TX”中讀得應答位,只是為了輸出一個CLOCK。


2、匠人兄在“WRPAGE”中將寫入次數循環“NUM_24”次不知有否考慮當寫入字節數超越頁界(如每頁16BYTES、32BYTES)時數據地址溢出而覆蓋頁首的問題?
答:既然是頁寫/頁讀,當然只針對頁內進行操作了。如果要跨頁,我不是還有單字節寫/讀程序嗎?只要再做一段循環程序去調用即可。


歡迎大家把這段程序繼續完善。    

 

簽名:


如果你的‘芯’是一座作坊,
我愿做那不知疲倦的程序匠……

 

 zhhch 發表于 2002-4-21 23:40 侃單片機 ←返回版面     

向程序匠人學習,現貼上我寫24xx讀寫程序,以供交流。我有emc_wice專業漢化版(本人漢化),歡迎索取! 

該程序系51程序改寫而來,我現在正用著呢!

;=====================寫EEPROM程序 ========================================
;功能:從KEY_BUF取數據,寫入EEPROM中SUB_ADR,連續寫BYTE_CNT個字節
;入口:SUB_ADR        出口:NONE                    
;影響資源:A,DATA_BUF,P6,STU,BIT_CNT,BYTE_CNT,SUB_ADR                                              
;==========================================================================
WR_UEE:                            ;將KEY_BUF中客密碼寫EEPROM
        MOV     SUB_ADR,@U_EE
        MOV     BYTE_CNT,@0X06            ;設置字節計數器為6
        JMP     WR_EE
;------------------------------------------------------------------------        
WR_SEE:                            ;將KEY_BUF中主密碼寫EEPROM
        MOV     SUB_ADR,@S_EE
        MOV     BYTE_CNT,@0X07            ;設置字節計數器為7
;------------------------------------------------------------------------        
WR_EE:
        MOV     EEP6_BUF,EE    ;保護EE口
        BS      EE,PW          ;EEPROM上電
        BC      EE,WP          ;清除EEPROM的寫保護        
        CALL    BSTART         ;啟動IIC
        MOV     A,@WREE        ;發送寫器件地址
        MOV     DATA_BUF,A
        CALL    SENDBYTE
        JBC     STU,GP         
        JMP     WR_RET        ;無應答返回
        MOV     A,SUB_ADR     ;發送寫單元地址
        MOV     DATA_BUF,A
        CALL    SENDBYTE
        JBC     STU,GP
        JMP     WR_RET        ;無應答返回
        MOV     A,@KEY_BUF    ;設置待寫數據區首址
        MOV     R4,A
WR_NEXT:
        MOV     A,R0
        MOV     DATA_BUF,A    ;取待寫數據
        CALL    SENDBYTE
        JBC     STU,GP
        JMP     WR_RET        ;無應答返回
        INC     R4
        DJZ     BYTE_CNT
        JMP     WR_NEXT
        
        CALL    BSTOP         ;停止IIC
        CALL    DELAY10       ;延時10MS,等待數據寫完
WR_RET: 
        BC      EE,PW          ;EEPROM下電
;---------------------------------------------------------        
        IOR     EE             ;設置SDA為輸出
        AND     A,@0B11110111  ;**************************
        IOW     EE
;--------------------------------------------------------- 
        MOV     EE,EEP6_BUF    ;恢復EE口現場
        RET
;=====================讀EEPROM程序 ========================================
;功能:讀EEPROM,寫入PSW_BUF,連續寫BYTE_CNT個字節
;入口:SUB_ADR       出口:NONE                    
;影響資源:A,DATA_BUF,P6,STU,BIT_CNT,BYTE_CNT,SUB_ADR                                              
;==========================================================================
RD_UEE:                            ;讀6位客密碼到PSW_BUF
        MOV     SUB_ADR,@U_EE
        MOV     BYTE_CNT,@0X05            ;設置字節計數器為6-1
        JMP     RD_EE
;------------------------------------------------------------------------        
RD_SEE:                            ;讀7位密碼到PSW_BUF
        MOV     SUB_ADR,@S_EE
        MOV     BYTE_CNT,@0X06            ;設置字節計數器為7-1
;------------------------------------------------------------------------        
RD_EE:    
        MOV     EEP6_BUF,EE    ;保護EE口    
        BS      EE,PW          ;EEPROM上電
        BS      EE,WP          ;設置EEPROM的寫保護        
        CALL    BSTART         ;啟動IIC
        MOV     A,@WREE        ;發送寫器件地址
        MOV     DATA_BUF,A
        CALL    SENDBYTE
        JBC     STU,GP         
        JMP     RD_RET         ;無應答返回
        MOV     A,SUB_ADR      ;發送寫單元地址
        MOV     DATA_BUF,A
        CALL    SENDBYTE
        JBC     STU,GP
        JMP     RD_RET         ;無應答返回
        CALL    BSTART         ;重新啟動IIC
        MOV     A,@RDEE        ;發送讀器件地址
        MOV     DATA_BUF,A
        CALL    SENDBYTE
        JBC      STU,GP         
        JMP     RD_RET         ;無應答返回
        
        MOV     A,@PSW_BUF     ;設置讀出數據存放首址
        MOV     R4,A
RD_NEXT:
        BC      STU,GP         ;連續接收BYTE_CNT-1字節數據
        CALL    RCVBYTE        ;并發送應答信號
        MOV     A,DATA_BUF
        MOV     R0,A
        INC     R4
        DJZ     BYTE_CNT
        JMP     RD_NEXT
        
        BS      STU,GP         ;接收最后一個字節數據
        CALL    RCVBYTE        ;并發送非應答信號
        MOV     A,DATA_BUF
        MOV     R0,A
        CALL    BSTOP          ;停止IIC
        
RD_RET: 
        BC      EE,PW           ;EEPROM下電
;---------------------------------------------------------        
        IOR     EE             ;設置SDA為輸出
        AND     A,@0B11110111  ;**************************
        IOW     EE
;---------------------------------------------------------         
        MOV     EE,EEP6_BUF     ;恢復EE現場
        RET
        
;============================延時子程序====================================
;功能:短延時         入口:NONE             出口:NONE                     
;影響資源:A,TEMP ,STATUS                                                      
;==========================================================================
DELAY:                         
        MOV         A,@0X01
        MOV         TEMP,A
        DJZ         TEMP
        JMP         $-1
        RET            
;============================延時子程序10MS================================
;功能:延時         入口:NONE             出口:NONE                     
;影響資源:A,TEMP ,STATUS                                                      
;==========================================================================
DELAY10:                         
        MOV         A,@0X20
        MOV         TEMP,A
        MOV         A,@250
        MOV         TEMP1,A
        DJZ         TEMP1
        JMP         $-1
        DJZ         TEMP
        JMP         $-5
        RET                    
;===============================啟用IIC總線================================
;功能:開啟IIC總線                                                        
;入口:NONE       出口:NONE   SCL=0,SDA=0
;影響資源:A,P6,STU                                                       
;==========================================================================
BSTART:
        BS      EE,SDA        ;拉高SDA和SCL
        BS      EE,SCL
        CALL    DELAY
        BC      EE,SDA        ;拉低SDA,啟動IIC
        CALL    DELAY
        BC      EE,SCL        ;拉低SCL
        RET
;===============================關閉IIC總線================================
;功能:關閉IIC總線                                                        
;入口:NONE       出口:NONE  ,SCL=1,SDA=1                                              
;影響資源:A,P6,STU                                                       
;==========================================================================
BSTOP:            
        BC      EE,SDA        ;拉低SDA
        BS      EE,SCL        ;拉高SCL
        CALL    DELAY
        BS      EE,SDA        ;拉高SDA,停止IIC
        CALL    DELAY     
        RET
;======================送出一個字節數據,高位在前===========================
;功能:從MCU發送一個字節給EEPROM,并接收應答信號                                      
;入口:發送位數放在DATA_BUF       出口:GP=0 表應答正確 GP=1 表應答錯誤                          
;影響資源:A,DATA_BUF,P6,STU,BIT_CNT                                              
;==========================================================================
SENDBYTE:                
        MOV     A,@0X08        ;準備位計數器為8
        MOV     BIT_CNT,A
SEND_B:        
        RLC     DATA_BUF       ;從DATA_BUF取數據送C
        JBC     STU,C          ;C->SDA
        BS      EE,SDA
        JBS     STU,C          
        BC      EE,SDA
        CALL    DELAY
        BS      EE,SCL         ;拉高SCL,通知接受數據
        CALL    DELAY
        BC      EE,SCL         ;拉低SCL,鉗住總線
        DJZ     BIT_CNT
        JMP     SEND_B         ;8位未發送完,繼續發送
        
        BS      EE,SDA         ;拉高SDA
;---------------------------------------------------------        
        IOR     EE             ;設置SDA為輸入
        OR      A,@0B00001000  ;**************************
        IOW     EE
;---------------------------------------------------------        
        BS      EE,SCL         ;拉高SCL,接收應答信號
        CALL    DELAY
        JBC     EE,SDA         ;SDA->GP:=0,OK,=1,ERR
        BS      STU,GP
        JBS     EE,SDA  
        BC      STU,GP
;---------------------------------------------------------        
        IOR     EE             ;設置SDA為輸出
        AND     A,@0B11110111  ;**************************
        IOW     EE
;---------------------------------------------------------        
        BC      EE,SCL         ;拉低SCL
        BC      EE,SDA         ;拉低SDA
        RET
;=====================接收一個字節數據,高位在前===========================
;功能:接收一個字節從EEPROM,并發送應答信號
;入口:接收數據放在DATA_BUF       出口:NONE                    
;影響資源:A,DATA_BUF,P6,STU,BIT_CNT                                              
;==========================================================================
RCVBYTE:                
        MOV     A,@0X08        ;準備位計數器為8
        MOV     BIT_CNT,A
        BS      EE,SDA
;---------------------------------------------------------        
        IOR     EE             ;設置SDA為輸入
        OR      A,@0B00001000  ;**************************
        IOW     EE
;---------------------------------------------------------        
RCV_B:  
        BC      EE,SCL         ;拉低SCL
        CALL    DELAY
        BS      EE,SCL         ;拉高SCL
        CALL    DELAY
        JBC     EE,SDA          ;SDA->C
        BS      STU,C
        JBS     EE,SDA          
        BC      STU,C
        RLC     DATA_BUF       ;DATA_BUF<-C
        DJZ     BIT_CNT
        JMP     RCV_B          ;8位未接收完,繼續接收
        
        BC      EE,SCL         ;拉低SCL,準備發送應答信號
        JBC     STU,GP         ;GP->SDA,0發應答信號,1發非應答信號
        BS      EE,SDA
        JBS     STU,GP  
        BC      EE,SDA
;---------------------------------------------------------        
        IOR     EE             ;設置SDA為輸出
        AND     A,@0B11110111  ;**************************
        IOW     EE
;---------------------------------------------------------        
        BS      EE,SCL         ;拉高SCL,送出應答信號
        CALL    DELAY
        BC      EE,SCL         ;拉低SCL,鉗住總線,等待后續操作
        BC      EE,SDA
        RET        

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜免费电影| 五月综合激情日本mⅴ| 欧美少妇性性性| 99久久精品99国产精品| 狠狠色丁香婷婷综合| 美女视频网站久久| 精品午夜久久福利影院| 激情久久五月天| 国产盗摄精品一区二区三区在线| 久久国内精品视频| 久久激情综合网| 久久99国产精品尤物| 美女一区二区三区| 国产一区二区女| 成人免费高清在线| 色视频成人在线观看免| 欧美日韩在线直播| 日韩欧美一二三| 久久综合中文字幕| 中文字幕av一区 二区| 国产精品久久午夜夜伦鲁鲁| 中文字幕亚洲区| 亚洲国产日韩在线一区模特| 性久久久久久久| 麻豆国产精品官网| 国产福利精品一区二区| 91福利在线播放| 欧美人牲a欧美精品| 日韩欧美成人一区| 国产精品免费人成网站| 亚洲精品videosex极品| 蜜桃久久av一区| 国产91丝袜在线观看| 欧美私模裸体表演在线观看| 欧美精品在线观看播放| 精品少妇一区二区三区免费观看 | 亚洲精品一区二区三区99| 日韩免费一区二区三区在线播放| 欧美激情综合网| 亚洲欧美一区二区在线观看| 五月婷婷久久丁香| 成人精品小蝌蚪| 制服丝袜av成人在线看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久精品国产在热久久| 国产麻豆视频一区二区| 欧美在线一二三| 欧美激情综合在线| 美女免费视频一区| 欧美日韩在线播| 国产精品区一区二区三| 裸体歌舞表演一区二区| 色婷婷国产精品综合在线观看| 精品国产免费一区二区三区四区| 亚洲一区二区三区国产| 国产成人精品免费看| 日韩视频在线永久播放| 亚洲制服欧美中文字幕中文字幕| 国产剧情在线观看一区二区| 欧美视频日韩视频在线观看| 中文字幕中文字幕在线一区| 国产高清不卡一区二区| 日韩你懂的在线播放| 亚洲123区在线观看| 色av一区二区| 欧美激情一区二区三区蜜桃视频| 舔着乳尖日韩一区| 一本一本久久a久久精品综合麻豆| 欧美videos中文字幕| 日韩影院在线观看| 972aa.com艺术欧美| 精品少妇一区二区三区免费观看| 日韩在线卡一卡二| 在线观看日韩一区| 亚洲精品福利视频网站| 国产成人丝袜美腿| 欧美国产一区二区| 国产成人99久久亚洲综合精品| 精品99一区二区三区| 国产精一品亚洲二区在线视频| 欧美一级夜夜爽| 日本91福利区| 日韩免费观看高清完整版在线观看| 视频在线观看一区二区三区| 91麻豆精品国产91久久久久久久久| 五月综合激情网| 日韩亚洲欧美一区| 国产精一品亚洲二区在线视频| 欧美激情一区在线观看| 99国产精品久久久久久久久久久| 亚洲乱码日产精品bd| 在线观看www91| 亚洲国产精品久久人人爱蜜臀| 欧美群妇大交群中文字幕| 喷水一区二区三区| 久久日韩精品一区二区五区| 成人性生交大片免费看中文网站| 久久网站热最新地址| 国产麻豆成人精品| 中文字幕一区二区三区四区 | 国产精品一区二区三区四区 | 99久久婷婷国产综合精品电影 | 日本精品视频一区二区三区| 五月激情综合色| 久久久综合激的五月天| www.在线欧美| 亚洲电影在线播放| 久久婷婷国产综合精品青草| 91小视频在线免费看| 日本特黄久久久高潮| 国产亚洲午夜高清国产拍精品| 国产91露脸合集magnet| 亚洲福中文字幕伊人影院| 日韩欧美国产综合在线一区二区三区| 国产麻豆精品视频| 亚洲三级在线看| 91精品国产欧美一区二区成人| 激情欧美一区二区| 一区二区三区久久| 在线播放欧美女士性生活| 成人av综合在线| 毛片av一区二区| 亚洲永久精品大片| 国产精品三级av在线播放| 欧美猛男超大videosgay| 成人综合在线网站| 蜜臀久久99精品久久久久久9| 亚洲欧美综合另类在线卡通| 日韩精品一区二区三区在线| 欧美综合一区二区| 成人深夜福利app| 蜜桃视频在线观看一区| 亚洲制服丝袜在线| 亚洲免费视频中文字幕| 国产日产欧产精品推荐色| 日韩一区二区三区在线| 91久久精品一区二区三区| 成人av网站大全| 国产一区二区在线影院| 久久精品久久久精品美女| 日韩成人dvd| 午夜久久久久久久久| 一区二区三区在线视频免费观看| 国产欧美日韩另类视频免费观看| 欧美一区二区三区视频在线观看 | 亚洲乱码日产精品bd| 国产亚洲短视频| 欧美成人r级一区二区三区| 成人av网址在线| 国产精品1区二区.| 老司机精品视频线观看86| 亚洲成人自拍一区| 自拍偷拍国产精品| 国产精品污网站| 国产精品萝li| 国产精品久久久久永久免费观看| 国产欧美日本一区二区三区| 国产欧美视频一区二区三区| 欧美成人精品高清在线播放 | 日韩影院精彩在线| 亚洲国产精品麻豆| 亚洲电影一级片| 亚洲成av人在线观看| 视频在线观看一区二区三区| 一区二区三区精品在线| 亚洲国产精品天堂| 老司机精品视频在线| 国产99精品视频| 91丨porny丨中文| 精品视频1区2区| 8v天堂国产在线一区二区| 亚洲精品一区二区三区香蕉| 国产色91在线| 一区二区三区中文免费| 日韩av一二三| 国产盗摄一区二区| 色哟哟欧美精品| 91精品国产综合久久精品| 久久精品一区二区三区不卡 | 在线观看三级视频欧美| 欧美一区二区三区日韩视频| 久久久精品综合| 一区二区三区精品在线| 麻豆91在线播放| 97se狠狠狠综合亚洲狠狠| 91精品国产综合久久久久久| 久久久久久电影| 亚洲一区二区三区三| 国产一区二区三区在线观看免费| 成人免费视频播放| 制服丝袜亚洲精品中文字幕| 国产日韩欧美综合一区| 亚洲一区二区综合| 国产精品一级黄| 666欧美在线视频| 亚洲欧美自拍偷拍| 韩国午夜理伦三级不卡影院| 在线观看日韩高清av| 欧美激情中文字幕| 蜜臀久久99精品久久久久宅男|