陳繼軍
(江蘇海事職業(yè)技術(shù)學(xué)院信息工程系,江蘇 南京 211170)
隨著人們生活節(jié)奏的加快,對時間控制的要求越來越高,但市場上,此方面的產(chǎn)品精度不夠或調(diào)時精度較低,本設(shè)計采用實時芯片DS1302來控制時間的顯示,精確度可達(dá)秒級,同時,采用E22PROM 24C02來存儲相應(yīng)的數(shù)據(jù),對應(yīng)了一天中的每一分鐘,可準(zhǔn)確地對時間進行控制,在用戶的要求下,可在任一時刻產(chǎn)生信號,以達(dá)到時間控制的目的。
根據(jù)系統(tǒng)的要求及對實際應(yīng)用可行性的分析,由于系統(tǒng)中數(shù)碼管的動態(tài)顯示部分的特殊要求,本系統(tǒng)軟件設(shè)計分兩部分完成,第一部分為主程序,第二部分中斷顯示子程序。其具體完成的功能和說明如下:
主程序主要完成的功能為:起動時鐘,讀取DS1302里的內(nèi)容,通過數(shù)據(jù)轉(zhuǎn)化,使其能正確在數(shù)碼管顯示。根據(jù)時間生成地址讀24C02里相應(yīng)單元的內(nèi)容,將讀出的內(nèi)容送端口。按照對應(yīng)原則,將某一位數(shù)據(jù)取出,并將它送端口。中斷子程序主要完成的功能為:定時產(chǎn)生中斷,讀取單片機里的某一空間,確定段選碼、位選碼的選定。用查表的方式,進行一定的數(shù)據(jù)轉(zhuǎn)化,確定顯示的段選碼,并應(yīng)用移位的方式,取出其相對應(yīng)的位選碼。
根據(jù)51系列單片機語言的設(shè)計原則,需要對主程序、中斷子程序的入口地址進行設(shè)定,并對各寄存器、存儲單元進行初始化操作。程序中,R0寄存器用于顯示單元的跟蹤,初始化時將其所指向的單元進行清零操作;R1寄存器用于中斷子程序中段選碼的選擇;R2寄存器用于數(shù)碼管顯示部分位選碼的確定;將用于讀DS1302后存儲讀出數(shù)據(jù)的暫存空間進行清零;主程序還要對定時器的工作方式、初始值進行設(shè)置,使其定時產(chǎn)生中斷。
為增加系統(tǒng)設(shè)計的合理性,本系統(tǒng)中采用數(shù)碼管動態(tài)顯示技術(shù)和中斷顯示方式。程序中,首先對累加器、狀態(tài)寄存器進行壓棧操作,確保中斷子程序的正常執(zhí)行。隨后對位選碼進行選定,在對段選碼的單元進行加1操作后,應(yīng)判斷單元是否到最后一位,如到最后一位,應(yīng)給段選碼、位選碼進行初始化操作,如未到最后一位,則對位選碼進行移位操作,最后CPU開中斷,將累加器、狀態(tài)寄存器進行出棧后返回主程序。
讀寫DS1302部分應(yīng)注意時序的關(guān)系,在每次讀時、分、秒寄存器的內(nèi)容時,必須先寫入地址命令字,讀寫時分別調(diào)用單個字節(jié)讀寫子程序。在將時、分、秒寄存器里的數(shù)據(jù)讀出后,由于數(shù)據(jù)格式的不一樣,必須經(jīng)過轉(zhuǎn)化才得使數(shù)碼管正常顯示。定義三個單元作為從DS1302里秒、分、時寄存器讀出的數(shù)據(jù)的暫存空間,然后再將其轉(zhuǎn)化。定義六個單元作為轉(zhuǎn)化后的數(shù)據(jù)暫存空間,此空間里的數(shù)據(jù)可由中斷顯示子程序經(jīng)過查表操作后交由數(shù)碼管直接顯示。
從DS1302里讀出的數(shù)據(jù)是BCD碼格式,本系統(tǒng)中要將其作為地址關(guān)系的相應(yīng)轉(zhuǎn)化,為了方便與地址的轉(zhuǎn)化,必須將BCD碼格式轉(zhuǎn)化成二進制形式。24C02是一個具有256字節(jié)單元的電可擦寫存儲器,本系統(tǒng)必須將一天中的每一分鐘形成與24C02地址相對應(yīng)的關(guān)系。一天共有1440分鐘,而24C02共有2048個位,則需將時間按位存儲,存儲器的每一位代表一天中的一分鐘,按照對應(yīng)關(guān)系,可將24C02中每8個字節(jié)劃分為一大段,每一大段中有64個比特位,可按位存儲一小時中的60分,此時時間轉(zhuǎn)化成對應(yīng)24C02中的地址,轉(zhuǎn)化方式為將時間中的小時位取出,乘以8即可得出24C02中每一大段的段首地址,再將時間中的分位取出,除以8可得到段內(nèi)地址,此時,將段首地址加上段內(nèi)地址即為真正的地址,分位除以8后得到的商即為段內(nèi)字節(jié)中的對應(yīng)分的位數(shù)。
目前,市場上的時間控制器大部分設(shè)置的任意性能不好,且精度不夠。本系統(tǒng)可對一天中任一分鐘進行設(shè)置,只需通過軟件對E2RPOM 24C02寫入數(shù)據(jù),則系統(tǒng)會根據(jù)24C02里的數(shù)據(jù),準(zhǔn)確地將信號輸出,達(dá)到用戶所需的功能。同時,本系統(tǒng)硬件電路簡單,軟件易操作,精度較高,性價比較高,可廣泛投入市場使用,具有一定的使用價值。
[1]張毅剛等.MCS-51單片機應(yīng)用設(shè)計[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997.
[2]陳志輝.I2C總線在MCS51系列單片機數(shù)據(jù)采集系統(tǒng)中的實現(xiàn)[J].微計算機信息,2005.
[3]沈德金等.MCS-51系列單片機接口電路與應(yīng)用程序?qū)嵗齕M].北京:北京航空航天大學(xué)出版社,1990.
[4]沈美明等.IBM-PC匯編語言程序設(shè)計[M].北京:清華大學(xué)出版社,2003.