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