基于X5045的看门狗电路及51读写x5045存储器的程序

发布者:清晨微风最新更新时间:2012-08-08 来源: 21ic 关键字:X5045  看门狗  存储器 手机看文章 扫描二维码
随时随地手机看文章

X5045是一种集看门狗、电压监控和串行EEPROM 三种功能于一身的可编程控制电路.特别适合应用在需要少量存储器,并对电路板空间需求较高场合,

X5045具有电压监控功能,可以保护系统免受低电压的影响,当电源电压降到允许范围(4.2V)以下时,系统将复位,直到电源电压返回到稳定值为止。X5045的存储器与CPU 通过串行通信方式接口(SPI),可以存放512个字节数据.可擦写100万次,数据可保存100年.

下图是X5045与具有手动复位的8051微控制器的连接

注意:图上的芯片写着是X5043,实际上这是X5045的接法

下边是51读写x5045存储器的程序

//x5045和51的连接方法
sbit CS = P1^0;
sbit SO = P1^3;
sbit SI = P1^1;
sbit SCK = P1^2;
//定义寄存器指令
#define WREN 0x06 // 写入使能指令(WREN)
#define WRDI 0x04 // 写入禁止指令(WRDI)
#define WRSR 0x01 // 写入状态寄存器指令(WRSR)
#define RDSR 0x05 // 读取状态寄存器指令(RDSR)
#define WRITE 0x02 // 写入存储器指令(WRITE)
#define READ 0x03 // 读取存储器指令(READ)
                      
#define STATUS_REG 0x00 // 要写入到状态寄存器的值
#define MAX_POLL 0x99 // 最在查询次数m number of


void outbyte(unsigned char write_data)
{
     unsigned char i;
      for(i = 0; i < 8; i++)
      {
      SCK = 0;
      SI = (bit)(write_data & 0x80); //传送一个位到SI
      write_data <<= 1;
     SCK = 1;
      }
      SI = 0;
}
unsigned char inbyte()
{
      unsigned char i;
      unsigned char read_data=0;

for(i = 0; i < 8; i++)
      {
         SCK = 0;
         read_data <<= 1;
         SCK = 1;
         read_data |= (unsigned char)SO;
      }
      return read_data;
}[page]

void wren_cmd()
{

      CS = 0;          
      outbyt(WREN); // 传送写入使能指令
      CS = 1;
}            

void wrdi_cmd()
{
     CS = 0;          
     outbyt(WRDI); // 传送写入禁止指令
     CS = 1;
}

unsigned char rdsr_cmd()
{
       unsigned char status;
       CS = 0;   
       outbyt(RDSR); // 传送状态寄存器读取指令
       status = inbyt(); // 读取状态寄存
       CS = 1;
       return status;
}
void wip_poll()
{
   unsigned char i; // 设置最大的查询次数

//// 如果WIP位为\'1\'并且未达到最大查询次数, 则继续查询
//// 如果WIP位为\'0\', 则写入周期完成, 返回
   for(i = 0; i < MAX_POLL; i++)
   {
      if(rdsr_cmd() & 0x01) // 读取状态寄存器
      {
        continue;
      }
      return;
    }
}

void wrsr_cmd()
{
      CS = 0;
      outbyt(WRSR); // 传送状态寄存器写入指令
      outbyt(STATUS_REG); // 传送要写入的数据
      CS = 1;
     wip_poll(); // 检测写入进度
}

void byte_write(unsigned int addr,unsigned char dat)
{
      wren_cmd();
     CS = 0;
      if(addr & 0x100)
          outbyt(WRITE | 0x08); //传送写入指令和地址最高位"1"
      else
           outbyt(WRITE); // 传送写入指令和地址最高位"0"
     outbyt(addr); // 传送地址低字节     
      outbyt(dat); // 传送数据字节  

CS = 1;
       wip_poll(); // 检测写入进度
}
unsigned char byte_read(unsigned int addr)
{
       unsigned char read_data;
        CS = 0;  
       if(addr & 0x100)
            outbyt(READ | 0x08);// 传送读取指令和地址最高位"1"
        else    
          outbyt(READ); // 传送读取指令和地址最高位"0"
       

outbyt(addr); // 传送地址低字节

read_data = inbyt(); // 读取字节
       CS = 1;
        return read_data;
}
void rst_wdog()
{
    CS = 0;
    _nop_();_nop_();
    CS = 1;
}
void init_serialcomm(void)
{   TMOD = 0x21;   // 定时器1工作于8位自动重载模式, 用于产生波特率
          // 定时器0工作于16位模式, 用于定时

TH1 = 0xFD;    // 波特率9600
      TL1 = 0xFD;
       SCON = 0x50;   // 设定串行口工作方式
       PCON &= 0xef;   // 波特率不倍增
       TR1 = 1;    // 启动定时器1
}

[page]

void send_char_com(unsigned char ch)
{ //向串口发送一个字符
   SBUF=ch;
   while(!TI);
   TI=0;
}

 

 

void main(void)
{
         unsigned char Temp,tdat;                  

init_serialcomm();
       while(1)
      {
           //这里演示读出和写入 EEPROM   

   for (Temp=0; Temp<250; Temp++)   byte_write(Temp,Temp);
         delay(200);

   for (Temp=0; Temp<250; Temp++)

{ tdat= byte_read(Temp); send_char_com(tdat);}

}

关键字:X5045  看门狗  存储器 引用地址:基于X5045的看门狗电路及51读写x5045存储器的程序

上一篇:基于SOPC的M8051嵌入式调试器设计
下一篇:单片机最小系统组成与I/O输出控制

推荐阅读最新更新时间:2024-03-16 13:05

M8051 IP软核的改进性设计及其在视频字符叠加器中的重应用
摘要:介绍了系统芯片SOC的概念和M8051 IP软核的原理,给出了视频字符叠加器VAD——SOC中M8051 IP软核的作用,详细介绍了I2C主控制器模块的设计,给出了功能信真波形,最后对M8051 IP软核在视频字符叠加器中的重应用进行了深入研究。 关键词:系统芯片 微控制器 M8051 IP软核 视频字符叠加器 随着集成电路制造技术的快速发展,集成电路的规模不断扩大。这使得将复杂系统集成在单个芯片上成为可能,于是便出现了系统芯片SOC(System on a Chip)。传统芯片设计方法关注的是如何创建一个全新的设计并进行有效的验证;如今在SOC设计中,基于IP模块的功能组装正在逐渐替代传统的功能设计而成为主流设计方法。
[手机便携]
英特尔存储器:热数据推“傲腾”,温数据有“Ruler”
  “中国闪存市场峰会CFMS2017”上, 英特尔 中国区非易失 存储器 事业部总经理刘钢先生介绍了 英特尔 最新的存储技术,包括用于热数据的傲腾和用于温数据的3D NAND “Ruler”。下面就随网络通信小编一起来了解一下相关内容吧。   据悉,大数据、海量集成的数据在各个领域涌现,并希望能够尽快处理,为此需要对海量的数据要进行分层,即热数据、温数据、冷数据。    热数据——基于3D Xpoint材料的“傲腾”    英特尔 展示了不同于flash的一种非易失 存储器 材料——3D Xpoint。基于3D Xpoint的产品是“傲腾(Optane)”,目前在消费类市场有16G和32G两种。优势是使整个存储(固态盘+硬盘
[网络通信]
8051存储器总结经典
8051单片机有4个存储空间: 1.内部数据存储器(片内RAM) 共128字节,字节地址范围为00H~7FH。 前32个字节00H~1FH为寄存器区,每8个寄存器形成一个寄存器组,共4个寄存器组。 之后的16个字节20H~2FH,共128位,为位地址区,位地址范围为00H~7FH。 最后的80个字节30H~7FH,为通用RAM区。 具体分布如下图所示: 寄存器0组 00H~07H 寄存器1组 08H~0FH 寄存器2组 10H~17H 寄存器3组 18H~1FH 位地址区 20H~2FH 通用RAM区 30H~7FH 2.特殊功能寄存器(片内RAM) 共21字节,分布于80H~FFH中,仅有21个有效的字节地址。 有11个
[单片机]
什么是工控机IPC?有什么优势?
方案需求 工控机IPC是指工业PC,用于制造业生产商品和服务,具有外形之间上网机和服务器架构。工业PC具有更高的可靠性和精度标准,并且通常比消费电子产品更昂贵。它们通常使用复杂的指令集,例如x86架构,或者使用精简指令集。可安装安卓/微软/linux等系统。实现对工业制造机械设备的控制需要,工控机仅用作分布式处理环境中另一个控制计算机的前端。外接或扩展的硬件和数字I/O卡使工控机成为此时工厂应用中功能最强大且易于使用的控制器之一。在可靠性,兼容性,扩展选项和长期供应方面提供与家用办公PC不同的功能。根据应用程序的要求,安装扩展卡以提供模拟和数字I/O,特定机器接口,扩展通信端口等。工控机一般使用流水线及独立器械设备内部安装,不方便
[嵌入式]
什么是工控机IPC?有什么优势?
看门狗”电路特性
  “看门狗”有如下特性:      (1)本身能独立工作,不依赖CPU。(2)CPU在一个固定的时间间隔中和“看门狗”系统打一次交道,以表示“系统正常”。 (3)当CPU掉入死循环后,能及时发现,并使系统复位。      在增强型51系列单片机中,片内已有“看门狗”,使用起来很方便。普通型单片机(如89C2051)中,没有看门狗,必须由用户建立。      “看门狗”,硬件实际上就是定时器,通常可用自带脉冲源的计数器构成,亦可用单稳电路构成。 CPU正常工作时,每隔一段时间就输出一个脉冲,触发单稳电路,只要暂稳态持续时间比CPU的触发周期长,单稳态系统就不能回到稳态。 CPU陷入死循环后,再也不去触发单稳系统,便返回稳态,利用返
[单片机]
单片机系统Flash存储器在系统编程设计
随着排放法规的加严,发动机电子控制单元(ECU)成为了现代汽车中一个必备部分。在发动机控制单元这种单片机系统中,Flash存储器已成为其一个基本配置,主要用来存放控制程序代码。 将程序代码装入Flash存储器的方法有3种:第1种方法是要求供应商在存储器发货前将数据写入,但无法满足产品开发阶段修改程序的要求;第2种方法是使用编程器编程,但由于Flash存储器正在向小型化、贴片式发展,从而使Flash存储器难以利用编程器编程;第3种方法是将存储器安装到电路板上进行编程,即在系统编程(In System Programming,ISP),这种编程方式是通过系统的微处理器实现对Flash存储器的编程,不需要其他编程设备和附加编程电源,具
[单片机]
单片机系统Flash<font color='red'>存储器</font>在系统编程设计
8051单片机实战分析(以STC89C52RC为例) | 09 - LED点阵显示数字
1 LED点阵 LED 点阵是由发光二极管排列组成的显示器件,在我们日常生活的电器中随处可见,被广泛应用于汽车报站器,广告屏等。 通常应用较多的是 8* 8 点阵,然后使用多个 8 * 8 点阵可组成不同分辨率的 LED点阵显示屏,比如 16* 16 点阵可以使用 4 个 8* 8 点阵构成。因此理解了 8* 8LED点阵的工作原理,其他分辨率的 LED 点阵显示屏都是一样的。这里以 8* 8LED 点阵来做介绍。 工作原理: 8* 8 点阵共由 64 个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置 1 电平(行所接的是二极管的阳极,所以为高电平),某一列置 0 电平(列所接的是二极管的阴
[单片机]
<font color='red'>8051</font>单片机实战分析(以STC89C52RC为例) | 09 - LED点阵显示数字
基于C8051F系列单片机的低功耗设计
引言   在控制终端系统设计中,当系统要求整体功耗偏低时,C8051系列单片机是一个最佳的选择,它们拥有灵活的时钟硬件,使系统能够方便地在高效运作模式与低功耗模式间进行转换,智能的电源管理模式能够在正常工作及待机状态自由切换,从而降低整个系统的能量损耗,当工作频率低于10kHz时,时钟丢失检测器(MCD)能够引发系统产生复位,确保系统工作的安全可靠。 1 C8051F各部分组件的功耗   当一个系统对功耗要求严格时,可以在硬件电路建立前首先粗略计算一下整个系统所需的功耗,由于C8051F系列单片机为数模混合SOC系统,能够实现整个设计的大部分功能,因此整个设计系统的功耗将主要集中在C8015F系列单片机的能量消耗上。   整
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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