/******************************************
******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;
}
}
}
|