音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

請(qǐng)教高手:pic寫24lc01b的問題

作者:fanyi 欄目:單片機(jī)
請(qǐng)教高手:pic寫24LC01B的問題
我在用PIC16C5424LC01時(shí)遇到很奇怪的問題,寫入的和讀出的不同。我想可能干脆就是沒寫進(jìn)去,那位高手可以幫忙?我把程序給你發(fā)過去
或是給我發(fā)一個(gè)調(diào)試通過的程序,我自己研究,先謝了
fanyilee@hotmail.com

2樓: >>參與討論
fanyi
哪位高手幫幫忙???
哪位高手幫幫忙。??

3樓: >>參與討論
mmf0809

你可以在燒片機(jī)上看看你有沒寫進(jìn)

4樓: >>參與討論
bronchbos
問題在哪里

    我前天調(diào)試了24LC64的程序, 用PIC16C57 的MCU. 還能夠幫你分析.

                    
                              

5樓: >>參與討論
study51
寫的操作有沒有完成?試試延時(shí)2ms后再讀
 
6樓: >>參與討論
fanyi
prom1
RB     EQU     6
RA    EQU     5
BUF    EQU     8
TXBUF   EQU     9
RXBUF   EQU     0AH
CNT     EQU     0BH
ADDR    EQU     0CH
FLAG    EQU     0DH
ADDRCOPY EQU    0EH
NUMB     EQU     0FH
DO      EQU     0
DI      EQU     1
SCL     EQU     1
SDA     EQU     2
;------------------------------------------------------------------------------------
;--------------------------
        ORG      1FFH
        GOTO     MAIN
;--------------------------
        ORG      0H
;**********************************************************
;子程序區(qū)
;**********************************************************
;==================================================
;數(shù)據(jù)處理
;向24LC01B寫入1(位于NUMB中)字節(jié),1不能大于24LC01B的頁緩沖器容量,
;寫入的起始地址在ADDR中,原數(shù)據(jù)起始地址指針位于W中
WRBYTES CLRF FLAG
        MOVWF 4
        MOVLW 0A0H
        MOVWF TXBUF
        CALL BSTART
        CALL TX
        MOVF ADDR,W
        MOVWF TXBUF
        CALL TX
WRLOOP: MOVF 0,W
        MOVWF TXBUF
        CALL TX
        INCF 4
        DECFSZ NUMB,1
        GOTO WRLOOP
        CALL BSTOP
        INCF ADDR,1
        RETLW 0
RDBYTES CLRF FLAG
        MOVWF 4
        MOVLW 0A0H
        MOVWF TXBUF
        CALL BSTART
        CALL TX
        MOVF ADDR,W
        MOVWF TXBUF
        CALL TX
        CALL BSTART
        MOVLW 0A1H
        MOVWF TXBUF
        CALL TX
RDLOOP  CALL RX
        MOVF RXBUF,W
        MOVWF 0
        INCF 4,1
        DECFSZ NUMB,1
        GOTO LOWACK
        MOVLW B'00000000'
        TRIS RB
        BSF RB,SDA
        BSF RB,SCL
        NOP
    NOP
    NOP
        BCF RB,SCL
        CALL BSTOP
        RETLW 0
LOWACK  MOVLW B'00000000'
        TRIS RB
        BCF RB,SDA
        NOP
    NOP
        BSF RB,SCL
        NOP
    NOP
        BCF RB,SCL
        GOTO RDLOOP
;---------------------------------
BSTART
        MOVLW B'00000000'
        TRIS RB
        BSF RB,SDA
        BSF RB,SCL
       NOP
    NOP
        NOP
        BCF RB,SDA
        NOP
    NOP
        NOP
        BCF RB,SCL
        RETLW 0
;----------------------------------
TX      MOVLW 08
        MOVWF CNT
TXLP    BCF FLAG,DO
        BTFSC TXBUF,7
        BSF FLAG,DO
        MOVLW B'00000000'
        TRIS RB
        BTFSS FLAG,DO
        GOTO TX0
        BSF RB,SDA
        GOTO TX1
TX0     BCF RB,SDA
TX1     BSF RB,SCL
        NOP
    NOP
        NOP
        BCF RB,SCL
        RLF TXBUF,1
        DECFSZ CNT,1
        GOTO TXLP
        MOVLW B'00000100'
        TRIS RB
        BSF RB,SDA
        NOP
    NOP
        NOP
        BCF FLAG,DI
        BSF RB,SCL
        NOP
    NOP
        NOP
        BTFSC RB,SDA
        BSF FLAG,DI
        BCF RB,SCL
        RETLW 0
;-------------------------------------
BSTOP
        MOVLW B'00000000'
        TRIS RB
        BCF RB,SDA
        NOP
  
7樓: >>參與討論
fanyi
diao yong prom
        MOVLW 1      ;數(shù)據(jù)個(gè)數(shù)1
     MOVWF NUMB
        MOVLW 10H
        MOVWF ADDR
        MOVLW 08H
        CALL WRBYTES    ;保存F8

8樓: >>參與討論
fanyi
現(xiàn)象
我寫入的值和讀出的值不一致,且無論寫入何值讀出的值不變?yōu)?5h,我懷疑沒有寫進(jìn)去,程序是樹上的范例程序,我采用pb1為scl,pb2為sda
請(qǐng)高手指點(diǎn)

9樓: >>參與討論
fanyi
致:bronchbos
請(qǐng)問能不能給我一份你調(diào)試通過的程序,謝謝
fanyilee@hotmail.com

10樓: >>參與討論
fxmxh
有沒有把RB口的內(nèi)部上拉關(guān)掉?
 
11樓: >>參與討論
fanyi
有沒有把RB口的內(nèi)部上拉關(guān)掉?
我對(duì)pic不熟?
把RB口的內(nèi)部上拉關(guān)掉是不是指設(shè)置輸入輸出狀態(tài)?


12樓: >>參與討論
fanyi
請(qǐng)教怎么關(guān)?
請(qǐng)教怎么關(guān)?

13樓: >>參與討論
fxmxh
搞錯(cuò)了:)54沒有上拉控制位的
 
14樓: >>參與討論
fanyi
請(qǐng)高手指點(diǎn)阿!
請(qǐng)高手指點(diǎn)阿!

15樓: >>參與討論
fanyi
小弟真的很急!
請(qǐng)來此的高手賜教


16樓: >>參與討論
fanyi
你好
eeproom你好,我找了一下,確實(shí)有一個(gè)i2c的,但他用的芯片是p16f876
程序多余的部分也很多,請(qǐng)問你有PIC16C54的程序嗎?

17樓: >>參與討論
eeproom
你沒找到?將有關(guān)腳改一下,有詳細(xì)的注解。
;
; Declare:
; This subroutine copy from:http://www.piclist.com/techref/microchip/i2c-dv.htm
; pin set as:      PIC16CXX
;                 ____________
;                 |           |
;                 |           |
;                 |    PORTb.2|----SDA(you can change to your PORT's pin)
;                 |    PORTb.1|----SCL(change to your PORT's pin).
;                 |           |
;
;------------------------------------------------------------------------
;
; I^2C MASTER send/receive routines for 24Cxx EEPROM MEMORY chips
; by Andrew D. Vassallo
;
; email: snurple@hotmail.com
;
; Timing set for 4MHZ clock, 4.7K pullup resistors to SDA and SCL LINEs.
; Checks provided for failed ACK during EEPROM write access.
; Optimized for speed and clarity of function.
; Full comments provided.
; Bank switching correct.
;
;------------------------------------------------------------------------

;------ NOTE: Locate all variables in Bank 1!!
CBLOCK
    GenCount    ; generic counter/temp register (use with caution)
    Mem_Loc        ; EEPROM MEMORY address to be accessed
    Data_Buf    ; byte read from EEPROM is stored in this register
    OutputByte    ; used for holding byte to be OUTPUT to EEPROM
    flags        ; flag bit register
ENDC

;*******************************************************************************
;
;------ Define PORT pins: RB2=SDA=data, RB1=SCL=clock
;------ Pins are connected via 4.7K pullup resistors for passive CONTROL
;------ Any PORT pins can be used.
#define    SDA    TRISB, 2  ;
#define    SCL    TRISB, 1  ;


;------ The MEMORY address is predefined as Mem_Loc coming in to this routine to read from EPROM.
;------ Note that using the 24Cxx requires an address for bits <1:3> for CONTROL bytes.  For a one-
;------ MEMORY CIRCUIT used here, just use address 000.  This routine uses "random addressing."
;------ This code has been optimized for speed at 4MHZ, assuming Temperature is between -40 and +85 deg. C.
;
; Call with: EEPROM address in Mem_Loc
; Returns with: byte in Data_Buf
ReadEPROM
        bcf    STATUS, RP0
        movf    PORTB, 0        ; for EEPROM operation,
        andlw    0xF9            ; load zero into RB1 and RB2
        movwf    PORTB            ; for passive CONTROL of bus
        bsf    STATUS, RP0        ; SELECT Bank 1 for TRISB access (passive SCL/SDA CONTROL)
        bsf    SDA            ; let SDA LINE get pulled high
        bsf    SCL            ; let SCL LINE get pulled high
        bcf    SDA            ; START - data LINE low
        movlw    0xA0            ; send "DUMMY" write (10100000) to set address
        call    Byte_Out
        btfsc    flags, 0
        goto    Error_Routine        ; NOTE: MUST USE "RETURN" FROM THERE
        movf    Mem_Loc, 0
        call    Byte_Out
        btfsc    flags, 0
        goto    Error_Routine
        bcf    SCL            ; pull clock LINE low in preparation for 2nd START bit
        nop
        bsf    SDA            ; pull data LINE high - data transition during clock low
        bsf    SCL            ; pull clock LINE high to begin generating START
        bcf    SDA            ; 2nd START - data LINE low
        movlw    0xA1            ; request data read from EPROM (read=10100001)
        call    Byte_Out
        btfsc    flags, 0
        goto    Error_Routine
;------ Note that Byte_Out leaves with SDA LINE freed to allow slave to send data in to MASTER.
        call    Byte_In
        movf    Data_Buf, 0        ; put result into W register for returning to CALL
        bcf    SCL            ; extra cycle for SDA LINE to be freed from EPROM
        nop
        bcf    SDA            ; ensure SDA LINE low before generating STOP
        bsf    SCL            ; pull clock high for S
18樓: >>參與討論
yuntian
#define SDA TRISB, 2  ;
 
參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
想學(xué)編程
請(qǐng)問pic18f252中地址超過4000H的調(diào)用出錯(cuò)間題
定義個(gè)端口也會(huì)出錯(cuò)!
請(qǐng)問使用pwm作d/a轉(zhuǎn)換的問題
找不到問題所在
免費(fèi)注冊(cè)為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)