| //X5045.H #ifndef X5045_h #define X5045_h #define WDT1_4 0x00; #define WDT600 0x10; #define WDT200 0x20; #define WDTDIS 0x30; //BIT sbit B_CS5045=P2^0; sbit B_SO5045=P2^1; sbit B_SCLK5045=P2^3; sbit B_SI5045=P2^2; extern unsigned char data tcX5045; void RstWDT(void); void WrB5045(unsigned char,unsigned char) reentrant; //寫入單字節(jié)數據 unsigned char RdB5045(unsigned char); //讀出單字節(jié)數據 void byteout(unsigned char); //向5045輸出單字節(jié) void wip_chk(void); //等待5045結束內部寫周期 unsigned char rdsr(void); //5045狀態(tài)寄存器讀出程序 unsigned char bytein(void); //從5045讀出一字節(jié)數據 unsigned char readx(void); //讀地址,地址位于100h void wrsr(unsigned char); //5045狀態(tài)寄存器寫入程序 void wren(void); //寫允許 void wrdi(void); //寫禁止 #endif
/* X5045/3 讀寫驅動 */ #include <reg51.h> #include "X5045.h" //復位看門狗 void RstWDT() { B_CS5045=0; B_CS5045=1; } //向X5045寫入單字節(jié)數據 //輸入:x,待寫數據,address,寫入數據的地址 void WrB5045(unsigned char x,unsigned char address) reentrant //數據,地址 { wren(); B_SCLK5045=0; B_CS5045=0; byteout(0x2); //write byteout(address); byteout(x); B_SCLK5045=0; B_CS5045=1; wip_chk(); wrdi(); |