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