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