给初学者,stc12xx单片机内部eeprom例程解释

给初学者,stc12xx单片机内部eeprom例程解释

ID:20442042

大小:39.00 KB

页数:6页

时间:2018-10-12

给初学者,stc12xx单片机内部eeprom例程解释_第1页
给初学者,stc12xx单片机内部eeprom例程解释_第2页
给初学者,stc12xx单片机内部eeprom例程解释_第3页
给初学者,stc12xx单片机内部eeprom例程解释_第4页
给初学者,stc12xx单片机内部eeprom例程解释_第5页
资源描述:

《给初学者,stc12xx单片机内部eeprom例程解释》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、STC12C5A的eeprom只能按扇区擦除并且只有擦过的才能写数据,很麻烦但是存储一些较大的数组还是很有用的。这是一个示例程序,但是其中使用的部分语句对新手们来说并不常见,我试着解释一下,其中不常见的语句也可以替换,除倾斜字体部分,其余均来自网络。下一篇放上替换过的程序。/*---STCInternationalLimited----------------一个完整的EEPROM测试程序,用宏晶的下载板可以直接测试STC12C5AxxAD系列单片机EEPROM/IAP功能测试程序演示STC12C52xxAD系列单片机EEPROM/IAP功能测试程序演示STC11xx系列单

2、片机EEPROM/IAP功能测试程序演示STC10xx系列单片机EEPROM/IAP功能测试程序演示---STCInternationalLimited---------------------宏晶科技设计2009/1/12V1.0-----------------Mobile:13922805190---------------------------Fax:0755-82944243----------------------------Tel:0755-82948412----------------------------Web:www.MCU-Memory.com

3、--------------------本演示程序在STC-ISPVer3.0A.PCB的下载编程工具上测试通过,EEPROM的数据在P1口上显示,如果要在程序中使用或在文章中引用该程序,请在程序中或文章中注明使用了宏晶科技的资料及程序*/#include#includetypedefunsignedcharINT8U;//替换为#defineucharunsignedchartypedefunsignedint  INT16U;//替换为#defineuintunsignedintsfrIAP_DATA   =0xC2;sfrIAP

4、_ADDRH  =0xC3;sfrIAP_ADDRL  =0xC4;sfrIAP_CMD    =0xC5;sfrIAP_TRIG   =0xC6;sfrIAP_CONTR  =0xC7;//使用内部EEPROM时需要用到的寄存器,宏晶的头文件也有定义//定义Flash操作等待时间及允许IAP/ISP/EEPROM操作的常数//#defineENABLE_ISP0x80//系统工作时钟<30MHz时,对IAP_CONTR寄存器设置此值//#defineENABLE_ISP0x81//系统工作时钟<24MHz时,对IAP_CONTR寄存器设置此值#defineENABLE_I

5、SP0x82//系统工作时钟<20MHz时,对IAP_CONTR寄存器设置此值//我用的11.0592晶振,按照<20MHz设置,没问题//#defineENABLE_ISP0x83//系统工作时钟<12MHz时,对IAP_CONTR寄存器设置此值//#defineENABLE_ISP0x84//系统工作时钟<6MHz时,对IAP_CONTR寄存器设置此值//#defineENABLE_ISP0x85//系统工作时钟<3MHz时,对IAP_CONTR寄存器设置此值//#defineENABLE_ISP0x86//系统工作时钟<2MHz时,对IAP_CONTR寄存器设置此值/

6、/#defineENABLE_ISP0x87//系统工作时钟<1MHz时,对IAP_CONTR寄存器设置此值#defineDEBUG_DATA0x5A//本测试程序最终存储在EEPROM单元的数值#defineDATA_FLASH_START_ADDRESS0x00//STC5Axx系列EEPROM测试起始地址unionunion_temp16{   INT16Uun_temp16;   INT8Uun_temp8[2];}my_unTemp16;//为了分离出EEPROM16位地址的高位和低位,用除法和求余运算也能实现这个目的/*union共用体名{  数据类型成员名; 

7、 数据类型成员名;  ...  }变量名;//公用体,百度一下,你就知道。*/INT8UByte_Read(INT16Uadd);             //读一字节,调用前需打开IAP功能voidByte_Program(INT16Uadd,INT8Uch);//字节编程,调用前需打开IAP功能voidSector_Erase(INT16Uadd);           //擦除扇区voidIAP_Disable();                      //关闭IAP功能voidDelay();//函数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。