摘 要: 設計了基于智能串口顯示終端、Atmega128單片機和DS18B20的溫度測試系統,詳述了系統的軟硬件設計。該系統中,單片機通過串口中斷的方式接收智能串口顯示終端的指令信息,控制DS18B20完成溫度測試并將測試結果回傳到智能串口顯示終端實時顯示。該系統操作簡單、顯示直觀,具有良好的人機交互方式。
關鍵詞: 智能串口顯示終端;Atmega128;DS18B20;溫度測試
隨著信息技術的發展以及人們對電子產品智能化、便捷化、人性化要求的不斷提高,觸摸屏作為一種最新的智能顯示終端,得到了越來越廣泛的應用。觸摸屏具有堅固耐用、反應速度快、節省空間、易于交流等優點,是最便捷和自然的人機交互方式[1-2]。本文將智能串口顯示終端應用于溫度測試系統,實現了環境溫度的實時監測與動態顯示。
1 系統的硬件構成
1.1 Atmega128單片機
Atmega128單片機是一款基于AVR內核的、采用RISC結構的增強型低功耗CMOS 8 bit微控制器。它的大部分指令在一個時鐘周期內完成,因此具有1 MIPS/MHz的數據吞吐率。其擁有優化的功率消耗結構,在功耗相對較少的情況下可以進行復雜的處理[3]。
1.2 數字溫度傳感器DS18B20
DS18B20是DALLAS公司生產的單線智能溫度傳感器,溫度測量范圍為-55℃~+125℃,具有9~12 bit可編程的轉換精度,最大溫度分辨率為0.062 5℃[4]。DS18B20溫度儲存格式如圖1所示。
1.3 智能顯示終端
智能顯示終端[5]采用北京迪文科技有限公司生產的DMT64480T056_01W型四線電阻式觸摸屏[6-7]。它是一款640×480分辨率、65k彩色、5.6英寸的TFT屏幕,工作電壓為4.5 V~26 V的寬壓輸入,靈敏度為5 g,響應速度為0.01 s,表面硬度在3 H以上,在典型工作電壓12 V條件下功耗為2.9 W。其屏體部分是一塊與顯示器表面非常配合的多層復合薄膜,由一層有機玻璃作為基層,表面涂有一層透明的導電層,上面再蓋上一層外表面硬化處理光滑防刮的塑料層,它的內表面也涂有一層透明導電層,在兩層導電層之間有許多細小(小于千分之一英寸)的透明隔離點把它們隔開絕緣。
系統設計中使用串口智能顯示終端的配置文件工作模式。在此模式下,可以通過預先將配置文件和觸控界面圖片,根據界面的跳轉順序關系下載到HMI(智能串口顯示終端)中,實現觸摸屏根據配置文件自動切換界面以及上傳觸控鍵碼。配置文件是由最多8 192條觸控指令組成的二進制文件,每條觸控指令長達16 B,其定義如表1所示。觸控界面圖片是通過專業圖形工具設計和制作的,其分辨率的選取應與屏幕分辨率一致,界面圖片被下載到串口智能顯示終端后,每頁界面都有自己唯一的編號,在配置文件中只需對這個編號進行操作。
配置文件工作模式使得單片機對觸摸屏的控制程序簡單明了,同時也簡化了上位機的程序設計。采用配置文件工作模式,觸摸屏程序設計可以分為以下幾個步驟。
(1)設計好和HMI分辨率相同的界面,下載到HMI中。
(2)利用ASM51編譯器和HEX轉BIN工具制作并生成配置BIN文件。
(3)把配置文件下載到HMI中。
(4)配置HMI為觸控界面自動切換模式。
(5)測試界面切換及上傳指令碼是否正常。
1.4 系統原理框圖
系統原理框圖如圖2所示。單片機通過串口1采用中斷的方式獲取觸摸屏的觸控信息,觸摸屏的電平信號為RS-232電平,單片機的串口信號為TTL電平,設計中采用電平轉換芯片MAX3232作為觸摸屏與單片機的通信接口。單片機對串口1接收到的按鍵控制信息進行識別,控制DS18B20的溫度轉換,同時將DS18B20溫度測量結果回傳給觸摸屏顯示。
2 系統軟件設計
2.1 HMI指令
HMI指令集可用于文本顯示、點顯示、連線顯示、圓弧曲線顯示及區域顯示等。HMI指令中,AA為指令開始標志,CC 33 C3 3C為指令結束標志。由智能顯示終端回傳的數據包包含觸控鍵碼信息,其指令長度為8 B,格式為AA 78<觸控鍵碼(2 B)>CC 33 C3 3C,78表示觸控鍵碼返回指令。控制觸摸屏界面跳轉指令格式為:AA 70<圖片編號>CC 33 C3 3C,70表示觸控界面跳轉指令,圖片編號可以根據需要選取1 B或者2 B。文本顯示指令格式為:AA 55<X><Y><String>CC 33 C3 3C,其中55表示ASCII字符以半角16×32點陣顯示, <X><Y>表示顯示字符串的起始位置,<Strinig>為要顯示的字符。動態曲線顯示指令格式為:AA 74<X><Ys> <Ye><Bcolor><(Y0,Fcolor0),(Y1,Fcolor2)…(Yi,Fcolori)>CC 33 C3 3C,該指令用于在一個窗口中快速顯示多條變化曲線,終端接收到該指令后用<Bcolor>顏色擦出從(X,Ys)到(X,Ye)的垂直線,把原來的顯示內容清空,然后在(X,Yi)位置用<Fcolori>顏色置點。
2.2 串口接收程序
串口1接收程序流程圖如圖3所示,DUR1是單片機串口1的寄存器,用于接收串口信號,Receive是一個程序定義的數據寄存器,串口信號以比特為單位傳來后由DUR1寄存器接收,賦值給Receive。如果這是一個指令開始標志,將指令開始標志位flag置1,將指令數組Order的計數器j清零,然后將該數據存入指令數組;如果不是一個指令開始標志的話,則由當前指令開始標志位判斷是否屬于指令的內容。如果flag為1則將數據存入數據寄存數組,然后將指令數組計數器j加1,并對j的值進行判斷,當j=8時則說明8個字節的返回指令已經接收完畢,將指令數組寄存器j和指令開始標志位flag清零。根據觸控鍵碼返回指令格式,只需讀取Order[2]和Order[3]的值就可以識別出返回的控制信息。
2.3 DS18B20溫度測試程序
單片機使用時間隙來讀寫DS18B20的數據位和寫命令字位,其溫度測試過程如圖4所示。單總線上的所有處理均從初始化開始,總線主機檢測到DS18B20的存在,便可以發出ROM操作命令,之后發送存儲器操作指令完成溫度轉換(44H)和溫度讀取(0BEH)。
2.4 程序流程圖
系統程序流程圖如圖5所示。單片機通過串口1中斷的方式設置溫度測試標志位ii,接收到測試開始指令后將標志位ii置1溫度測試開始;接收到測試結束指令后將標志位ii置0,溫度測試結束。
本文設計了基于智能串口顯示終端、Atmega128單片機和DS18B20的溫度測試系統,實現了溫度的實時監測、溫度值的實時顯示以及溫度動態變化曲線的顯示。觸摸屏作為系統智能的輸入和輸出終端,具有友好的人機界面。北京迪文智能串口顯示終端具有豐富的指令集能夠滿足系統設計對于文本顯示、點顯示、連線顯示、圓弧曲線顯示及區域顯示等功能的需求,將在系統設計中得到越來越廣泛的應用。
參考文獻
[1] 張恩宜,張愛紅.觸摸屏技術的發展與應用[J].山東師范大學學報(自然科學版),2002,17(1):93-94.
[2] 馬雅.基于ARM9的觸摸屏控制器系統硬件模塊設計與實現[J].中國西部科技,2011,23(10):30-31,39.
[3] 金鐘夫,杜剛,王群,等.AVR Atmega128單片機C語言設計與實踐[M].北京:北京航空航天大學出版社,2008.
[4] 王戰備.室內溫度檢測與調控系統設計[J].電子設計工程,2011:19(6):40-43.
[5] 北京迪文科技有限公司.HMI產品線應用指南[Z].2008.
[6] 羅敏.基于PLC和觸摸屏的紙廠污水控制系統[J].機電工程技術,2009,38(11):50-52.
[7] 王孝洪,徐振宇,莫鴻強,等.基于Atmega128單片機的數字化地下管線定位儀[J].智能儀表與傳感器,2009,17(9):1860-1964.