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