概述
STC的具体什么型号。因为04和12的 要写入的CMD不一样。
我先贴个 11F04E
//目标IC: STC-11F04E
//功能: EEPROM使用
//硬件:
// P10-P12外接3个LED到正级
#include
sfr IAP_DATA = 0xC2;
// 对对DATA FLASL/EEPROM读或者写的时候 数据全暂放的地方
sfr IAP_ADDRH = 0xC3;
// 读写 地址的高8位
sfr IAP_ADDRL = 0xC4;
// 读写 地址的底8位
sfr IAP_CMD = 0xC5;
//命令模式寄存器
//0x00 待机模式
//0x01 对DATA FLASL/EEPROM 字节读
//0x02 对DATA FLASL/EEPROM 字节写
//0x03 对DATA FLASL/EEPROM 扇区搽
sfr IAP_TRIG = 0xC6;
//命令触发寄存器
sfr IAP_CONTR = 0xC7;
//IAP_CONTR.7 IPEN:读写功能允许为 1:允许 0:禁止
//IAP_CONTR.6 SWBS:。。。。。
#define uchar unsigned char
#define uint unsigned int
uchar DATA;
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
void _delay_ms(uint time)
{
uint sj;
for(;time>0;time--)
{
for(sj=115;sj>0;sj--);
}
}
void IAP_Disable()//关闭IAP
{
IAP_CONTR=0; //关闭IAP
IAP_CMD=0; //命令模式清0 可以不要
IAP_TRIG=0; // 可以不要
IAP_ADDRH=0x80; // 之向高地址 非EEPROM区域
IAP_ADDRL=0x00; // 防止误操作
}
uchar IAP_read(uchar addr) ///IAP 读 程序 //读addr地址的数据 返回
{
IAP_CONTR=0x82;//使能IAP 660个时钟的速度
IAP_CMD=0x01 ;//命令模式是扇区读
IAP_ADDRH = (uchar)(addr >> 8);
IAP_ADDRL = (uchar)(addr & 0x00ff);
EA=0;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_delay_ms(1);
EA=1;
IAP_Disable(); //关IAP
return (IAP_DATA); //读数据
}
void IAP_SectorErase(uchar addr) ///IAP 察除 程序 //察除addr地址数据
{
IAP_CONTR=0x82;//使能IAP 660个时钟的速度
IAP_CMD=0x03 ;//命令模式是扇区搽除
IAP_ADDRH = (uchar)(addr >> 8);
IAP_ADDRL = (uchar)(addr & 0x00ff);
EA=0;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_delay_ms(1);
EA=1;
IAP_Disable(); //关IAP
}
void IAP_Program(uint addr, uchar dat) ///IAP 写 程序 在addr地址 写入 dat数据
{
IAP_CONTR=0x82;//使能IAP 660个时钟的速度
IAP_CMD=0x02 ;//命令模式是扇区写
IAP_ADDRH = (uchar)(addr >> 8);
IAP_ADDRL = (uchar)(addr & 0x00ff);
IAP_DATA=dat;// 写dat数据
EA=0;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_delay_ms(1);
EA=1;
IAP_Disable(); //关IAP
}
void main()
{
IAP_SectorErase(0);///察除0地址内容
IAP_SectorErase(1);///察除0地址内容
IAP_SectorErase(2);///察除0地址内容
IAP_Program(0,0x56); //在0 1 2地址写如2个数据
IAP_Program(1,0x66);
IAP_Program(2,0x76);
if(IAP_read(0)==0x56) led3=0; //读3个数据 用LED判断数据有错误没/
if(IAP_read(1)==0x66) led2=0;
if(IAP_read(2)==0x76) led1=0;
while(1);
}
最后
以上就是开放老鼠为你收集整理的stc c语言编程,谁有STC 的 EEPROM C程序的全部内容,希望文章能够帮你解决stc c语言编程,谁有STC 的 EEPROM C程序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复