華僑大學(xué)信息學(xué)院 周 鵬
基于STC89C52單片機(jī)的多功能數(shù)字測(cè)溫儀設(shè)計(jì)
華僑大學(xué)信息學(xué)院 周 鵬
設(shè)計(jì)了由STC89C52單片機(jī),DS1820溫度傳感器,LCD12864(ST7920)液晶顯示器組成的多功能數(shù)字測(cè)溫儀,詳細(xì)介紹了在LCD12864上顯示溫度,時(shí)間,日期等功能的原理和算法。
STC89C52;DS1820;LCD12864
要求設(shè)計(jì)一款基于單片機(jī)的多功能數(shù)字測(cè)溫儀,主要功能包括數(shù)字溫度顯示、設(shè)置溫度上下限值,并能超限報(bào)警;時(shí)鐘顯示(數(shù)字和指針),日期顯示。
系統(tǒng)主要由STC89C52單片機(jī),DS18B20溫度傳感器,鍵盤(pán)電路,LCD12864顯示器和報(bào)警電路組成(如圖1所示)。
STC89C52單片機(jī)用于實(shí)現(xiàn)算法、是整個(gè)系統(tǒng)的主控核心;LCD12864用于顯示溫度、時(shí)間和日期等參數(shù);DS18B20數(shù)字溫度傳感器用于溫度采集;鍵盤(pán)電路用于設(shè)定相關(guān)參數(shù)(上下限溫度值、時(shí)間);報(bào)警電路用于溫度超限提示。
STC89C52RC單片機(jī)系統(tǒng)(如圖2)由單片機(jī),時(shí)鐘電路,復(fù)位電路,電源電路組成。
STC89C52單片機(jī)具有抗干擾性能強(qiáng)、速度快、功耗低和指令代碼完全兼容8051單片機(jī)等特點(diǎn)。其主要參數(shù)為[1]:時(shí)鐘頻率最高可達(dá)80MHz;內(nèi)置8K字節(jié)的Flash-ROM,512字節(jié)的RAM和2K字節(jié)的E2PROM;3個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu)。
STC89C52的P0口作為普通I/O口使用,與12864液晶顯示器DB0~DB7數(shù)據(jù)口相連,根據(jù)P0口硬件特點(diǎn)在其外部須接上上拉電阻。
時(shí)鐘電路采用內(nèi)部時(shí)鐘方式,為單片機(jī)系統(tǒng)提供時(shí)鐘信號(hào)。
測(cè)溫電路的傳感器選用DS18B20數(shù)字式溫度傳感器(如圖3),它具有以下特點(diǎn)[3]:(1)可通過(guò)編程的方式實(shí)現(xiàn)9-12位的數(shù)字溫度直讀。(2)測(cè)溫范圍為-55~+125,最高12位分辨率,精度可達(dá)± 0 .5。(3)可設(shè)置超限溫度報(bào)警,并有搜索命令識(shí)別報(bào)警條件。(4)單總線(xiàn)接口,僅需一條輸入輸出線(xiàn)(DQ)就能與單片機(jī)(P2.0)進(jìn)行通信。
系統(tǒng)需同時(shí)顯示實(shí)測(cè)溫度、數(shù)字式和指針式時(shí)間,顯示信息量大,故選擇LCD12864(ST7920)點(diǎn)陣圖形液晶顯示屏(與單片機(jī)接口如圖4,其主要引腳功能表如表1)。
LCD12864(ST7920)具有以下特性[4]:(1)4位/8位并行、2線(xiàn)或3線(xiàn)串行等多種接口方式。(2)顯示分辨率為128×64,內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集。(3)接口方式靈活、簡(jiǎn)單,可方便的構(gòu)成中英文式人機(jī)交互圖形界面。
圖1 系統(tǒng)組成框圖
圖2 STC89C52單片機(jī)系統(tǒng)
LCD12864(ST7920)由DDRAM(顯示數(shù)據(jù)RAM),CGROM(字型產(chǎn)生ROM)和CGRAM(自定義字型產(chǎn)生RAM)和GDRAM(繪圖RAM)等組成,實(shí)現(xiàn)顯示字符和圖形的功能。
DDRAM模塊提供64×2個(gè)位元組的空間,最多可控制4行16字(64個(gè)字)的中文字型顯示,當(dāng)寫(xiě)入顯示數(shù)據(jù)RAM時(shí),可分別顯示CGROM與CGRAM的字型;此模塊可顯示半角英數(shù)字型(16*8)、CGRAM字型及CGROM的中文字型三種字型。液晶顯示器屏幕坐標(biāo)(AC地址)與DDRAM地址的對(duì)應(yīng)關(guān)系如表2。
CGRAM模塊提供四組16×16點(diǎn)的自定義圖象空間,可以將內(nèi)部字型沒(méi)有提供的圖象字型自行定義到CGRAM中,便可和CGROM中的定義一樣地通過(guò)DDRAM顯示在屏幕中。
GDRAM提供64*32個(gè)字節(jié)的空間,實(shí)際可控制128*64點(diǎn)陣的二維繪圖緩沖空間。GDRAM的二維地址與液晶顯示器屏幕坐標(biāo)關(guān)系如圖5所示。
3.4.1 報(bào)警電路
在小說(shuō)語(yǔ)言中,“士”字出現(xiàn)11次,值得注意的是這樣幾個(gè)特殊用法:太子丹以“勇士”指稱(chēng)所奉養(yǎng)的門(mén)客;田光褒揚(yáng)太子有“仁愛(ài)之風(fēng)”故以“天下之士”而譽(yù)之;荊軻與太子說(shuō)起“烈士之節(jié)”,又在易水送別時(shí)唱起“壯士一去兮不復(fù)還”。作品中,所謂“勇士”“天下之士”“烈士”“壯士”,均非一般的士,更非普通門(mén)客,而是那種具有為信義和公理而把生命置之度外的精神氣概的特殊的士。這些特殊的士,除了太子丹、田光、荊軻之外,還應(yīng)包括“當(dāng)車(chē)前刎頸以送”的夏扶、為除“積忿之怒”而自剄的樊于期。若以“士志于道”來(lái)衡定,概之以“志士”可也。
報(bào)警電路由PNP三極管(9012),蜂鳴器及單片機(jī)的控制引腳(P21)組成。當(dāng)溫度超限,P21引腳輸出一定頻率的信號(hào),觸發(fā)蜂鳴器工作從而實(shí)現(xiàn)報(bào)警。報(bào)警電路如圖5.1。
3.4.2 鍵盤(pán)電路
鍵盤(pán)電路采用中斷和查詢(xún)相結(jié)合的方式設(shè)定溫度和調(diào)整時(shí)間。系統(tǒng)由四個(gè)按鍵組成,分別對(duì)應(yīng)溫度/時(shí)間設(shè)定的功能選擇,數(shù)字增加和減少的調(diào)節(jié)。當(dāng)有鍵按下時(shí),負(fù)跳變引起外部中斷1中斷后,再查詢(xún)具體按鍵,并執(zhí)行相應(yīng)功能。這種結(jié)構(gòu)既擴(kuò)充了外部中斷源,減少了CPU的工作負(fù)擔(dān),又能對(duì)按鍵進(jìn)行實(shí)時(shí)處理。鍵盤(pán)電路如圖5.2。
圖3 DS18B20數(shù)字測(cè)溫電路
圖4 LCD12864顯示電路
圖5 DS18B20數(shù)字測(cè)溫電路
圖5.1 報(bào)警電路
LM7805三端集成穩(wěn)壓器和濾波電容組成電源電路,為整個(gè)系統(tǒng)提供穩(wěn)定的工作電壓。電源電路如圖5.3。
主程序流程如圖6所示。
液晶顯示器的驅(qū)動(dòng)函數(shù)和界面顯示函數(shù)實(shí)現(xiàn)讀/寫(xiě)數(shù)據(jù)和數(shù)字/字符、指針式時(shí)鐘顯示等功能。
驅(qū)動(dòng)函數(shù)包括:
圖5.2 鍵盤(pán)電路
圖5.3 穩(wěn)壓電路
圖6 系統(tǒng)流程圖
圖7 系統(tǒng)實(shí)際運(yùn)行圖片
啟動(dòng)DS18B20溫度轉(zhuǎn)換和數(shù)據(jù)傳輸必須嚴(yán)格按照其時(shí)序進(jìn)行,溫度采集函數(shù)包括:
系統(tǒng)實(shí)際運(yùn)行結(jié)果如圖7。
表1 LCD12864主要引腳功能表
表2 LCD12864主要引腳功能表
圖片中,陽(yáng)歷日期的格式為年/月/日。
數(shù)字時(shí)鐘的格式為小時(shí):分鐘:秒。
指針時(shí)鐘的圓心以GDRAM模式坐標(biāo)(0,0)為起點(diǎn),坐標(biāo)是(96,32),時(shí)鐘半徑為31;秒針,分針,時(shí)針以實(shí)際時(shí)鐘方式運(yùn)行。
時(shí)間和溫度上限值可通過(guò)程序/鍵盤(pán)設(shè)定。
經(jīng)過(guò)實(shí)際運(yùn)行,系統(tǒng)的測(cè)溫、時(shí)鐘顯示、超顯報(bào)警等功能達(dá)到設(shè)計(jì)要求,整個(gè)電路簡(jiǎn)單實(shí)用,穩(wěn)定可靠。
[1]http://www.mcu-memory.com/index.htm.
[2]張毅剛,彭喜元.單片機(jī)原理與應(yīng)用設(shè)計(jì)[M].北京:電子工業(yè)出版社,2010.
[3]http://cn.alldatasheet.com/view.jsp?Searchword=DS18B20.
[4]http://www.ceet.hbnu.edu.cn/bbs/viewthread.php?tid=7679.
周鵬(1972—),男,重慶人,華僑大學(xué)信息學(xué)院電氣系講師,主要研究方向:智能測(cè)控系統(tǒng)。