- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STC60S2内部EEPROM程序
/************************************************
程序 名:MAIN.C
程序功能:利用STC12C5A08AD单片机内部EEPROM存储数据
完成时间: 2009年8月13日
硬件信息:STC12C5A08AD有8K EEPROM,起始地址0000H~1FFFH,分16个扇区
调试环境:keil 3.0
/************************************************/
#includereg52.h
#includeSTC12ROM.h
#define uchar unsigned char
#define uint unsigned int
sbit k1 = P3^4;
sbit k2 = P3^5;
sbit k3 = P3^6;
sbit dula=P2^6;
sbit wela=P2^7;
unsigned int i;
unsigned int num=12345;
uchar tab[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x58,0x5E,0x79,0x71,0x74};
/**********************************
主程序,采集P1.0通道的电压
**********************************/
void display(uchar num) //数码管段选
{
dula=1;
P0=num;
dula=0;
}
void delay() //误差 0us
{
unsigned char a,b,c;
for(c=167;c0;c--)
for(b=171;b0;b--)
for(a=16;a0;a--);
}
void InitUART(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
TR1 = 1;
}
void main()
{
wela=1; //数码管位选
P0=0xfe;
wela=0;
InitUART();
while(1)
{
for(i=0;i2;i++)
{
Erase_Sector(STC_FLASH_ADDR+i*256);
}
for(i=0;i0x03ff;i++)
{
write_Byte(STC_FLASH_ADDR+i,tab[i%256]);
}
for(i=0;i0x03ff;i++)
{
uchar p;
p=read_Byte(STC_FLASH_ADDR+i);
display(p);
SBUF=p;
while(!TI);
TI=0;
delay();
}
}
}
/***********************************************************
文件 名:STCROM.c
文件功能:使用STC单片机内部FLASH EEPROM
硬件信息:STC12C5A08AD有8K EEPROM,
起始地址:0000H~1FFFH,分16个扇区
读写特点:随时可读,修改前要擦除,擦除则需要擦除整个扇区,
先读出这个扇区的所有数据,擦除后,再写入新的数据。
建议同一次修改的数据放在一个扇区。
擦除速度:晶振为40MHz、20MHz、10MHz、5MHz,分别为0、1、2、3
***********************************************************/
#includereg52.h
sfr ISP_DATA = 0xC2; /* FLASH EEPROM 数据寄存器 */
sfr ISP_ADDRH = 0xC3; /* FLASH EEPROM 地址高字节寄存器 */
sfr ISP_ADDRL = 0xC4; /* FLASH EEPROM 地址低字节寄存器 */
sfr ISP_CMD = 0xC5; /* FLASH EEPROM 命令寄存器 */
sfr ISP_TRIG
文档评论(0)