/****************************************** ******PIC16F877A 内部EEPROM读写实验******* Author:hnrain Date:2010-12-26 Version:V0.1 Email:hnrain1004@gmail.com Forum:http://bbs.cepark.com _______________________________ 实验现象:先给内部EEPROM的0~7字节写数据1~8,再读出第0字节的 内容,并判断读出来的数据是不是1,如果是1则点亮RD0口的LED。 重点内容: 在我们的PIC.h中,给我们提供了两个函数操作内部的EEPROM. 两个函数为: unsigned char eeprom_read(unsigned char addr); void eeprom_write(unsigned char addr, unsigned char value); *******************************************/ #include <pic.h> __CONFIG(HS&WDTDIS&LVPDIS&PWRTEN); //HS振荡,禁止看门狗,低压编程关闭,启动延时定时器 unsigned char eeprom_read(unsigned char addr); void eeprom_write(unsigned char addr, unsigned char value); unsigned char cydata; void main(void) { unsigned char k; PORTD = 0xff; TRISD = 0x00; for(k = 0; k < 7; k++) { eeprom_write(k,k+1); } while(1) { do{} while(WR == 1);//等待写完成 cydata = eeprom_read(0); if(cydata == 1) { RD0 = 0; } } }