国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STC12C單片機(jī)的圖文菜單系統(tǒng)設(shè)計(jì)*

2014-07-25 07:43周鵬
關(guān)鍵詞:液晶圖文顯示器

周鵬

(華僑大學(xué) 信息學(xué)院,福建 廈門 361021)

圖文菜單界面是一種操作簡(jiǎn)便、高效的交互形式,現(xiàn)已在各類嵌入式應(yīng)用系統(tǒng)中廣泛采用,如智能電子產(chǎn)品(智能測(cè)試儀、智能手機(jī)),它成為系統(tǒng)功能的”標(biāo)準(zhǔn)配置”。隨著單片機(jī)功能的提高和帶中文字庫的液晶顯示器成本降低,單片機(jī)系統(tǒng)上應(yīng)用圖文菜單已成為可能[1]。

本文設(shè)計(jì)了基于 STC12C5A60S2(簡(jiǎn)稱 STC12C)單片機(jī)的圖文菜單交互式系統(tǒng),系統(tǒng)以圖文菜單驅(qū)動(dòng)系統(tǒng)功能(時(shí)間顯示、溫度顯示和周期/頻率顯示),系統(tǒng)操作直觀、簡(jiǎn)便。

1 系統(tǒng)硬件設(shè)計(jì)

系統(tǒng)由內(nèi)置增強(qiáng)型8051的STC12C單片機(jī)、數(shù)字溫度傳感器DS18B20、時(shí)鐘芯片DS1302、液晶顯示器LCD12864(ST7920)和獨(dú)立鍵盤電路組成,如圖 1所示。STC12C單片機(jī)運(yùn)行交互式程序,是系統(tǒng)的核心;數(shù)字溫度傳感器測(cè)試溫度;時(shí)鐘芯片輸出時(shí)間;單片機(jī)內(nèi)置的可編程計(jì)數(shù)器陣列模塊(PCA)用于測(cè)周期/頻率;液晶顯示器顯示系統(tǒng)界面和被測(cè)參數(shù)。

圖1 系統(tǒng)硬件框圖

1.1 單片機(jī)系統(tǒng)

單片機(jī)系統(tǒng)由STC12C單片機(jī)、時(shí)鐘電路和復(fù)位電路組成,如圖2所示。STC12C單片機(jī)主要參數(shù)如下[2]:內(nèi)置60 KB的Flash程序存儲(chǔ)器;片內(nèi)集成1 280 B數(shù)據(jù)存儲(chǔ)器;2個(gè) 16 bit定時(shí)器/計(jì)數(shù)器,內(nèi)置兩路 PCA模塊,可用于外部脈沖的捕捉、軟件定時(shí)和高速輸出,即實(shí)現(xiàn)外部信號(hào)的周期/頻率測(cè)試。

1.2 測(cè)周期/頻率電路

測(cè)周期/頻率電路由STC12C單片機(jī)內(nèi)置兩路可編程計(jì)數(shù)器陣列(PCA)模塊構(gòu)成,PCA工作在捕捉模式時(shí)實(shí)現(xiàn),如圖3所示。

圖2 STC12C單片機(jī)系統(tǒng)結(jié)構(gòu)圖

PCA測(cè)周期/頻率的原理為[3]:將 CAPPn或 CAPNn(n=0,1)置 1,外部信號(hào)由 P1.3(n=0)或 P1.4(n=1)輸入,同時(shí)將 CCON中的 CCFn(n=0,1)和 CCAPMn中的ECCFn(n=0,1)置 1,當(dāng)電路采樣到外部信號(hào)的邊跳沿(上跳沿、下跳沿或上/下沿),則引起中斷。如設(shè)置為上跳沿中斷,當(dāng)信號(hào)的第1個(gè)上跳沿來到,引起中斷觸發(fā)定時(shí)器T1計(jì)數(shù);當(dāng)信號(hào)的第2個(gè)上跳沿來到,引起中斷觸發(fā)定時(shí)器T1停止計(jì)數(shù);讀取計(jì)數(shù)值,根據(jù)機(jī)器周期算出被測(cè)信號(hào)的周期和頻率。

圖3 PCA模塊結(jié)構(gòu)原理圖

1.3 數(shù)字測(cè)溫/時(shí)鐘電路

數(shù)字測(cè)溫電路由數(shù)字溫度傳感器DS18B20組成,如圖4所示。它具有以下特點(diǎn)[4]:(1)測(cè)溫范圍為-55℃~+125℃,最高12位分辨率,精度可達(dá)±0.5℃;(2)可通過編程的方式實(shí)現(xiàn)9~12位的數(shù)字溫度直讀;(3)可設(shè)置超限溫度報(bào)警,并有搜索命令識(shí)別報(bào)警條件;(4)單總線接口,僅需一條輸入輸出線(DQ)就能與單片機(jī)(P1.0)進(jìn)行通信。

圖4 DS18B20數(shù)字測(cè)溫電路

時(shí)鐘電路由時(shí)鐘芯片DS1302組成,如圖5所示。它是一種高性能、低功耗、采用三線接口的實(shí)時(shí)時(shí)鐘電路,可對(duì)時(shí)間和日期進(jìn)行計(jì)時(shí)[5]。

圖5 DS1302時(shí)鐘電路

1.4 液晶顯示電路

顯示器選用帶中文字庫、內(nèi)置ST7920控制芯片的液晶顯示器LCD12864,實(shí)現(xiàn)系統(tǒng)的圖文界面和運(yùn)行狀態(tài)顯示,是重要的硬件接口。LCD12864與單片機(jī)接口電路如圖6所示。

圖6 LCD12864與單片機(jī)接口電路

LCD12864由 DDRAM(顯示數(shù)據(jù) RAM)、CGROM(字型產(chǎn)生ROM)、CGRAM (自定義字型產(chǎn)生 RAM)和GDRAM(繪圖 RAM)等組成[6],DDRAM 和 GDRAM 是本系統(tǒng)圖文菜單顯示的主要模塊。

DDRAM提供64×2個(gè)位元組的空間,最多可控制4行16字(64個(gè)字)的中文字型顯示,當(dāng)寫入顯示數(shù)據(jù)RAM時(shí),可分別顯示CGROM與CGRAM的字型;此模塊可顯示HCGROM字型 (半角)、CGRAM字型及 CGROM的中文字型3種字型。液晶顯示器屏幕坐標(biāo)(AC地址)與DDRAM地址的對(duì)應(yīng)關(guān)系如表1所示。

表1 屏幕AC地址與DDRAM地址的對(duì)應(yīng)關(guān)系表

GDRAM提供64×32 B的空間,實(shí)際可控制 128×64點(diǎn)陣的二維繪圖緩沖空間。GDRAM的二維地址與液晶屏幕坐標(biāo)的對(duì)應(yīng)關(guān)系如圖7所示。

1.5 鍵盤/報(bào)警電路

鍵盤電路由3個(gè)獨(dú)立按鍵組成,分別對(duì)應(yīng)菜單的圖標(biāo)上下移動(dòng)、確定和返回功能,如圖8所示。系統(tǒng)以巡回方式查詢是否有鍵按下并由軟件判定是何鍵按下,并執(zhí)行相應(yīng)的功能。

圖7 GDRAM二維地址與屏幕坐標(biāo)的對(duì)應(yīng)關(guān)系圖

報(bào)警電路(如圖 9所示)由 PNP三極管(9012)、蜂鳴器及單片機(jī)的控制引腳(P21)組成。當(dāng)溫度超限,P21引腳輸出一定頻率的信號(hào),觸發(fā)蜂鳴器工作從而實(shí)現(xiàn)報(bào)警。

圖8 獨(dú)立鍵盤電路

圖9 報(bào)警電路

2 系統(tǒng)軟件設(shè)計(jì)

程序采用模塊化設(shè)計(jì),流程框圖如圖10所示。

圖10 程序流程框圖

系統(tǒng)主要函數(shù)如下。

2.1 液晶顯示器函數(shù)

液晶顯示器函數(shù)包括液晶顯示器底層驅(qū)動(dòng)函數(shù)、中西文字符顯示函數(shù)和打點(diǎn)/繪線函數(shù)。

(1)驅(qū)動(dòng)函數(shù)

TestLcdIdle()、WriteLcdCommand()、WriteLcdData()和ReadLcdData()分別為液晶顯示器的忙檢測(cè)、寫入命令、寫入數(shù)據(jù)和讀出數(shù)據(jù)。

(2)中西文字符顯示函數(shù)

Set DdramDot、DisplayDdramChar()和 DrawGdramSelfChar()分別為設(shè)定顯示中文字符的坐標(biāo)起點(diǎn)、中西文字符顯示和自定義字符顯示。

(3)打點(diǎn)/繪線函數(shù)

SetGdramDot()、DrawGdramLine()和 DrawGdramCircle()分別為描點(diǎn)、畫線和畫圓。

2.2 DS18B20測(cè)溫函數(shù)

DS18B20測(cè)溫函數(shù)包括啟動(dòng)溫度轉(zhuǎn)換函數(shù)、讀寫數(shù)據(jù)函數(shù)和字符轉(zhuǎn)換函數(shù)。

InitDs18b20()、WriteOneByte()、ReadData()、DataToString()和 DisplayTEMP()分別為啟動(dòng) DS18B20、寫命令/數(shù)據(jù)、讀出溫度(實(shí)測(cè)溫度/上下限溫度)、轉(zhuǎn)換為顯示字符以及顯示實(shí)測(cè)溫度/上限溫度。

2.3 菜單操作函數(shù)

菜單操作函數(shù)包括菜單/圖標(biāo)顯示函數(shù)、鍵值獲取函數(shù)以及相應(yīng)的跳轉(zhuǎn)函數(shù)。

InitMenu()、ShowMenu()、GetKeyValue()和 GetUserChoose()分別為初始化菜單(定義一個(gè)結(jié)構(gòu)體,內(nèi)含菜單項(xiàng)目數(shù),函數(shù)指針和父/子菜單指針)、菜單界面顯示、判定/獲取鍵值函數(shù)(狀態(tài)機(jī)方式實(shí)現(xiàn)[1],以提高系統(tǒng)運(yùn)行效率)以及調(diào)用與鍵值相關(guān)函數(shù)。

3 實(shí)驗(yàn)及結(jié)論

系統(tǒng)實(shí)際運(yùn)行結(jié)果如圖11所示。

圖11 系統(tǒng)實(shí)際運(yùn)行

(1)圖 11(a)中的圖標(biāo) 指向“時(shí) 間顯示”,按 下“確定”鍵(P23)后,即跳轉(zhuǎn)到時(shí)間顯示(圖 11(b))。 圖 11(b)中,陽歷日期的格式為年/月/日;數(shù)字時(shí)鐘的格式為小時(shí):分鐘:秒;指針時(shí)鐘的圓心以屏幕坐標(biāo)(0,0)為起點(diǎn),坐標(biāo)是(96,32),時(shí)鐘半徑為 31;秒/分/時(shí)針與實(shí)時(shí)數(shù)字時(shí)鐘對(duì)應(yīng);初始時(shí)間可通過程序設(shè)定;按 “返回”(P24)即可跳回菜單界面。

圖11(d)中,“29.07℃”代表實(shí)測(cè)溫度值;“S:25℃”代表設(shè)定的上限溫度值;溫度曲線中的實(shí)線為實(shí)測(cè)點(diǎn)繪制,虛線為上限溫度值,曲線直觀地反映了實(shí)時(shí)溫度變化情況。

圖11(f)中,被測(cè)信號(hào)為信號(hào)發(fā)生器輸出的方波,周期為 100 μs~1 000 μs, 幅值為+5 V;T 為周期,f為頻率;所繪方波為被測(cè)信號(hào)的示意波形,每刻度一個(gè)周期;所測(cè)周期誤差≤5 μs。

實(shí)驗(yàn)表明,基于STC12C單片機(jī)的圖文菜單系統(tǒng)采用模塊設(shè)計(jì),系統(tǒng)運(yùn)行穩(wěn)定可靠。系統(tǒng)操作直觀、簡(jiǎn)便,功能達(dá)到預(yù)期目標(biāo),為下一步開發(fā)多級(jí)菜單系統(tǒng)奠定了基礎(chǔ)。

[1]賈志成,程敏,宋濤,等.基于狀態(tài)機(jī)的 LCD多級(jí)菜單設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(2):73-75.

[2]劉晉,王政林,薛凱方.基于STC12C5A60S2單片機(jī)的LED 顯示屏硬件設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2011,30(22):24-27.

[3]陳桂友.增強(qiáng)型 8051單片機(jī)實(shí)用開發(fā)技術(shù)[M].北京:北京航空航天大學(xué)出版社,2010.

[4]孫明利,鮑健,張爍.單總線技術(shù)及 DS18B20的溫度測(cè)量實(shí)現(xiàn)[J].大氣與環(huán)境光學(xué)學(xué)報(bào),2010,5(4):322-326.

[5]黃明強(qiáng).DS1302在單片機(jī)系統(tǒng)中的應(yīng)用[J].保定師范專科學(xué)校學(xué)報(bào),2004,17(2):30-33.

[6]田開坤.基于LCD12864顯示器的數(shù)字示波器設(shè)計(jì)[J].電子制作,2011(5):30-37.

猜你喜歡
液晶圖文顯示器
畫與理
不可壓液晶方程組的Serrin解
把顯示器“穿”在身上
《液晶與顯示》征稿簡(jiǎn)則
IDC發(fā)布《2018年P(guān)C顯示器市場(chǎng)跟蹤報(bào)告》
一種新型點(diǎn)陣顯示器的設(shè)計(jì)
液晶與顯示2015年第30卷第1期 目錄
液晶與顯示2014年第29卷第2期 目錄
圖文配
圖文配