X25165芯片在8051系統(tǒng)中的應(yīng)用
e.讀存儲(chǔ)單元內(nèi)容子程序
從X25165的串行EEPROM中讀指定單元內(nèi)容,需要先發(fā)送READ指令和16位地址,指定地址單元的數(shù)據(jù)在SCK脈沖的作用下就會(huì)從S0引腳依次移出。
WD-RD-DATA:CLR P1.2 ;使SCK為低電平
CLR P1.3 ;芯片選擇CS有效
MOC A,#03H ;READ指令送累加器A
LCALL WD-OUTB;輸出READ指令
MOV A,DPH;高位地址送累加器A
LCALL WD-OUTB ;輸出高位地址
MOV A,DPL ;低位地址送累加器A
LCALL WD-OUTB ;輸出低位地址
LCALL WD-INB ;讀?。―PTR)單元的數(shù)據(jù)
MOV R4,A ;數(shù)據(jù)送R4
LCALL WD-INB ;讀?。―PTP+1)單元的數(shù)據(jù)
MOV R5,A ;數(shù)據(jù)送R5
CLR P1.2 ;使SCK為低電平
SETB P1.3 ;芯片選擇CS無效
RET
f.寫存儲(chǔ)單元內(nèi)容子程序
該子程序向芯片內(nèi)EEPROM的指定起始地址寫入數(shù)據(jù),與寫狀態(tài)寄存器子程序一樣,程序中需要先輸出WREN指令設(shè)置寫使能鎖存器。然后,按高位在前的順序輸出存放于DPTR中的16位地址和存放于R5、R4中的16位數(shù)據(jù)。最后,要循環(huán)檢測狀態(tài)寄存器的WIP位,直到芯征內(nèi)容的寫操作完成,以確保數(shù)據(jù)被安全可靠地寫入芯片。
WD-WR-DATA:CLR P1.2 ;使SCK為低電平
CLR P1.3 ;芯片選擇CS有效
MOV A,#06H ;WREN指令送累加器A
LCALL WD-LUTB ;輸出WREN指令
SETB P1.3 ;使CS為高電平
CLR P1.3 ;芯片選擇CS有效
MOV A,#02H ;WRITE指令送累加器A
LCALL WD-OUTB ;輸出WRITE指令
MOV A,DPH ;輸出高8位地址
LCALL WD-OUTB ;
MOV A,DPL ;輸出低8位地址
LCALL WD-OUTB ;
MOV A, R4 ;輸出低8位數(shù)據(jù)
LCALL WD-OUTB ;
MOV A,R5 ;輸出高8位數(shù)據(jù)
LCALL WD-OUTB;
CLR P1.2 ;使SCK為低電平
SETB P1.3 ;使CS為高電平
WD-WIP-POLL:LCALL WD-RD-SR ;讀狀態(tài)寄存器
JB ACC.0, WD-WIP-POLL
;檢測WIP位
RET
g.看門狗定時(shí)器復(fù)位子程序
只要在設(shè)定的看門狗定時(shí)器超時(shí)周期以內(nèi)執(zhí)行子程序并向芯片的CS引腳發(fā)送一個(gè)下降沿,看門狗就不會(huì)產(chǎn)生復(fù)位輸出信號(hào)。
WD-EAT:SETB P1.3 ;
CLR P1.3 ;產(chǎn)生CS下降沿脈沖
SETB P1.3 ;
RET
筆者在設(shè)計(jì)車輪徑軸向位移檢測儀時(shí)使用了X25165芯片,從而簡化了系統(tǒng)結(jié)構(gòu),降低了成本,提高了系統(tǒng)的可靠性,使用過程中保存的數(shù)據(jù)從未發(fā)生丟失現(xiàn)象,使用結(jié)果令人滿意。
評(píng)論