周鵬
(華僑大學(xué) 信息學(xué)院,福建 廈門 361021)
PT100鉑電阻溫度傳感器因其測量范圍廣、精度高、性能穩(wěn)定可靠等特點,被廣泛應(yīng)用于溫度采集[1]。而隨著液晶顯示器成本逐年降低,顯示容量越來越大,功耗越來越小,現(xiàn)已普遍應(yīng)用于各種測溫儀。本文基于PT100傳感器,設(shè)計了一種多功能數(shù)字測溫儀。系統(tǒng)主要功能有:數(shù)字溫度顯示、數(shù)字/指針時鐘顯示和日期顯示、溫度上下限值的設(shè)置、溫度超限報警。
系統(tǒng)主要由STC89C52單片機、溫度采集電路(包括PT100溫度傳感器和 ADC0832)、鍵盤電路、LCD12864顯示器和報警電路組成(如圖1所示)。
圖1 系統(tǒng)框圖
STC89C52單片機用于實現(xiàn)算法,是整個系統(tǒng)的主控核心;LCD12864用于顯示溫度、時間和日期等參數(shù);溫度采集電路用于溫度-電阻-電壓的變換和模數(shù)轉(zhuǎn)換;鍵盤電路用于設(shè)定相關(guān)參數(shù)(上下限溫度值、時間);報警電路用于溫度超限報警。
STC89C52單片機系統(tǒng)由單片機、時鐘電路和復(fù)位電路組成,如圖2所示。
STC89C52單片機具有抗干擾性能強、速度快、功耗低和指令代碼完全兼容8051單片機等特點。其主要參數(shù)為[2]:時鐘頻率最高可達(dá) 80 MHz;內(nèi)置 8 KB的 Flash,512 B的 RAM和 2 KB的 EEPROM;3個 16 bit定時器/計數(shù)器,一個6向量二級中斷結(jié)構(gòu)。
STC89C52的P0口作為普通I/O口使用,與12864液晶顯示器 DB0~DB7數(shù)據(jù)口相連,根據(jù)P0口硬件特點在其外部須接上拉電阻。
時鐘電路采用內(nèi)部時鐘方式,為單片機系統(tǒng)提供時鐘信號。
圖2 STC89C52單片機系統(tǒng)
復(fù)位電路采用上電自動復(fù)位和按鍵復(fù)位的方式,只要保證加到RST引腳的高電平持續(xù)時間大于2個機器周期就能使單片機正常復(fù)位[3]。
測溫電路的傳感器選用PT100鉑電阻溫度傳感器。鉑電阻具有以下特點[1,4]:(1)準(zhǔn)確度高,測試范圍寬,適于不同介質(zhì);(2)性能穩(wěn)定,鉑電阻無論在氧化環(huán)境或是在高溫下的物理和化學(xué)性質(zhì)都非常穩(wěn)定;(3)鉑電阻的重復(fù)性非常好,它的長期重復(fù)穩(wěn)定性可達(dá)10-4K。
在0℃~100℃測溫范圍之內(nèi),PT100鉑電阻阻值與溫度近似滿足線性關(guān)系式:
其中,Rt是 t℃時的 PT100電阻值;R0是 0℃時的 PT100電阻值,查表得 100 Ω;A=3.908 02×10-3℃。
測溫電路由圖3、圖4和圖5所示的電路組成。
圖3由TL431和周邊元件組成恒壓源,恒定輸出Vout=2.55 V至圖5的運放反向輸入端。
圖3 恒壓源恒定輸出2.55 V
圖4中的9013和TL431組成恒流源,在PT100上流過2.55 mA的恒定電流,并將PT100隨溫度變化的電阻轉(zhuǎn)換為電壓, 再放大10倍 (Vout2表示),輸出至圖5運放的正向輸入端。Vout2的表達(dá)式為:
圖5構(gòu)成差分運算放大電路,Vout的表達(dá)式為:
圖4 PT100將溫度轉(zhuǎn)換為電壓
圖5 差分放大電路
式(3)實現(xiàn)了溫度-電阻-電壓的線性轉(zhuǎn)換,其中,T=0~100℃,Vout=0~5 V,Vout輸出至 A/D 轉(zhuǎn)換器。
A/D轉(zhuǎn)換電路由ADC0832組成,ADC0832具有以下特點:它是一種逐次比較型、雙通道A/D轉(zhuǎn)換、8 bit分辨率、5 V電源供電時輸入電壓在0~5 V之間、工作頻率為 250 kHz、轉(zhuǎn)換時間為 32 μs、輸入/輸出電平與 TTL/CMOS 相 兼 容[5]。
ADC0832與單片機接口如圖6所示。其工作過程為單片機P20輸出低電平使有效,且保持該低電平直至轉(zhuǎn)換結(jié)束;A/D轉(zhuǎn)換時,單片機P22引腳向芯片時鐘輸入端CLK輸出250 kHz的時鐘信號;單片機P21引腳輸出通道選擇控制字,而后ADC0832按照時序?qū)⑥D(zhuǎn)換結(jié)果由D0輸出至單片機。
圖6 ADC0832與單片機接口
系統(tǒng)需同時顯示實測溫度、數(shù)字/指針式時間,顯示信息量大,因此選擇LCD12864 (ST7920)點陣圖形液晶顯示屏。LCD12864與單片機接口電路如圖7所示。
圖7 LCD12864與單片機接口電路
LCD12864(ST7920)具 有 以 下 特 性[6]:(1)4 bit/8 bit并行、2線或3線串行等多種接口方式;(2)顯示分辨率為 128×64, 內(nèi)置 8 192個 16×16點漢字和 128個 16×8點 ASCII字符集;(3)接口方式靈活、簡單,可方便地構(gòu)成中英文式人機交互圖形界面。
LCD12864(ST7920)由 DDRAM (顯示數(shù)據(jù) RAM)、CGROM (字型產(chǎn)生 ROM)、CGRAM (自定義字型產(chǎn)生RAM)和 GDRAM(繪圖 RAM)等組成,實現(xiàn)顯示字符和圖形的功能。
DDRAM模塊提供64×2個位元組的空間,最多可控制4行 16字(64個字)的中文字型顯示,當(dāng)寫入顯示數(shù)據(jù)RAM時,可分別顯示CGROM與CGRAM的字型;該模塊可顯示HCGROM字型 (半角)、CGRAM字型及CGROM的中文字型3種字型。液晶顯示器屏幕坐標(biāo)(AC地址)與DDRAM地址的對應(yīng)關(guān)系如表1所示。
表1 液晶屏幕坐標(biāo)(AC地址)與DDRAM地址的對應(yīng)關(guān)系表
CGRAM模塊提供4組16×16點的自定義圖像空間,可以將內(nèi)部字型沒有提供的圖像字型自行定義到CGRAM中,便可和CGROM中的定義一樣通過DDRAM顯示在屏幕中。
GDRAM提供64×32個字節(jié)的空間,實際可控制128×64點陣的二維繪圖緩沖空間。GDRAM的二維地址與液晶屏幕坐標(biāo)的對應(yīng)關(guān)系如圖8所示。
報警電路由 PNP三極管(9012)、蜂鳴器及單片機的控制引腳(P21)組成。當(dāng)溫度超限,P21引腳輸出一定頻率的信號,觸發(fā)蜂鳴器工作從而實現(xiàn)報警。報警電路如圖9所示。
圖8 GDRAM二維地址與液晶屏幕坐標(biāo)的對應(yīng)關(guān)系圖
2.4.2 鍵盤電路
鍵盤電路采用中斷和查詢相結(jié)合的方式設(shè)定溫度和調(diào)整時間。系統(tǒng)由4個按鍵組成,分別對應(yīng)溫度/時間設(shè)定的功能選擇,數(shù)字增加和減少的調(diào)節(jié)。當(dāng)有鍵按下時,負(fù)跳變引起INT1中斷,再查詢具體按鍵并執(zhí)行相應(yīng)功能。這種結(jié)構(gòu)既擴充了外部中斷源,減少了CPU的工作負(fù)擔(dān),又能對按鍵進行實時處理。鍵盤電路如圖10所示。
圖9 報警電路
圖10 鍵盤電路
2.4.3 電源電路
LM7805三端集成穩(wěn)壓器和濾波電容組成電源電路,為整個系統(tǒng)提供穩(wěn)定的工作電壓。電源電路如圖11所示。
圖11 穩(wěn)壓電路
主程序流程如圖12所示。
圖12 系統(tǒng)流程圖
液晶顯示器的讀/寫數(shù)據(jù)和數(shù)字/字符、數(shù)字/指針式時鐘顯示等功能由驅(qū)動函數(shù)和界面顯示函數(shù)完成。
驅(qū)動函數(shù)包括:忙檢測 TestLcdIdle()、寫入命令WriteLcdCommand()、寫入數(shù)據(jù) WriteLcdData()以及讀出數(shù)據(jù) ReadLcdData()。
界面顯示函數(shù)包括:數(shù)字/字符顯示DisplayDdramChar()、自定義字符顯示 DrawGdramSelfChar()以及描點/畫線/畫圓 SetGdramDot()/DrawGdramLine()/DrawGdramCircle。
啟動ADC0832的溫度轉(zhuǎn)換和數(shù)據(jù)傳輸必須嚴(yán)格按照其時序進行,溫度采集函數(shù)包括:
(1)ReadAdc0832()。 用來初始化 ADC0832/0 號通道選擇/A/D轉(zhuǎn)換/轉(zhuǎn)換結(jié)果讀兩次,比較是否一致,如相等保留,否則舍棄。
(2)DisplayPt100Tempe()。用來轉(zhuǎn)換并顯示實測溫度。
(3)DisplayPt100AlarmTempe()。用來顯示設(shè)定的上限溫度值。
主函數(shù)包括初始化液晶顯示器以及定時/計數(shù)器等模塊,而后調(diào)用溫度采集、界面顯示等函數(shù)。
(1)初始化
(2)時間/日期設(shè)定,日期和靜態(tài)指針時鐘顯示:
系統(tǒng)實際運行結(jié)果如圖13所示。
圖13中,陽歷日期的格式為年/月/日。數(shù)字時鐘的格式為“小時:分鐘:秒”。 “S:30℃”代表設(shè)定的上限溫度值;“>”代表上限溫度值與實測溫度值的大小關(guān)系;“23.42℃”代表實測溫度值。指針時鐘的圓心以GDRAM模式的坐標(biāo)(0,0)為起點,坐標(biāo)為(96,32),時鐘半徑為31;秒針、分針、時針以實際時鐘方式運行。
圖13 系統(tǒng)實際運行圖片
時間和上限溫度值可通過程序或鍵盤設(shè)定。采用去極值平均值濾波法采集溫度值,實測溫度的誤差范圍在±0.5℃/100℃之內(nèi)。
經(jīng)過實際運行,系統(tǒng)測溫的精度、超限報警和界面顯示等功能達(dá)到設(shè)計要求,整個電路簡單實用、穩(wěn)定可靠。
[1]謝偉,文小玲.鉑電阻測溫非線性補償?shù)难芯縖J].國外電子元件,2007(1):15-17.
[2]http://www.mcu-memory.com/index.htm,2012-06-01.
[3]張毅剛,彭喜元.單片機原理與應(yīng)用設(shè)計[M].北京:電子工業(yè)出版社,2010.
[4]孫傳友,翁惠輝.現(xiàn)代檢測技術(shù)及儀表[M].北京:高等教育出版社,2008.
[5]http://www.national.com/ds/AD/ADC0832.pdf,2012-06-01.
[6]http://wenku.baidu.com/view/f3e57c0f7cd184254b3535f6.html,2012-06-01.