历史上的今天
返回首页

历史上的今天

今天是:2025年03月12日(星期三)

正在发生

2018年03月12日 | X5045组成的看门狗电路及51读写x5045存储器的程序

2018-03-12 来源:eefocus

      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;
}

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
}

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);}

}


推荐阅读

史海拾趣

ABCO公司的发展小趣事

ABCO公司深知产品质量是企业生存的根本。因此,公司建立了一套严格的质量管理体系,从原材料采购到产品生产、检测、出厂等各个环节都进行严格把控。同时,公司还注重持续改进,不断优化生产流程,提高生产效率,确保产品质量始终保持在行业前列。

智浦欣(Chipstar)公司的发展小趣事

随着技术的不断进步和市场需求的日益增长,智浦欣公司意识到,只有不断创新和突破,才能在激烈的市场竞争中立于不败之地。于是,公司加大了对研发团队的投入,引进了一批国内外顶尖的模拟器件和混合信号设计人才。经过数月的努力,团队成功研发出了一款具有高性价比的WLED驱动器产品,该产品以其卓越的性能和稳定的质量赢得了客户的广泛好评。随后,公司又相继推出了多款具有竞争力的新产品,进一步巩固了其在消费类电子市场的地位。

千志电子(CCO)公司的发展小趣事

为了进一步拓展业务版图,千志电子开始进军国际市场。2006年,千志电子在香港设立了千志电子(香港)有限公司,将其作为国际服务据点重心之一。这一举措使千志电子能够更好地了解国际市场需求和趋势,加强与国外客户的联系和合作。同时,千志电子还积极参加国际展览和论坛,展示其优质产品和先进技术,提高了品牌知名度和国际影响力。

Force Technologies Ltd公司的发展小趣事

背景:随着业务的不断增长,Force Technologies Ltd意识到单一市场已无法满足其发展需求。于是,公司制定了明确的国际化战略,旨在将产品和技术推向全球。

发展:通过在欧洲、北美和亚洲等地设立研发中心和生产基地,Force Technologies Ltd成功构建起全球化的运营网络。同时,公司还积极参与国际展览和交流活动,不断提升品牌知名度和影响力。在国际市场的推动下,公司的销售额和市场份额均实现了快速增长。

Herrmann Kg公司的发展小趣事

随着全球市场的不断扩展,Herrmann Kg积极实施全球化发展战略。公司在德国和匈牙利设有生产厂房,并在欧洲、美洲和亚洲等多个国家设有分支机构。通过全球化布局,Herrmann Kg能够更好地服务全球客户,同时利用各地的资源和优势进行技术创新和市场拓展。这种全球化战略不仅提升了公司的市场影响力,还为其未来的持续发展奠定了坚实的基础。

请注意,以上故事是基于Herrmann Kg在超声波焊接技术领域的整体发展情况进行构想的,并非直接来源于特定事件的报道或官方声明。因此,在描述过程中可能存在一定的想象和推测成分。然而,这些故事旨在展示Herrmann Kg在电子行业及相关领域中的发展成就和趋势。

三环(CCTC)公司的发展小趣事

近年来,三环(CCTC)公司更加注重产品品质和品牌建设。公司建立了完善的质量管理体系和检测手段,确保产品质量稳定可靠。同时,公司加强了品牌宣传和推广力度,提高了品牌知名度和美誉度。通过不断提升产品品质和加强品牌建设,公司赢得了更多客户的信任和支持,实现了可持续发展。

问答坊 | AI 解惑

怎样才能学好电子技术

怎样才能学好电子技术   这个问题很大,解决这个问题是一个系统工程,首先需要时间,还要多看书和多实践。   电子技术、无线电维修技术绝不是一门容易学好、短时间内能够掌握的科学。由于这门科学所涉及的方方面面很多,各方面又相互 ...…

查看全部问答>

急求verilog lcd1602 驱动程序?

急求verilog lcd1602 驱动程序? 谢谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!…

查看全部问答>

求助:wince socket 蓝牙编程中怎样用OBEX协议封装数据

我是刚接触蓝牙开发的,最近要做一个蓝牙文件传输的应用,就是实现蓝牙设备之间的文件传输, MSDN上研究过SOCKET实现的API函数,但是不知道连接成功后发送的数据怎样才能让对方识别, 网上有人说\"这些数据必须是经过OBEX协议封装好的数据\" 请做过这 ...…

查看全部问答>

mount 不上

root@arago:/# mount /dev/mtdblock4 /mnt/aaa/ mtdblock_open ok mtdblock: read on \"filesystem\" at 0x0, size 0x200 end_request: I/O error, dev mtdblock4, sector 0 FAT: unable to read boot sector mtdblock_release nand_sync: c ...…

查看全部问答>

USART配置无论奇或偶校验只有奇校验能用有图。。。。

无校验时收发正常 看了下手册 添加校验的话 要M=1(9BIT ) PCE =  1 PS = 0/1  奇偶作为9bit里的MSB发送 都配置好了以后 用串口调试助手调试 无论怎么配置只有选odd 才能正常发送接收 囧。。。 odd.JPG (7 ...…

查看全部问答>

求助!

我安装了一个IAR Workbench for MSP430 V2.10A版本的软件,安装完成后,不能使用,问题是:当新建workspace时,就提示:xerces panic error,这个错误,确定后就退出了。 各位大侠,谁遇到过此问题,帮帮忙,解决一下,不胜感激!…

查看全部问答>

2.8寸液晶成功在MINISTM32板子上驱动成功!

先上图,看看效果   再来个液晶屏的背面图 [ 本帖最后由 jiaxinhui2011 于 2011-7-8 07:05 编辑 ]…

查看全部问答>

【视频分享】 TI OMAP 5处理器平台强大的图形能力演示

简介:通过业界知名的GL Benchmark 2.5的测试,TI OMAP 5处理器平台具有强大的图形能力,领先目前市场最领先的平板电脑12%左右,同时也领先与其它竞争对手的处理器平台。   $(\'swf_dN8\').innerHTML=AC_FL_RunContent(\'width\', \'550\', ...…

查看全部问答>

开关电源上各个电子元件的作用

你想了解开关电源上各个电子元件的作用?…

查看全部问答>