X5045组成的看门狗电路及51读写x5045存储器的程序_第1页
X5045组成的看门狗电路及51读写x5045存储器的程序_第2页
X5045组成的看门狗电路及51读写x5045存储器的程序_第3页
X5045组成的看门狗电路及51读写x5045存储器的程序_第4页
X5045组成的看门狗电路及51读写x5045存储器的程序_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、X5045组成的看门狗电路及 51读写X5045存储器的程序时间:2011-05-05 23:35:06 来源: 作者:X5045是一种集看门狗、电压监控和串行EEPROM 三种功能于一身的可编程控制电路.特别适合应用在需要少量存储器,并对电路板空间需求较高场合,当电源电压降到允许范围X5045的存储器与CPU通100万次,数据可保存100年.X5045具有电压监控功能,可以保护系统免受低电压的影响, (4.2V)以下时,系统将复位,直到电源电压返回到稳定值为止。 过串行通信方式接口 (SPI),可以存放512个字节数据可擦写下图是X5045与具有手动复位的8051微控制器的连接I IHJT

2、J11 I 1RT1h 1 |F1.2P1.3Fl AP1.5FL6P17SOCflM5ETKK1LO43写入使能指令(WREN)写入禁止指令(WRDI)写入状态寄存器指令(WRSR) 读取状态寄存器指令(RDSR)写入存储器指令(WRITE)注意:图上的芯片写着是 X5043,实际上这是 X5045的接法 下边是51读写X5045存储器的程序/X5045和51的连接方法 sbit CS = P1A0;sbit SO = P1A3;sbit SI = P1A1;sbit SCK = P1A2;/定义寄存器指令#defi ne WREN 0x06 /#defi ne WRDI 0x04 /#de

3、fi ne WRSR 0x01 /#defi ne RDSR 0x05 /#defi ne WRITE 0x02 /#defi ne READ 0x03 /读取存储器指令(READ)#defi ne STATUS_REG 0x00 /要写入到状态寄存器的值#defi ne MAX_POLL 0x99 /最在查询次数 m number ofvoid outbyte( un sig ned char write_data)un sig ned char i;for(i = 0; i 8; i+)SCK = 0;SI = (bit)(write_data & 0x80); /传送一个位到 SIwri

4、te_data = 1;SCK = 1;SI = 0;un sig ned char in byte()un sig ned char i;un sig ned char read_data=0;for(i = 0; i 8; i+)SCK = 0;read_data = 1;SCK = 1;read_data |= (un sig ned char)SO;return read_data;void wren _cmd()CS = 0;outbyt(WREN); /传送写入使能指令CS = 1;void wrdi_cmd()CS = 0;outbyt(WRDI); /传送写入禁止指令CS =

5、1;un sig ned char rdsr_cmd()un sig ned char status;CS = 0;outbyt(RDSR); / 传送状态寄存器读取指令 status = in byt(); /读取状态寄存CS = 1;return status;void wip_poll()un sig ned char i; /设置最大的查询次数Illi如果WIP位为1并且未达到最大查询次数,则继续查询 1111如果WIP位为0,则写入周期完成,返回for(i = 0; i MAX_POLL; i+)if(rdsr_cmd() & 0x01) II读取状态寄存器con ti nue;re

6、turn;void wrsr_cmd()CS = 0;outbyt(WRSR); II 传送状态寄存器写入指令 outbyt(STATUS_REG); II 传送要写入的数据 CS = 1;wip_poll(); II检测写入进度void byte_write( un sig ned int addr,u nsig ned char dat)wren _cmd();CS = 0;if(addr & 0x100)outbyt(WRITE | 0x08); II传送写入指令和地址最高位1elseoutbyt(WRITE); II传送写入指令和地址最高位0outbyt(addr); /传送地址低字节

7、outbyt(dat); / 传送数据字节CS = 1;wip_poll(); /检测写入进度un sig ned char byte_read( un sig ned int addr)un sig ned char read_data;CS = 0;if(addr & 0x100)outbyt(READ | 0x08);/传送读取指令和地址最高位1elseoutbyt(READ); /传送读取指令和地址最高位0outbyt(addr); /传送地址低字节read_data = in byt(); / 读取字节CS = 1;return read_data;void rst_wdog()CS

8、 = 0;_n op_();_ no p_();CS = 1;void ini t_serialcomm(void) TMOD = 0x21;/定时器1工作于8位自动重载模式,用于产生波特率/定时器0工作于16位模式,用于定时TH1 = 0xFD; / 波特率 9600TL1 = 0xFD;SCON = 0x50;/设定串行口工作方式PCON &= 0xef; /波特率不倍增TR1 = 1;/启动定时器1void sen d_char_com (un sig ned char ch) /向串口发送一个字符SBUF=ch;while(!TI);TI=0;void mai n(void)un sig ned char Temp,tdat;ini t_serialcomm();while(1)/这里演示读出和写入EEPROMfor (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论