
2.4 AT45D081的讀寫軟件編程
AT45D081有關(guān)引腳接線如圖3所示,下面給出針對寫緩沖區(qū)和連續(xù)讀主存儲器陣列命令的51匯編語言軟件編程。
;向緩沖區(qū)1寫入數(shù)據(jù)
writebuf:
clr CS
mov a,#84h
lcall Byte_shift_out ;送命令碼
clr a
lcall Byte_shift_out ;送8位任意碼
mov a,hi_addr
lcall Byte_shift_out ;送高字節(jié)地址
mov a,lo_addr
lcall Byte_shift_out ;送低字節(jié)地址
writebuf0:
mov a,@r0
;連續(xù)讀主存儲器陣列內(nèi)容
Readmain:
clr CS
mov a,#68h
lcall Byte_shift_out ;送命令碼
clr c
mov a,lopageadd
rlc a
mov a,hi_page_addradd;
;合成24位地址的9~18位
rlc a
lcall Byte_shift_out;送前8位
mov a,hi_addr
rrc a
mov a,lopageadd
rlc a ;合成24位地址0~8位
lcall Byte_shift_out ;送第2個8位
mov a,lo_addr
lcall Byte_shift_out ;送0~7位
clr a
mov r3,#04H
readmain0:
lcall Byte_shift_out
djnz r3,readmain0 ;送32位無關(guān)位
readmain1:
lcall Byte_shift_in
mov @r0,a
inc r0 ;
;連續(xù)從指定的頁及頁內(nèi)地址讀出R2個數(shù)據(jù)
djnz r2,readmain1 ; 送命令碼
setb CS
ret
ReadState: ;讀狀態(tài)寄存器內(nèi)容
clr fmcs
MOV a,#57h;
lcall outcommon
lCALL incommon
setb fmcs
lcall Byte_shift_out; 連續(xù)從R0指定的地址寫入R2個數(shù)據(jù)到BUFFER1
inc r0
djnz r2,writebuf0
setb CS
ret
3 結(jié)束語
本文設(shè)計(jì)的稅控加油機(jī)已通過國家稅控認(rèn)證及電磁兼容試驗(yàn)認(rèn)證。產(chǎn)品投產(chǎn)5年來,運(yùn)行一直穩(wěn)定可靠,各項(xiàng)指標(biāo)均達(dá)到國家要求標(biāo)準(zhǔn)。尚未發(fā)現(xiàn)存儲在AT45D081中的數(shù)據(jù)出現(xiàn)丟失和異常現(xiàn)象





