stc12c5a60s2 eeprom程序

发布者:zhihua最新更新时间:2024-01-17 来源: elecfans关键字:stc12c5a60s2  机器周期 手机看文章 扫描二维码
随时随地手机看文章

  TC12C5A60S2/AD/PWM系列单片机是单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。


  #include “reg51.h”

  #include “intrins.h”

  #define CMD_IDLE 0

  #define CMD_READ 1

  #define CMD_PROGRAM 2

  #define CMD_ERASE 3

  //#define ENABLE_IAP 0x80 //if SYSCLK《30MHz

  //#define ENABLE_IAP 0x81 //if SYSCLK《24MHz

  #define ENABLE_IAP 0x82 //if SYSCLK《20MHz //

  #define ENABLE_IAP 0x83 //if SYSCLK《12MHz //

  #define ENABLE_IAP 0x84 //if SYSCLK《6MHz //

  #define ENABLE_IAP 0x85 //if SYSCLK《3MHz //

  #define ENABLE_IAP 0x86 //if SYSCLK《2MHz //

  #define ENABLE_IAP 0x87 //if SYSCLK《1MHz

  #define IAP_ADDRESS 0x0000

  typedef unsigned char BYTE;

  typedef unsigned int WORD;

  sfr IAP_DATA = 0xC2;

  sfr IAP_ADDRH = 0xC3;

  sfr IAP_ADDRL = 0xC4;

  sfr IAP_CMD = 0xC5;

  sfr IAP_TRIG = 0xC6;

  sfr IAP_CONTR = 0xC7;

  void Delay(BYTE n);

  void IapIdle();

  void IapWriteByte(WORD addr, BYTE dat);

  void IapEraseSector(WORD addr);

  BYTE IapReadByte(WORD addr);

  void main()

  {

  WORD i;

  P1 = 0xfe;

  Delay(10);

  IapEraseSector(IAP_ADDRESS);

  for (i=0; i《512; i++)

  {

  if (IapReadByte(IAP_ADDRESS+i) != 0xff)

  goto Error;

  }

  P1 = 0xfc;

  Delay(10);

  for (i=0; i《512; i++)

  {

  IapWriteByte(IAP_ADDRESS+i, (BYTE)i);

  }

  P1 = 0xf8;

  Delay(10);

  for (i=0; i《512; i++)

  {

  if (IapReadByte(IAP_ADDRESS+i) != (BYTE)i)

  goto Error;

  }

  P1 = 0xf0;

  while (1);

  Error:

  P1 &= 0x7 f;

  while (1);

  }

  void Delay(BYTE n)

  {

  WORD x; while (n--)

  {

  x = 0;

  while (++x);

  }

  }

  void IapIdle() //退出IAP功能

  {

  IAP_CONTR = 0;

  IAP_CMD = 0;

  IAP_TRIG = 0;

  IAP_ADDRH = 0x80;

  IAP_ADDRL = 0;

  }

  BYTE IapReadByte(WORD addr) //读EEPROM

  {

  BYTE dat;

  IAP_CONTR = ENABLE_IAP;

  IAP_CMD = CMD_READ;

  IAP_ADDRL = addr;

  IAP_ADDRH = addr 》》 8;

  IAP_TRIG = 0x5a;

  IAP_TRIG = 0xa5;

  _nop_();

  dat = IAP_DATA;

  IapIdle();

  return dat;

  }

  void IapWriteByte(WORD addr, BYTE dat) //写EEPROM

  {

  IAP_CONTR = ENABLE_IAP;

  IAP_CMD = CMD_PROGRAM;

  IAP_ADDRL = addr;

  IAP_ADDRH = addr 》》 8;

  IAP_DATA = dat;

  IAP_TRIG = 0x5a;

  IAP_TRIG = 0xa5;

  _nop_();

  IapIdle();

  }

  void IapEraseSector(WORD addr) // 擦除EEPROM扇区

  {

  IAP_CONTR = ENABLE_IAP;

  IAP_CMD = CMD_ERASE;

  IAP_ADDRL = addr;

  IAP_ADDRH = addr 》》 8;

  IAP_TRIG = 0x5a;

  IAP_TRIG = 0xa5;

  _nop_();

  IapIdle();

  }


关键字:stc12c5a60s2  机器周期 引用地址:stc12c5a60s2 eeprom程序

上一篇:stc12c5a60s2晶振频率如何计算
下一篇:在DS80C400应用中使用SDCC编译器

推荐阅读最新更新时间:2024-11-07 14:32

C8051F单片机读写串行EEPROM程序
//C8051F单片机读写串行EEPROM程序,查询方式 //------------------------------------------------------------------------------ // Keil Software, Inc. // // Project: Cygnal 8051F000 I2C Example Program // // Filename: Cygnal_I2C_Example_Program.c // Version: 1.0.0 // Description: This file contains example code that will communicate
[单片机]
基于FPGA和MCU的CAN-VME总线转换设计
为了扩展VME总线和CAN总线的应用范围,充分利用两种总线的不同传输特点,采用了模块设计方法,提出一种基于FPGA和MCU的总线转换方案。该方案给出了FPGA与上位VME总线部分的VME总线接口设计,利用MCU控制CPLD扩展的多通道CAN节点完成CAN总线部分的设计,还给出软件实现上的重点、难点和流程。实现了两种不同总线的转换,满足了工业环境对两种总线混合使用的要求。 CAN(Controller Area Network控制器局域网)以其高性能、高可靠性以及独特的设计等优点,为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的支持。CAN总线突出的可靠性、实时性和灵活性显示了它突出的优势,成为公认的最有前途的总线
[单片机]
基于FPGA和MCU的CAN-VME总线转换设计
stc12c5a60s2独立波特率器-串口
//11.0592M #include reg51.h char flag; sfr AUXR= 0x8E;//辅助寄存器第4位是独立波特率运行控制位,第0位是0则串口1用定时器1作波特率发生器,是1则用独立波特率发生器做 sfr BRT = 0x9C;//独立波特率发生器寄存器,装初值.0xfd是9600; sbit kg=P1^4; unsigned char temp; void main() { kg=0; AUXR=0x11;//独立波特率发生运行,使用独立波特率为串口1的波特率发生器 BRT=0xFD;//重载值11059200,12T重装值是0xfd; SM0=0; SM1=1; REN=1; flag=0; whi
[单片机]
机器人产业的“升级周期”,“中国制造”如何奋起直追?
文|智能相对论 作者|kinki 在前不久结束的北京冬奥会上,我们见识了以无人机、机器人、激光等硬核科技元素打造的开幕式表演;也有在竞赛场馆内轮番登场的物流机器人、引导机器人、送餐机器人等。 国内机器人产业虽然起步较晚,但近年来正在飞速发展,其整个发展轨迹与当下芯片、汽车制造行业也有些类似,均是在落后于欧日美的基础上,从近20年开始奋起直追。 从“十三五”到“十四五”规划,都提到了要加强机器人产业核心技术的攻关,补齐短板,推动产品高端化智能化发展等关键内容,可以预见国产机器人产业有机会迎来升级换代的窗口期。 纵观全球的机器人产业,随着智能化的发展以及全球工业化进程的加快,行业也到了需要重新整合变革的关口,这样的背景对国内机器人产业
[机器人]
<font color='red'>机器</font>人产业的“升级<font color='red'>周期</font>”,“中国制造”如何奋起直追?
STC12C5A60S2内部PWM模块程序
/********************************************************************************************* 程序名:    编写人:   编写时间:  20 年 月 日 硬件支持:   接口说明:   修改日志:     NO.1- /********************************************************************************************* 说明: 单片机的PCA_PWM使用,60S2只有两个PWM输出,分别是1.3和1.4,也可以通过AUXR设置到P4口。
[单片机]
单片机的机器周期计算
单片机的机器周期计算这么个最简单的问题,总是忘记,现在干脆给记下来,以后再忘记的话就看一看好了。 1、时钟周期 时钟周期T又称为状态周期,是时序中最小的时间单位。具体计算就是1/fosc。也就是说如果晶振为1MHz,那么时钟周期就为1us;6MHz的话,就是1/6us。 2、机器周期 机器周期定义为实现特定功能所需的时间,或完成某一规定操作所需的时间,通常由若干时钟周期构成。具体计算为:时钟周期 X cycles。如果单片机是12周期的话,那么机器周期就是T×12。假设晶振频率为12M,单片机为12周期的话,那么机器周期就是1us。 3、指令周期 置零周期是时序中的最大时间单位,定义为执行一条指令所需的时间。通常,包含
[单片机]
基于STC12C5A60S2的U盘音频播放器设计
    U盘即闪存盘,是一种用闪存进行数据存储的介质,通常使用USB插头。U盘体积极小、重量轻、可热插拔也可以重复写入。自其面世后,迅速普及并取代传统的软盘,成为主要的便携存储模式。随着U盘体积的不断减小、存储容量却不断加大,使得U盘的使用范围也不断拓展。然而U盘所储存的数据,现今仍大多通过计算机提取并进行处理,这也局限了U盘的发展范围。     笔者认为,针对某一特定功能,剥离相应数据对计算机的依赖性,一方面可充分利用U盘数据,另一方面也发挥出USB协议的通用性,使U盘实现所用即所得的便携特性。基于此,设计了U盘MP3播放器电路,主要完成U盘存储的音频文件的数据提取及功能运行任务。该播放器等同于个人计算机的音频处理模块,不仅可识别
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved