X25045晶元中文資料及編程方法
X25045是美國Xicor公司的生產的標準化8腳集成電路,它將EEPROM、看門狗定時器、電壓監控三種功能組合在單個晶元之內,大大簡化了硬體設計,提高了系統的可靠性,減少了對印製電路板的空間要求,降低了成本和系統功耗,是一種理想的單片機外圍晶元。X25045引腳如圖1所示。
圖1 X25045引腳圖
其引腳功能如下。
CS:片選擇輸入;
SO:串列輸出,數據由此引腳逐位輸出;
SI:串列輸入,數據或命令由此引腳逐位寫入X25045;
SCK:串列時鐘輸入,其上升沿將數據或命令寫入,下降沿將數據輸出;
WP:防寫輸入。當它低電平時,寫操作被禁止;
Vss:地;
Vcc:電源電壓;
RESET:複位輸出。
X25045在讀寫操作之前,需要先向它發出指令,指令名及指令格式如表1所示。
表1 X25045指令及其含義
X25045看門狗電路設計及編程
採用89C51單片機和X25045組成的看門狗電路,X25045硬體連接圖如圖2所示。X25045晶元內包含有一個看門狗定時器,可通過軟體預置系統的監控時間。在看門狗定時器預置的時間內若沒有匯流排活動,則X25045將從RESET輸出一個高電平信號,經過微分電路C2、R3輸出一個正脈衝,使CPU複位。圖2電路中,CPU的複位信號共有3個:上電複位(C1、R2),人工複位(S、R1、R2)和Watchdog複位(C2、R3),通過或門綜合后加到RESET端。C2、R3的時間常數不必太大,有數百微秒即可,因為這時CPU的振蕩器已經在工作。
圖2 X25045看門狗電路硬體連接圖
看門狗定時器的預置時間是通過X25045的狀態寄存器的相應位來設定的。如表2所示,X25045狀態寄存器共有6位有含義,其中WD1、WD0和看門狗電路有關,其餘位和EEPROM的工作設置有關。
表2 X25045狀態寄存器
WD1=0,WD0=0,預置時間為1.4s。
WD1=0,WD0=1,預置時間為0.6s。
WD1=1,WD0=0,預置時間為0.2s。
WD1=1,WD0=1,禁止看門狗工作。
看門狗電路的定時時間長短可由具體應用程序的循環周期決定,通常比系統正常工作時最大循環周期的時間略長即可。編程時,可在軟體的合適地方加一條喂狗指令,使看門狗的定時時間永遠達不到預置時間,系統就不會複位而正常工作。當系統跑飛,用軟體陷阱等別的方法無法捕捉回程序時,則看門狗定時時間很快增長到預置時間,迫使系統複位。
以下是C語言編寫的看門狗程序部分。
#include reg51.h
sbit cs=P1^2;/*片選信號由P1.2產生*/
sbit sck=P1^3; /*時鐘信號由P1.3 產生*/
sbit si=P1^0; /*SI由P1.0產生*/
sbit so=P1^1; /*SO由P1.1產生*/
sbit c=ACC^7; /*定義位變數*/
bdata unsigned char com;
void tran() /*發送一位元組數據子函數*/
{
unsigned char i;
for(i=0; i<8; i++)
{ ACC=com; /*將數據放入a中*/
si=c;
sck=0; /*sck產生一個上跳變*/
sck=1;
com=com<<1; /*左移一位*/
}
return;
}
main()
{
com=0x06; /*發寫讀使能命令*/
cs=0;
tran();
cs=1;
com=0x01; /*發寫狀態字命令*/
cs=0;
tran();
com=0x00; /*定時1.4s*/
tran();
cs=1;
...;系統正常運行的程序部分
}
需要注意的是,在程序正常運行的時候,應該在適當的地方加一條喂狗指令,使系統正常運行時的定時時間達不到預置時間。系統就不會複位。喂狗指令如下。
main()
{
...;系統正常運行的程序部分
{
cs=0; /*產生cs}
}
X25045的看門狗電路使用十分方便。X25045內部還集成了512BEEPROM和電壓運行監視系統,只需這樣一塊晶元,外加晶振和複位電路就可以組成單片機的應用系統,非常適合於攜帶型儀器和嵌入式系統的設計。
點擊查看:x25045中文資料
[admin via 研發互助社區 ] X25045晶元中文資料及編程方法已經有1767次圍觀
http://cocdig.com/docs/show-post-37890.html