接下来是向EEPROM中写入数据。我们定义了一个函数WriteEEPROM,该函数接受两个参数:要写入的数据和目标地址。在该函数中,我们首先清空EEIF标志位,然后设置EEADR寄存器为指定地址,设置EEDATA寄存器为要写入的数据,并通过设置EEPGD寄存器选择EEPROM作为数据存储器。接下来,我们使用一个循环来多次执行写入操作...
PIC16F886系列单片机的SRAM是368字节,EEPROM是256字节。通过对4个寄存器进行操作就可以实现EEPROM的操作。 以下是对EEPROM的读和写程序代码: voidEEPROMwrite(ucharEEAddr,ucharCmd) { EEADR=EEAddr;//EEPROM的地址 EEDATA=Cmd;//EEPROM的写数据 EEPGD=0; //CFGS=0;//PIC18F中要用到 GIE=0; WREN=1...
void write_eeprom ( void ){ // while ( WR ) //等待上一次写操作结束 // { // asm (...
eeprom_writeunsigned char addr, unsigned char value); extern unsignedchareeprom_read(unsigned char addr) #endif// end EEPROM routines 看到这里就知道了。 然后在程序中用的可以直接调用: EEPROM_WRITE(addr, value);写(地址,值 EEPROM_READ(addr);读(地址) 也可以参考这个来自己程序。 ©...
EEADR=EE_Addr; //给地址 EEPGD=0; // RD=1; //开始读 return EEDATA; //直接返回读取的EEPROM } 将一个字节的数据写入指定地址里:bool WriteEEPROM(uchar EE_data,uchar EE_addr){ uchar j=0;//多次执行 EEIF=0; //clear flag EEADR=EE_addr; //set address E...
就写:eeprom_write(0x55,0x10);同理,如果想读取0x55地址处的值,就写:ee_value = eeprom_read(0x55);如果编译时编译器提示找不到eeprom_routines.h,可以在 X:\Program Files\HI-TECH Software\PICC\9.81\include 目录下找,然后复制到自己项目文件夹下。对了,我用的是MPLab IDE,编译器...
I2CWRITE CALL I2CSTART BTFSS BUSSTA,BUS_BUSY GOTO TX_FAIL BCF BUSCON,SLAVE_RW CALL TX_SLAVE_ADDR BTFSS BUSSTA,TX_SUCCESS ;SUCESSFULL? GOTO TX_FAIL CALL TX_DATA_ADDR BTFSS BUSSTA,TX_SUCCESS GOTO TX_FAIL MOVLW I2CBUF MOVWF FSR MOVLW 07 MOVWF COUNT T_BYTE_LOOP MOVF INDF,W MOVWF TXBUF...
decfsz WRC_ ;all write,to read_ goto wri_ read_ ;读子程序 bcf STATUS,RP1 bcf STATUS,RP0 ;bank0 decf ADDR ;next value bsf STATUS,RP1 ;bank2 movwf EEADR bsf STATUS,RP0 ;bank3 EEw&r.asm程序说明: 1、 本程序是对PIC16F877单片机的EEPROM数据区进行读写的演示程序; ...
GOTO WRITE ;否!继续写后面单元 READ1 DECF ADDR,F ;地址递减 BCF STATUS,RP0 ;选体2为当前体 BSF STATUS,RP1 ; MOVF ADDR,W ;取地址 MOVWF EEADR ;送地址寄存器 BSF STATUS,RP0 ;选体3为当前体 BCF EECON1,EEPGD ;选定EEPROM为访问对象
WRITE_EE BSF CS ;片选使能 MOVLW B‘00000001’ ;发送起始位 ; MOVLW CALL SPI_COMM ;发送 MOVLW B‘00110000’ ;写使能命令代码 CALL SPI_COMM ;发送 BCF CS ;片选禁止 NOP NOP ;延时一定时间;***写数据*** ;入口参数:EE_ADDR,EE_DATA,EE_DATA2 ;出口参数:无 ;*** BSF CS ;片选...