基于X5045的看門狗電路及51讀寫x5045存儲(chǔ)器的程序
X5045是一種集看門狗、電壓監(jiān)控和串行EEPROM 三種功能于一身的可編程控制電路.特別適合應(yīng)用在需要少量存儲(chǔ)器,并對電路板空間需求較高場合,
本文引用地址:http://m.butianyuan.cn/article/171073.htmX5045具有電壓監(jiān)控功能,可以保護(hù)系統(tǒng)免受低電壓的影響,當(dāng)電源電壓降到允許范圍(4.2V)以下時(shí),系統(tǒng)將復(fù)位,直到電源電壓返回到穩(wěn)定值為止。X5045的存儲(chǔ)器與CPU 通過串行通信方式接口(SPI),可以存放512個(gè)字節(jié)數(shù)據(jù).可擦寫100萬次,數(shù)據(jù)可保存100年.
下圖是X5045與具有手動(dòng)復(fù)位的8051微控制器的連接
注意:圖上的芯片寫著是X5043,實(shí)際上這是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 // 寫入狀態(tài)寄存器指令(WRSR)
#define RDSR 0x05 // 讀取狀態(tài)寄存器指令(RDSR)
#define WRITE 0x02 // 寫入存儲(chǔ)器指令(WRITE)
#define READ 0x03 // 讀取存儲(chǔ)器指令(READ)
#define STATUS_REG 0x00 // 要寫入到狀態(tài)寄存器的值
#define MAX_POLL 0x99 // 最在查詢次數(shù)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); //傳送一個(gè)位到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;
}
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
評論