Re: 範例程式讀寫內部EEPROM
|
||||
---|---|---|---|---|
中級會員
|
謝謝版主
將bank切換正確就可以了 感謝!!
發表於: 2006/12/13 13:45
|
|||
|
範例程式讀寫內部EEPROM
|
||||
---|---|---|---|---|
中級會員
|
大家好, 請問一下各位大哥:
我用範例程式(讀寫內部EEPROM), 其中變數的宣告 Data_EE_Addr equ 0X71 Data_EE_Data equ 0X72 改成 Data_EE_Addr equ 0X24 Data_EE_Data equ 0X25 就無法正確的將EEADR和EEDATA寫入數值 又改成 Data_EE_Addr equ 0X50 Data_EE_Data equ 0X51 也一樣無法正確的將EEADR和EEDATA寫入數值 改回原來的0x71和0x72就OK了!? 我是在debugger模式下, 用Watch視窗把EEADR和EEDATA叫出來看 以下是我的程式 ;;******************************************** ;; DATA =2006\12\12 ;; MUC =PIC16F877A ;; X'TAL =8MHZ(0.5us) ;;******************************************** #include <p16f877A.inc> delay_cnt1 equ 0x20 delay_cnt2 equ 0x21 TEMP equ 0x22 TEMP1 equ 0x23 ee_data_05 equ 0x26 ee_data_06 equ 0x27 ee_addr equ 0x50 ee_data equ 0x51 #define i2c_slave_add 0x70 ;--------------------------------- org 0x000 nop goto main org 0x004 nop bcf STATUS,RP0 btfsc PIR1,SSPIF call i2c_slave_act retfie main: call pic_set movlw 0x23 movwf ee_addr movlw 0x24 movwf ee_data movf ee_addr,w banksel EEADR movwf EEADR movf ee_data,w banksel EEDATA movwf EEDATA;---->;(從這裡設中斷點看數值) nop call WRITE_EEPROM ;--------------------- mainloop: nop goto mainloop ;;---------------------------------------------------------------- ;----INTERNAL EEPROM WRITE----- ; WRITE_EEPROM: banksel EECON1 bcf EECON1,EEPGD bsf EECON1,WREN ; bcf INTCON,GIE movlw 0x55 movwf EECON2 movlw 0xAA movwf EECON2 bsf EECON1,WR ; bsf INTCON,GIE bcf EECON1,WREN ; btfsc EECON1,WR goto $-1 return ;;---------------------------------------------------------------- pic_set: banksel INTCON bsf INTCON,GIE bsf INTCON,PEIE
發表於: 2006/12/13 12:20
|
|||
|