女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 顯示光電 > 顯示光電
[導(dǎo)讀]在以單片機(jī)為核心的嵌入式應(yīng)用中,友好的人機(jī)互界面起著十分重要的作用。

    摘要:在以單片機(jī)為核心的嵌入式應(yīng)用中,友好的人機(jī)互界面起著十分重要的作用。筆者在設(shè)計(jì)中使用WGM-12864B圖形LCD模塊實(shí)現(xiàn)一種中文窗口菜單界面,設(shè)計(jì)中使用的方法具有普遍性意義。

    關(guān)鍵詞:人機(jī)交互界面 圖形LCD模塊 數(shù)據(jù)結(jié)構(gòu) 窗口 菜單

隨著液晶顯示技術(shù)的進(jìn)步,高質(zhì)量的液晶顯示模塊會被日趨廣泛地應(yīng)用于各種嵌入式系統(tǒng)中。在系統(tǒng)整體設(shè)計(jì)中,人機(jī)交互界面的設(shè)計(jì)往往占據(jù)著很大一部分工作,現(xiàn)以某嵌入式系統(tǒng)的人機(jī)交互部分為例,介紹一種使用WGA-12864B圖形LCD模塊實(shí)現(xiàn)中文窗口菜單界面的方法。

1 圖形LCD模塊WGM-12864簡介

WGM-12864B模塊是單色圖形點(diǎn)陣液晶顯示模塊,點(diǎn)陣數(shù)為64×128,其點(diǎn)陣存儲區(qū)如圖1所示。

模塊點(diǎn)陣分為左右兩邊,左右兩邊的結(jié)構(gòu)是完全一樣的。對模塊的點(diǎn)陣存儲區(qū)進(jìn)行讀寫操作時(shí),由CS1、CS2進(jìn)行片選,高電平有效。模塊中每8行為1頁,頁地址由X確定;Y確定點(diǎn)陣的列號,點(diǎn)陣數(shù)據(jù)的每一個(gè)字節(jié)所在的位置由(CSi,X,Y)唯一確定。字節(jié)中的每一位對應(yīng)著相應(yīng)的像素,為1顯示該像素;為0則不顯示。液晶顯示模塊工作時(shí),逐行掃描點(diǎn)陣存儲區(qū)。首先被掃描的行顯示在LCD屏幕的第1行上,其余行則依次順序顯示?!皰呙杵鹗夹小笨梢酝ㄟ^Z地址寄存器來設(shè)置。Z可以是0~63的任意一行,如Z=56時(shí),則顯示在LCD屏幕上的次序從上到下分別為:

56,57,…,62,63,0,1,2,…,54,55

該模塊的這一功能為窗口的滾屏提供了便利。

2 人機(jī)界面的硬件接口設(shè)計(jì)

系統(tǒng)擴(kuò)展了1片8255A作為人機(jī)界面的接口,硬件接口電路如圖2所示。8255A的A口連接圖形LCD的8位數(shù)據(jù)線,B口低6位連接相應(yīng)的控制線,D/I表示數(shù)據(jù)總線上的信號是點(diǎn)陣數(shù)據(jù)還是控制命令字,R/W表示當(dāng)前操作是讀或?qū)懖僮?,E是使能控制端,RST是復(fù)位端,CS1、CS2是左右點(diǎn)陣區(qū)選端。以行掃描方式擴(kuò)展鍵盤接口,C口高半字節(jié)接行線,低半字節(jié)接列線。8255A初始化時(shí),定義A、B口為方式0輸出;C口高半字節(jié)為方式0輸出,低半字節(jié)為方式0輸入。請注意,大多數(shù)類型的8255芯片在對其方式控制寄存器進(jìn)行初始化時(shí),會引起A、B、C口清零,故不要在程序中動(dòng)態(tài)改變8255端口的輸入輸出方式,以免影響LCD和鍵盤。

3 用戶界面的軟件設(shè)計(jì)

人機(jī)交互界面設(shè)計(jì)的目標(biāo)是實(shí)現(xiàn)中文窗口界面,用戶可以在菜單方式下進(jìn)行交互。窗口分為兩類:對話框和菜單,也包括對話框和菜單的混合。對話框用于參數(shù)的輸入輸出顯示;菜單用于響應(yīng)用戶的選擇,根據(jù)用戶的選擇運(yùn)行程序。

首先,應(yīng)當(dāng)確定系統(tǒng)需要多少個(gè)窗口,每個(gè)窗口有多少個(gè)菜單,畫出窗口之間的變遷圖,可以知道所有的窗口應(yīng)當(dāng)組成一個(gè)樹形結(jié)構(gòu)。菜單中的漢字大小為16×16的點(diǎn)陣,數(shù)字和符號的大小為16×8的點(diǎn)陣。這些點(diǎn)陣數(shù)據(jù)可以由點(diǎn)陣提取程序獲得。點(diǎn)陣數(shù)為64×128的LCD模塊只能同時(shí)顯示4個(gè)菜單項(xiàng),每個(gè)菜單項(xiàng)點(diǎn)據(jù)256個(gè)字節(jié)的點(diǎn)陣存儲空間。窗口多于4個(gè)菜單項(xiàng)時(shí),應(yīng)當(dāng)使用滾屏功能。為方便數(shù)據(jù)的安排,系統(tǒng)規(guī)定了參數(shù)、菜單、窗口及LCD緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu)。

(1)數(shù)據(jù)結(jié)構(gòu)

為方便參數(shù)的顯示和處理,參數(shù)的輸入輸出格式用類似于分離BCD碼來表示,數(shù)據(jù)結(jié)構(gòu)如圖3所示。數(shù)據(jù)長度表示數(shù)據(jù)區(qū)的字節(jié)數(shù)。正負(fù)標(biāo)志,為1表示負(fù)數(shù),為0表示正數(shù),負(fù)數(shù)在輸入都要在數(shù)據(jù)前面加上負(fù)號“-”。數(shù)據(jù)區(qū)的每一字節(jié)對應(yīng)于參數(shù)的每一位數(shù)。數(shù)字用分離BCD碼表示,小數(shù)點(diǎn)用ASCII碼表示?!皵?shù)據(jù)長度”域占1個(gè)字節(jié)時(shí),此數(shù)據(jù)結(jié)構(gòu)可以表示最多255位的數(shù)據(jù)。

菜單點(diǎn)陣的數(shù)據(jù)結(jié)構(gòu)如圖4所示。菜單序號表示該菜單在該窗口所有菜單中的次序;菜單長度表示該菜單項(xiàng)中漢字的個(gè)數(shù),菜單點(diǎn)陣數(shù)據(jù)區(qū)存放的是菜單中漢字的點(diǎn)陣,每一個(gè)漢字都是16×16的點(diǎn)陣;參數(shù)標(biāo)志為0表示沒有參數(shù),為1表示此菜單項(xiàng)是對話框,后面跟著參數(shù)。參數(shù)存放在參數(shù)指針域指向的內(nèi)存中,若是系統(tǒng)參數(shù),則要預(yù)先從E2PROM讀到內(nèi)存中。由于系統(tǒng)是16位尋址的存儲空間,所以用2個(gè)字節(jié)存放指針。參數(shù)存放格式如圖3所示。

窗口點(diǎn)陣的數(shù)據(jù)結(jié)構(gòu)如圖5所示,其中用到了菜單數(shù)據(jù)結(jié)構(gòu),窗口中使用到的菜單項(xiàng)依著菜單序號順次存放,各域的含義是顯而易見的。注意,窗口的點(diǎn)陣數(shù)據(jù)是事先按照此格式建立的,系統(tǒng)中所有窗口以此格式存放非易失存儲介質(zhì)中,如ROM。以此格式,系統(tǒng)可以有255個(gè)窗口,每一個(gè)窗口可以多達(dá)255個(gè)菜單項(xiàng)。

系統(tǒng)在內(nèi)存中特定區(qū)域開壁了1個(gè)LCD顯示緩沖區(qū),將要顯示的整個(gè)窗口的點(diǎn)陣數(shù)據(jù)按下列格式拼裝好以后存放在此區(qū)間。LCD的顯示程序從此區(qū)間中讀取數(shù)據(jù)到LCD點(diǎn)陣數(shù)據(jù)存儲區(qū),LCD顯示程序正是憑借此數(shù)據(jù)結(jié)構(gòu)管理用戶交互界面。每個(gè)菜單項(xiàng)除了漢字和參數(shù)的點(diǎn)陣外,其余的空間用00H補(bǔ)齊為256字節(jié)。對話框中顯示的參數(shù),可以依據(jù)菜單數(shù)據(jù)結(jié)構(gòu)中的參數(shù)指針域檢索到數(shù)據(jù),然后把它譯碼成為可以顯示的16×8的點(diǎn)陣數(shù)據(jù)。LCD緩沖區(qū)數(shù)據(jù)結(jié)構(gòu)如圖6所示。當(dāng)前菜單域指的是當(dāng)有獲得焦點(diǎn)的菜單序號,需要反顯,主要用于光標(biāo)管理。顯示中的菜單項(xiàng)序號分別對應(yīng)著當(dāng)前LCD點(diǎn)陣存儲區(qū)中的4個(gè)菜單項(xiàng),這些數(shù)據(jù)主要用于滾屏操作。其余各域和上述類似。

(2)人機(jī)交互設(shè)計(jì)

人機(jī)交互設(shè)計(jì)的重點(diǎn)在于窗口界面的顯示、滾屏、光標(biāo)的管理及參數(shù)的顯示、修改和保存。現(xiàn)在只介紹窗口的滾虐和參數(shù)的輸入輸出顯示。僅當(dāng)窗口的菜單數(shù)大于4的時(shí)候,才用到滾屏操作。為提高系統(tǒng)響應(yīng)的速度,窗口在滾屏?xí)r只將新的菜單點(diǎn)陣數(shù)據(jù)讀入LCD點(diǎn)陣存儲 ,其余3個(gè)菜單的點(diǎn)陣數(shù)據(jù)保持不變。圖7所示的窗口滾屏過程中LCD點(diǎn)陣存儲區(qū)的快照以及LCD屏上顯示的菜單次序,從A到E的滾屏每一步都是可逆的??梢园l(fā)現(xiàn),每一步相鄰的操作,只要將1個(gè)即將顯示的菜單項(xiàng)點(diǎn)陣數(shù)據(jù)寫入LCD點(diǎn)陣存儲區(qū),圖中加黑框的菜單項(xiàng)就是新寫入的。當(dāng)向下滾屏?xí)r,從LCD顯示緩沖區(qū)中“顯示中的菜單項(xiàng)”域檢索出菜單序號最小的項(xiàng),把新的菜單序號插入此位置,從顯示緩沖區(qū)的“菜單點(diǎn)陣數(shù)據(jù)”域把菜單的點(diǎn)陣數(shù)據(jù)讀到LCD點(diǎn)陣存儲區(qū)中相應(yīng)位置。然后再檢索更新后的“顯示中的菜單項(xiàng)”域,找出最小菜單項(xiàng)所在的行號,設(shè)置掃描起始行Z為此行號,圖中箭頭指向的位置即為掃描起始行。最后要更新的域是“當(dāng)前菜單項(xiàng)”,用于光標(biāo)顯示管理。當(dāng)向上滾屏?xí)r,操作是類似的,不同的是要替換出“顯示中的菜單項(xiàng)”域中序號最大的菜單項(xiàng)。

參數(shù)的輸入輸出顯示是人機(jī)交互界面中的重要環(huán)節(jié)。顯示的參數(shù)來自鍵盤輸入或系統(tǒng)內(nèi)部,數(shù)據(jù)的流向如圖8所示。參數(shù)依據(jù)圖3對應(yīng)的數(shù)據(jù)格式存放到參數(shù)指地所指的內(nèi)存中,然后啟動(dòng)窗口更新即可。若該參數(shù)需要保存,則存入對應(yīng)的E2PROM地址中。本系統(tǒng)使用X5045作為E2PROM,同時(shí)兼作看門狗。

4 結(jié)論

本文主要從數(shù)據(jù)結(jié)構(gòu)的角度出發(fā),結(jié)合器件的特片,提出了圖形LCD在嵌入式應(yīng)用中解決人機(jī)交互問題的一般方法,實(shí)現(xiàn)了中文窗口菜單,解決了參數(shù)的輸入、顯示、修改和保存。文中的方法具有非常好的靈活性和良好的可維護(hù)性,程序員可以在需要的時(shí)候方便地修改原有窗口或者加入新的窗口,而不至于影響系統(tǒng)軟件原有的結(jié)構(gòu)。這些便利都得益于系統(tǒng)定義了合理的數(shù)據(jù)結(jié)構(gòu)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

隨著電動(dòng)汽車產(chǎn)業(yè)的蓬勃發(fā)展,充電樁作為電動(dòng)汽車能量補(bǔ)給的關(guān)鍵基礎(chǔ)設(shè)施,其重要性日益凸顯。然而,充電樁的人機(jī)交互界面(HMI)作為用戶與充電樁進(jìn)行交互的橋梁,其設(shè)計(jì)質(zhì)量直接影響到用戶的充電體驗(yàn)。本文旨在探討充電樁人機(jī)交互界...

關(guān)鍵字: 電動(dòng)汽車 充電樁 人機(jī)交互界面

在本節(jié)中,我們將探究集成模式的數(shù)組,每個(gè)模式都是為了提供無縫集成解決方案而定制的。這些模式作為結(jié)構(gòu)化的框架,促進(jìn)了不同系統(tǒng)之間的聯(lián)系和數(shù)據(jù)交換。它們大致分為三類:

關(guān)鍵字: 數(shù)據(jù)整合 數(shù)據(jù)結(jié)構(gòu)

學(xué)習(xí)C語言是程序員的入門教育,但是在學(xué)習(xí)過程中,常常會遇到一些常見的誤區(qū)。這些誤區(qū)可能會讓學(xué)習(xí)者的學(xué)習(xí)經(jīng)驗(yàn)不佳,影響到他們掌握該語言的能力。

關(guān)鍵字: C語言 數(shù)據(jù)結(jié)構(gòu)

常用的數(shù)據(jù)結(jié)構(gòu)可根據(jù)數(shù)據(jù)訪問的特點(diǎn)分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。線性結(jié)構(gòu)包括常見的鏈表、棧、隊(duì)列等,非線性結(jié)構(gòu)包括樹、圖等。

關(guān)鍵字: 數(shù)據(jù)結(jié)構(gòu) 非線性結(jié)構(gòu)

堆(heap)和棧(stack)是在計(jì)算機(jī)中常用的兩種數(shù)據(jù)結(jié)構(gòu)。它們具有不同的特點(diǎn)和用途,對于程序員來說,了解堆和棧的區(qū)別是非常重要的。

關(guān)鍵字: 內(nèi)存 數(shù)據(jù)結(jié)構(gòu)

南京2022年10月27日 /美通社/ -- 10月18日,由南瑞集團(tuán)主導(dǎo)編制的IEC國際標(biāo)準(zhǔn)《電動(dòng)汽車充電漫游服務(wù)信息交互 第2部分:用例》(IEC 63119-2:2022)正式發(fā)布。該標(biāo)準(zhǔn)的發(fā)布是南瑞集團(tuán)在國際電動(dòng)...

關(guān)鍵字: 電動(dòng)汽車充電 充電站 數(shù)據(jù)結(jié)構(gòu) 電動(dòng)汽車電池

大家都聽說過紅黑樹,也都知道紅黑樹很厲害,是計(jì)算機(jī)里面評價(jià)非常高的數(shù)據(jù)結(jié)構(gòu)。但是每當(dāng)想學(xué)習(xí)紅黑樹的時(shí)候,卻總是找不到通俗易懂很好理解的學(xué)習(xí)資料。很多書上上來就是紅黑樹的定義,然后就是紅黑樹的實(shí)現(xiàn),直接就把人給整暈了。光看...

關(guān)鍵字: 計(jì)算機(jī) 數(shù)據(jù)結(jié)構(gòu) 紅黑樹

(全球TMT2022年7月11日訊)7月7日,由徑碩科技(JINGdigital)主辦、MEC睿達(dá)會承辦的“萬數(shù)有靈·2022中國數(shù)字營銷創(chuàng)新增長峰會”在深圳舉行。作為一家營銷科技公司,徑碩科技提供的是一流的營銷軟件產(chǎn)...

關(guān)鍵字: CE DIGITAL 數(shù)字化 數(shù)據(jù)結(jié)構(gòu)

Redis為什么那么快?除了它是內(nèi)存數(shù)據(jù)庫,使得所有的操作都在內(nèi)存上進(jìn)行之外,還有一個(gè)重要因素,它實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu),使得我們對數(shù)據(jù)進(jìn)行增刪查改操作時(shí),Redis能高效的處理。因此,這次我們就來好好聊一下Redis數(shù)據(jù)結(jié)構(gòu),...

關(guān)鍵字: 數(shù)據(jù)結(jié)構(gòu) REDIS 字符串 節(jié)點(diǎn)

哈嘍,大家好,我是瓜哥,致力于分享互聯(lián)網(wǎng)各領(lǐng)域干貨。前幾天,有人問瓜哥,學(xué)習(xí)編程語言有什么好的建議沒?今天簡單和大家分享幾點(diǎn)學(xué)習(xí)編程的建議,希望可以幫助到大家。1.只要開始,就不要怕晚瓜哥經(jīng)??吹竭@些問題,大四學(xué)編程還來...

關(guān)鍵字: 編程 代碼 基礎(chǔ)知識 數(shù)據(jù)結(jié)構(gòu)
關(guān)閉