劉永琦,曲鳴飛
(北京電子科技職業學院 機電工程學院,北京 100176)
本次研究采用的主控制單元是美國STC公司生產的STC89C52,是一種性能非常高的微處理器,為51內核,然后利用51單片機組成溫度檢測系統。系統主要由報警模塊、輸入模塊、通信模塊、溫度采集模塊以及液晶顯示模塊構成。這一系統的功能主要包括以下幾點:可以對當下環境溫度進行準確檢測;能通過四位八段LED數碼管顯示檢測結果;能夠傳輸檢測到的溫度數據,傳輸時主要通過串口(RS232協議)進行傳送;可以設定溫度的上下限,當設定的限定值超過一定數值時,第一時間進行聲光報警。
STC89C52的功能主要包含:256字節RAM,MAX810復位電路,片內晶振及時鐘電路,全雙工串行口,一個7向量4級中斷結構,32位I/O口線,3個16位定時器/計數器,8 kB Flash,內置4 kB EEPROM。此外,可以將STC89C52降到靜態邏輯模式,通過0 Hz進行操作,可以使用節電模式。當處于空閑狀態時,會自動停止CPU的工作。如果是掉電保護狀態下,會自動保存RAM內容,停止單片機的所有工作。本次設計選擇STC89C52單片機,使用PDIP40進行封裝。
美國DALLAS半導體公司研發的DS18B20屬于可組網數字式溫度傳感器,內部采用在板(ON-BOARD)技術[1]。所有的轉換電路和傳感元件都在一只三極管電路內集成。單線接口的方式非常獨特。微處理器和DS18B20進行連接時,只要使用一條口線,就能夠完成DS18B20和微處理器之間的雙向通信。DS18B20在使用中不需要外圍元件。
這一設備的控制是由單片機STC89C52的I/O口P1.7完成的,如圖1所示,其中DQ為數字信號輸入/輸出端,與單片機STC89C52的I/O口P1.7相連接。

圖1 溫度采集電路
1602液晶也被稱為1602字符型液晶,最大的作用是將符號、數字、字母顯示出來,屬于點陣型液晶模塊。它主要由多個5×11或是5×7的陣字符位組成,不同點陣字符位顯示不同的字符。1602LCD是指內容顯示的格式為16×2,即顯示2行。每行的字符液晶模塊有2個,主要是顯示數字和字符。目前,市場上常見的字符液晶是HD44780液晶芯片,所以利用HD44780對程序進行控制具有非常廣泛的應用范圍[2]。
1602采引腳功能如下。
第1腳:VSS地接到GND。
第2腳:VDD接到5 V正電源。
第3腳:VL是液晶顯示屏對比度的調整端,對比度最弱的狀態是接正電源時。在對電源進行接地時,可以達到最高的對比度;如果對比度過高,會顯示“鬼影”;使用時可以適當調整對比度,可以使用10 kΩ的電位器進行調節。
第4腳:如果是在高電狀態下,應當選擇數據寄存器;反之,要使用指令寄存器。
第5腳:RW在高電平時開展讀操作,低電平只能進行寫操作。如果兩者都處在低電平,可以顯示地址或是寫入指令。當RS是低電平且RW為高電平時,可以進行讀忙信號;反之,是寫入數據。
第6腳:E端為使能端,液晶模塊執行命令。第7~14腳:D0~D7為8位雙向數據線。
想要控制LCD1602液晶屏,主要是通過單片機STC89C52的P2和P0部分實現。
本系統RS232串口通信固定接在單片機STC89C52的P3.0和P3.1口上,RS232串行通信接口芯片選擇MAX3232,通信速率最高達1 Mb/s,只需4個電容就可以正常開展工作。內部結構主要有以下幾部分組成。第一,電荷泵電路,主要由4只電容和6個腳組成,最大的作用是產生-12 V和+12 V的電源,滿足RS-232串口電平需求。第二,數據轉換通道,主要由7~13腳構成,其中11~13腳是第一數據通道,7~10腳是第二數據通道,這里采用第二數據通道。第三,供電。15腳DNG和16腳VCC(+5 V)。
RS232串口模塊電路如圖2所示。

圖2 RS232串口模塊
基于μC/OS和STC89C52的溫度檢測系統,選擇的操作系統為μC/OS-II,可以實時進行操作,將系統的總體功能劃分為不同任務,利用完成多任務實現總體功能。設計程序時,選擇匯編語言和C語言,編譯軟件使用的是Keil。
μC/OS-II開展移植工作,在硬件方面必須具備強大的功能。進行設計時,采用的處理器型號是STC89C52,能夠有效滿足當前的需要,主要內容如下:
(1)利用C語言開展處理器;
(2)指令集非常精簡,能夠把寄存器和堆棧指針讀寫到內存中,而且能夠進行硬件堆棧;
(3)編譯環境選擇的是Keil,能夠使代碼重新錄入。
采用編譯器Keil和STC89C52處理器能夠有效滿足目前的使用需求,所以能夠正常運行該系統。進行移植的過程中,采用的方式主要通過對以下幾個文件進行修改,如OS_CPU_C.c、OS_CPU_A.asm和OS_CPU.h。此外,在OS_CPU_A.asm文件中編寫任務切換等函數(匯編語言編寫)。
設計的程序總體主要包括6個任務,如圖3所示。
(1)系統初始化設置,包括中斷、時鐘節拍定時器、DS18B20、LCD顯示屏、系統硬件以及串口等。(2)溫度采集任務,主要是采集和處理溫度數據。(3)LCD顯示任務,顯示傳送來的數據。
(4)按鍵任務,利用按鍵,有效設定溫度的上下限值。
(5)報警任務,環境溫度超出時自動報警。
(6)串口通信任務,將溫度數傳送到PC端,開展后續的工作。

圖3 總體流程
隨著我國經濟實現了跳躍式發展,人們的生活水平有了很大提高,對各方面的要求越來越高。因此,在開展設計工作的過程中,把μC/OS-II移植到STC89C52,通過實時操作系統μC/OS-II設計系統軟件,主要使用任務管理功能,相較傳統系統優勢明顯,且大幅降低了開發系統的使用時間,提高了系統軟件的可靠性,最大程度地保障了安全性能。通過嚴格全面的測試,設計的系統能夠對當下環境的溫度數據進行準確顯示,可以應用于相關監測工作,且應用效果良好。