基于AT89C52單片機的日歷時鐘模塊設(shè)計
在實時監(jiān)控系統(tǒng)的設(shè)計中,要實時監(jiān)測各個控制信號,更重要的是在發(fā)生故障時能準確記錄故障數(shù)據(jù),以便準確分析排除錯誤。監(jiān)控系統(tǒng)中一般都要定時采集現(xiàn)場數(shù)據(jù),對某些重要的信息不僅要記錄其內(nèi)容,還要記錄下該信息發(fā)生的準確時間,所記錄的實時時間信息應(yīng)長期保存,因此需要實時時鐘來實現(xiàn)。常用的單片機沒有實時時鐘,若需采用定時器實現(xiàn),一旦系統(tǒng)掉電,時鐘就不能運行,這是實時監(jiān)控系統(tǒng)
不允許的,而采用獨立運行的實時時鐘便可實現(xiàn)。但一般的時鐘芯片在系統(tǒng)掉電時,其數(shù)據(jù)也會丟失,需提供備用電池。而時鐘芯片DS12887在系統(tǒng)掉電時數(shù)據(jù)不丟失,廣泛應(yīng)用于測量和控制系統(tǒng)。因此,這里給出了實時時鐘DS12887在單片機應(yīng)用系統(tǒng)中的應(yīng)用。
1 主要器件造型
1.1 DS12887的功能介紹
DS12887是DALLAS公司推出的8位并行并自帶RAM的實時日歷時鐘芯片,內(nèi)部有14個時鐘控制寄存器,包括10個時標寄存器,4個狀態(tài)寄存器和114 bit作掉電保護用的低功耗RAM。CPU通過讀DS12887的內(nèi)部時標寄存器得到當前的時間和日歷,也可通過選擇二進制或BCD碼初始化芯
片的10個時標寄存器,其4個狀態(tài)寄存器用來控制和指出DS12887的當前工作狀態(tài),114 bit非易失性靜態(tài)RAM可在掉電時保存一些重要數(shù)據(jù)。 DS12887功能強大,應(yīng)用廣泛。其引腳功能如下:
GND,VCC:直流電源+5 V電壓。當5 V電壓在正常范圍內(nèi)時,數(shù)據(jù)可讀寫;當VCC低于4.25 V,讀寫禁止,計時功能仍繼續(xù);當VCC下降到3 V以下時,RAM和計時器被切換到內(nèi)部鋰電池。
MOT(模式選擇):MOT引腳接到VCC時,選擇MOTOROLA時序,當接到GFND時,選擇INTEL時序。
SQW(方波信號):SQW引腳能從實時時鐘內(nèi)部15級分頻器的13個抽頭中選擇一個作為輸出信號,其輸出頻率可通過對寄存器A編程改變。
AD0~AD7(雙向地址/數(shù)據(jù)復(fù)用線):總線接口,可與MOTOROLA微機系列和INTEL微機系列接口。
AS(地址選通輸入):用于實現(xiàn)信號分離,在AD/ALE的下降沿把地址鎖入DS12887。
DS(數(shù)據(jù)選通或讀輸入):DS/RD有2種操作模式,取決于MOT引腳的電平,當使用MOTOROLA時序時,DS是一正脈沖,出現(xiàn)在總線周期的后段,稱為數(shù)據(jù)選通;在讀周期,DS指示DS12887驅(qū)動雙向總的時刻;在寫周期,DS的后沿使DS12887鎖存寫數(shù)據(jù)。選擇INTEL時序時,DS稱作(RD),RD與典型存儲器的允許信號(OE)的定義相同。
(讀/寫輸入):也有兩種操作模式。選MOTOROLA時 序時,是一電平信號,指示當前周期是讀或?qū)懼芷冢珼SO為高電平時,高電平指示讀周期,低電平指示寫周期;選INTEL時序,信號是一低電平信號,稱為WR。在此模式下,R/W與通用RAM的寫允許信號(WE)的含義相同。
(片選輸入):在訪問DS12887的總線周期內(nèi),片選信號必須保持為低。
(中斷申請輸入):低電平有效,可作微處理的中斷輸入。沒有中斷條件滿足時,IRQ處于高阻態(tài)。IRQ線是漏極開路輸入,要求外接上接電阻。
(復(fù)位輸出):當保持低電平時間大于200 ms,保證DS12887有效復(fù)位。
DS12887引腳如圖1所示。
DS12887的內(nèi)部地址分配:地址00H和03H單元取值范圍是00H~3BH(十進制為0~59);04H~05H單元按12小時制取值范圍是上午(AM)01H~0CH(十進制為1~12),下午(PM)51H~5CH(十進制為81~92),按24小時制取值范圍是00H~17H(十進制為0~23);06H單元的取值范圍是01H~07H(十進制為1~7);07H單元取值范圍O1H~1FH(十進制為1~31);08H單元取值范圍是01H~0CH(十進制為1~12);09H單元取值范圍是00H~63H(十進制為0~99)。
1.2 單片機A789C52簡介
AT89C52是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含8 kB的可反復(fù)擦寫的Flash只讀程序存儲器和256字節(jié)的隨機存取數(shù)據(jù)存儲器(R-AM)。該器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元。A-T89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲器可有效降低開發(fā)成本。廣泛應(yīng)用于智能儀器、儀表和低功耗電子產(chǎn)品。
2 系統(tǒng)硬件設(shè)計
2.1 DS12887的工作原理
DS12887采用8位地址/數(shù)據(jù)復(fù)用的總線方式,具有一個鎖存引腳,通過讀、寫、鎖存信號實現(xiàn)其內(nèi)部數(shù)據(jù)的輸入輸出,控制內(nèi)部的控制寄存器、讀取內(nèi)部的時間信息寄存器。DS12887的各種寄存器在其內(nèi)部空間都有相應(yīng)的固定地址,因此,單片機通過正確的尋址和寄存器操作就可以獲取需要的時間信息。DS12887有2種工作時序,即Motorola和Intel時序,由Mot引腳的電平指定。當MOT引腳為高電平時選擇Motorola時序;為低電平時選擇Intel時序。除此之外DS12887內(nèi)部還有128字節(jié)的RAM的單元,其中前10個字節(jié)用于存放日歷時鐘信息,字節(jié)0為秒,字節(jié)2為分,字節(jié)4為時,字節(jié)6為星期,字節(jié)7為日,字節(jié)8為月,字節(jié)9為年,字節(jié)0AH~0DH用作控制和狀態(tài)寄存器,剩下的114字節(jié)為用戶RA-M,所有的這128字節(jié)都是掉電非易失性的。
2.2 DS12887與單片機的接口設(shè)計
單片機的P0口用作地址/數(shù)據(jù)復(fù)用總線與實時時鐘DS12887的AD0~AD7引腳相連。單片機的ALE引腳和DS12887的鎖存輸入引腳直接相連,用作地址鎖存,實現(xiàn)數(shù)據(jù)和地址線的分時復(fù)用。DS12887的MOT引腳接地,用以選擇Intel總線時序模式,在Intel總線時序模式時,和51單片機的接口完全兼容,可以將其讀輸入DS、寫輸入與單片機的相應(yīng)引腳直接連接。DS12887的RESET引腳對日歷時鐘和RAM沒有影響,但影響DS12887的命令和狀態(tài)寄存器的內(nèi)容。在電路中直接將RESET連至Vcc,這樣可以保證DS12887在進入或退出電源失效狀態(tài)時,其工作狀態(tài)不受RESET引腳的影響。DS12887的可編程輸出方波引腳SQW輸出頻率為2~256 Hz的方波,該系統(tǒng)則利用SQW引腳輸出周期為125 ms的方波作為單片機外部中斷/INT0的中斷源,實現(xiàn)周期性中斷。當中斷發(fā)生時,單片機讀一次輸入口,檢查電表是否轉(zhuǎn)過一圈,整點時還要采一次三相電流和電壓。
DS12887與單片機的硬件接口電路如圖2所示。
評論