邵陽學院信息工程系 鄧楠川 江世明 陽 泳
溫度是一個和人們生活環境有著密切關系的物理量,人民的生活與環境溫度息息相關,物理、化學、生物等學科都離不開溫度。在工業生產和實驗研究中,在電力、化工、石油、冶金、機械制造、大型倉儲室、實驗室、農場塑料大棚甚至人們的居室里經常需要對環境溫度進行檢測,并根據實際的要求對環境溫度進行控制。
系統以AT89S52單片機為核心,由溫度測量模塊、電壓轉換模塊、LCD顯示模塊、聲光報警電路、系統參數設置電路等部分構成,圖1所示為系統組成框圖:

圖1 系統方案框圖
該方案中的電源轉換模塊是采用9V電池作為輸入電源,再通過LM7805電壓轉換芯片將電壓轉換成系統所需電壓為供于AT89S52和DS18B20的DC5V電源;溫度檢測模塊采用性能穩定、靈敏度高,抗干擾能力強的DS18B20溫度傳感芯片進行溫度檢測,該芯片采用一種片上溫度測量技術來測量溫度,通過串口直接將檢測到的溫度與單片機進行數據傳輸;當檢測到的溫度被送到單片機中進行分析,當檢測到的溫度高于設置的最大溫度時,綠燈亮并由蜂鳴器報警,當檢測到溫度低于設置的最小溫度時,紅燈亮蜂鳴器報警。溫度設置的最大和最小值都由LCD1602直觀顯示;系統參數設置模塊可根據實際情況調整最大和最小溫度。
基于51單片機的溫度測量儀以AT89S52為核心器件,以KEIL為系統軟件開發平臺,用PROTEUS仿真,并在Al t ium Designer平臺進行了PCB板設計。系統主要由單片機最小系統、溫度檢測模塊、電壓轉換電路、液晶顯示電路、系統參數設置、聲光報警模塊電路組成,系統原理圖如圖2所示。
本系統采用了C語言進行程序設計,系統自動為各個變量分配內存區域。用戶可以將變量定義在DATA區、IDATA區、PDATA區、XDATA區,常量定義在CODE區。用C語言寫較復雜的程序時,要特別注意使用的內存不能超過單片機RAM。下面將程序設計的主程序設計、顯示模塊設計、溫度測量模塊設計、中斷模塊、按鍵模塊、聲光報警模塊進行說明。主程序先對系統資源進行初始化,初始化工作包括定時器賦初值,定時器中斷使能,LCD1602初始化。然后進入無限循環調用溫度測量程序,調用LCD顯示子程序,顯示用戶設置的最低溫度和最高溫度值及當前所測環境的溫度,再由單片機判斷所測溫度是否超過最高溫度或者低于最低溫度值,如果是,蜂鳴器便開始報警,同時相應報警燈亮。最后進行鍵盤掃描,不斷檢測是否有按鍵被按下,如果有,單片機則對最高或最低溫度值進行相應調整。主程序流程圖設計如圖3所示。

圖2 系統原理圖

圖3 主程序流程圖
實物焊接完成后需要進行一系列的測試,單片機應用系統的硬件和軟件調試是交叉進行的,但通常是先排除樣機中明顯的硬件故障,尤其是電源故障,才能安全地和仿真器相連,進行綜合調試。
硬件調試:在綜合調試之前需要保證硬件沒有大錯誤,比如短路、大部分電路開路等情況。主要是檢查元件焊接是否良好,插上電源后電源指示燈是否會亮,測試各個元器件關鍵點的電壓是否正常等。
本次設計的基于51單片機的溫度測量儀的設計是一種較好的溫度檢測系統,它基本可以實現各種環境的溫度測量和顯示,采集測溫范圍為-55~+120℃,廣泛應用于生活起居、農業生產、工業發展等場合。系統采用DS18B20測量技術、SPI總線技術,從而實現對各種環境下的溫度控制和測量。
[1]魏英智.基于DS18B20的定時溫控系統的研究與實現[J].哈爾濱工業大學,2005:69.
[2]周繼明,江世明主編.傳感技術與應用[M].湖南:中南大學出版社,2009:13-67.