單片機時鐘電路程序設(shè)計
2 軟件設(shè)計
X1226由實時時鐘寄存器(RTC)、狀態(tài)寄存器(SR)、控制寄存器(CONTROL)、報警寄存器(Alarm0、Alarml)和客戶數(shù)據(jù)存儲器組成。由于實時時鐘寄存器(RTC)和狀態(tài)寄存器(SR)需要進行頻繁的寫操作,因此它的存儲結(jié)構(gòu)為易失性SRAM結(jié)構(gòu),該結(jié)構(gòu)對寫操作的次數(shù)沒有限制。其它寄存器結(jié)構(gòu)均為非易失性EEPROM結(jié)構(gòu),該結(jié)構(gòu)對寫操作有次數(shù)限制,通常在10萬次以上。X1226初始化程序流程如圖2所示。
啟動條件子程序:
SETB SDA
LCALL YS4
SETB SCL
LCALL YS4
CLR SDA
LCALL YS4
CLR SCL
LCALL YS4
RET
停止條件子程序:
CLR SDA
LCALL YS4
SETB SCL
LCALL YS4
SETB SDA
RET
注:子程序YS4的作用是延時4μs。
2.1 寫操作
X1226初始化操作后,單片機對X1226進行開始條件的設(shè)置,在寫CCR或EEPROM之前,主機必須先向狀態(tài)寄存器寫02H,確認應(yīng)答信號,確認后寫入06H,再確認應(yīng)答信號。確認后啟動了寫操作。首先發(fā)送高位地址,然后發(fā)送低位地址。Xl226每收到一個地址字節(jié)后,均會產(chǎn)生一個應(yīng)答信號。在兩個地址字節(jié)都收到之后,X1226等待8位數(shù)據(jù)。在收到8位數(shù)據(jù)之后,X1226再產(chǎn)生一個應(yīng)答。然后單片機通過產(chǎn)生一個停止條件來終止傳送。
Xl226具有連續(xù)寫入功能,X1226在收到每個字節(jié)后,響應(yīng)一個應(yīng)答,其內(nèi)部將地址加一。當(dāng)計數(shù)器達到該頁的末尾時,它自動的“返回”到該頁的首地址。這意味著單片機可從某一頁的任何位置開始向存儲器陣列連續(xù)寫入64字節(jié)或向CCR連續(xù)寫入8字節(jié)。
寫入Xl226數(shù)據(jù)子程序:
MOV R5,#8
SENDI:MOV A,DATASE
RLC A
MOV DATASE,A
MOV SDA,C
SEB SCL
LCALL YS4
CLR SCL
LCALL YS4
DJNZ R5,SENDl
RET
評論