📄 pic_eeprom.c
字号:
/*
void main(void)
{
unsigned char tempi = 0;
for (tempi = 0; tempi < 5000; tempi ++);
while (1){
}
}
*/
/* PIC12F675 是比较有特色的单片机,8脚封装,短小精干。自带ad和eeprom,性价比高。下面就是12f675的eeprom的C代码
用的是 mplab+picc 内部4M晶振 看门狗使能 具体的说明见程序注释。适合初学者入门。
*/
//软件延时方式来实现1S定时
//在烧程序的时候 将IC-Prog 软件环境的右侧
//熔丝下面的 WDT 前面的勾选上 其它的勾不要使其消失
//振荡器选择 intOSC GP4
//剩下的默认即可
//E2PROM读写实验 开机3秒后led0亮就说明读写正常
//选用内部晶振 4M
//引用头文件
#include "Includes.h"
//符号变量替换
#define u8 unsigned char
#define u16 unsigned int
#define led GPIO0
//用c语言嵌套汇编来实现 “喂狗”
#define clrwdt() asm("CLRWDT")
//#define nop() asm("NOP")
u8 led_flag=0x03; //初始时 为0x03
void init(void)
{
CMCON=0X07;//比较器关闭
ANSEL=0X00;//设GP0到GP3都为数字IO口
OPTION=0X80;//禁止GPIO上拉
TRISIO0=0;//GP0口设为输出
led=1; //初始时让小灯灭
}
void yanshi(void) //延时子函数
{
u8 i;
u16 j;
for(j=60635;j>0;j--)
{
for(i=10;i>0;i--)
{
clrwdt();
}
}
}
void write(u8 addr,u8 data) //写E2
{
EEDATA=data;
EEADR=addr;
WREN=1;
EECON2=0X55;
EECON2=0XAA;
WR=1;
while(EEIF==0)
{
;
}
EEIF=0;
WREN=0;
}
u8 read(u8 addr) //读E2
{
EEADR=addr;
RD=1;
while(RD==1)
{
;
}
return EEDATA;
}
void maintest(void)
{
init();//初始化
yanshi();//3秒秒延时
write(0x01,0x55);//写
nop();
nop();
nop();
led_flag=read(0x01);//读
if(led_flag==0X55)//判断是否 写 读 成功
{
led=0;
}
else
{
led=1;
}
while(1) //任务结束,等待......
{
clrwdt();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -