基于單片機的數(shù)字多用表的設(shè)計
介紹Dallas公司的兩線數(shù)字溫度傳感器/實時時鐘芯片DS1629的特點和結(jié)構(gòu)原理,詳細討論了DS1629在溫度表/計時器中的應(yīng)用設(shè)計,并指出了在實際應(yīng)用設(shè)計中應(yīng)注意的問題。
關(guān)鍵詞:DS1629;兩線總線;數(shù)字多用表;單片機
DS1629是專為溫度的數(shù)字化測量而設(shè)計的一種芯片,同時還兼有實時時鐘/日歷的功能。DS1629的寬電源范圍和極小的功耗非常適合于電池供電的應(yīng)用環(huán)境。其時鐘功能可以是12小時或者24小時的模式,且在12小時的模式下帶有AM/PM指示。當溫度達到或超過程序設(shè)定的上限TH或者時間到達程序設(shè)定的時刻時,芯片就產(chǎn)生漏極開路的報警輸出。
DS1629由數(shù)字溫度傳感器、實時時鐘、兩線串行接口、數(shù)據(jù)寄存器、溫度和時鐘報警比較器及時鐘分頻器和緩沖器6個部分組成。
由制造商標定的溫度傳感器無需外部器件。芯片一上電就開始進行溫度轉(zhuǎn)換,并隨后連續(xù)進行轉(zhuǎn)換。主機(通常為單片機)可以周期性地讀取溫度寄存器中最新轉(zhuǎn)換的溫度值,并且由于轉(zhuǎn)換是在“后臺”進行的,讀數(shù)據(jù)并不影響轉(zhuǎn)換的過程。主機可以修改芯片的配置,如上電后并不立即開始轉(zhuǎn)換和連續(xù)轉(zhuǎn)換模式,這樣對于要求省電的場合很有益處。實時時鐘/日歷提供秒、分、時、星期、日期、月、年的BCD數(shù)值,這需要內(nèi)部的振蕩器/分頻器和外部的32.768kHz的晶振。不足31天的月份則在月底自動調(diào)整,閏年的補償直到2100年。實時時鐘可以通過清除時鐘寄存器中的控制位而關(guān)閉。通過讀/寫時鐘寄存器或者時鐘報警寄存器可以關(guān)閉時鐘報警輸出。
二進制數(shù)據(jù)的讀/寫通過兩線總線進行,高位在前,每個寄存器的訪問都采用8位的命令協(xié)議。芯片各個引腳的功能如表1所示。
從前面的討論可以看出,DS1629兼有數(shù)字溫度傳感器和實時時鐘/日歷的功能,工作電壓為2.2~5.5V,因而可將其與單片機結(jié)合起來設(shè)計出帶有數(shù)字鐘功能的數(shù)字溫度表。單片機采用AT89C2051,封裝為20DIP,工作電壓范圍是2.7~5.5V。顯示部分采用6位數(shù)碼管來顯示時間、日期或溫度等數(shù)據(jù)。為了簡化電路,減少芯片,降低功耗,顯示部分采用動態(tài)循環(huán)掃描的方式,由一片4~7段譯碼器CD4543驅(qū)動。CD4543的工作電壓為3~18V,整個電路采用兩節(jié)干電池供電,系統(tǒng)的硬件構(gòu)成如圖1所示。圖中,DS1629的SCL與SDA端分別接單片機的P3.0和P3.1,R1和C1構(gòu)成上電自動復(fù)位電路,P3.2~P3.4接 3個按鍵,C2、C3及6MHz晶振構(gòu)成振蕩電路,P3.5、P3.7、P1.0~P1.3分別接6位數(shù)碼管的公共端(圖中3個數(shù)碼管LED2~LED4沒有畫出)作為位選信號,P1.4~P1.7接CD4543的BCD碼輸入端,6個數(shù)碼管的數(shù)據(jù)輸入端a~g都并接到CD4543的數(shù)據(jù)輸出端a~g。