當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]本文分析MSP430F149的特點,介紹了該單片機芯片與圖形點陣液晶顯示模塊連接的硬件接口電路和如何在LCD液晶上實現(xiàn)多級菜單和多層屏幕,提出了一種利用數(shù)據(jù)結(jié)構(gòu),設(shè)計LCD液晶菜單通用方法,實現(xiàn)基于MSP430F149的液晶圖形顯示,并在此基礎(chǔ)上實現(xiàn)簡單易行的人機界面設(shè)計

0引言
近年來,隨著電子技術(shù)和集成電路制造工藝的飛速發(fā)展,越來越多的領(lǐng)域應(yīng)用到以單片機為控制核心的現(xiàn)代智能儀器設(shè)備,如果在這些以單片機為核心的控制系統(tǒng)中配上人機交互界面,通過液晶顯示器和按鍵配合操作可更方便有效地完成各種功能選擇、參數(shù)設(shè)置和分析結(jié)果顯示,采用漢字顯示菜單,界面友好且直觀。隨著液晶顯示技術(shù)的進(jìn)步,高質(zhì)量的點陣液晶顯示模塊由于具有顯示信息豐富、功耗低、體積小、質(zhì)量小、無輻射以及使用壽命長等優(yōu)點被日趨廣泛地應(yīng)用于各種嵌入式系統(tǒng)中,同時低功耗特性也貫穿于中文人機界面的設(shè)計始終?,F(xiàn)以電力系統(tǒng)配電變壓器監(jiān)測終端(TTU)的人機交互部分為例,介紹一種使用OCM12864-3型圖形點陣液晶顯示模塊實現(xiàn)中文窗口菜單界面的方法。 1 系統(tǒng)的硬件結(jié)構(gòu)
1.1 MSP430F14X微控制器簡介
MSP430F14X微控制器是德州儀器公司新開發(fā)的一類具16位總線的單片機,它基于真正的正交16位RISCCPU內(nèi)核,具有16個可單周期全尋址的16位寄存器,僅27條的精簡指令以及7種均采用雙重取數(shù)據(jù)技術(shù)(DDFT)的一致性尋址方式。DDFT技術(shù)利用每個時鐘脈沖對存儲器進(jìn)行兩次數(shù)據(jù)存取操作,從而不再需要復(fù)雜的時鐘乘法和指令流水線方案。MSP430F14X系列MCU具有豐富的片上外圍模塊,片內(nèi)包括有精密硬件乘法器、多達(dá)60KB的FLASH,2KB的RAM、1個看門狗、6個P口(P1和P2還具有中斷功能)、12位A/D轉(zhuǎn)換器、2個16位定時器、高精度比較器、高速的USART通信端口,1個DCO內(nèi)部振蕩器和2個外部時鐘等常用資源,可實現(xiàn)對液晶顯示器的檢測、解調(diào)和顯示。與現(xiàn)代程序設(shè)計技術(shù)以及高級語言(如C語言)結(jié)合使用,使得MSP430的體系結(jié)構(gòu)更加高效,從而在工程技術(shù),特別是PDA產(chǎn)品開發(fā)中得以廣泛應(yīng)用 [1]。
1.2 OCM12864-3型液晶顯示模塊簡介

   OCM12864是一種128×64點陣(EL背光)的液晶顯示器。它由兩片帶控制器的列驅(qū)動電路KS0108和一片行驅(qū)動電路KS0107組成主要硬件電路,KS0108將控制顯示屏分為左右半屏,通過CS1,CS2選擇。整個屏從上到下64行分為8頁,每列8行頁地址范圍為B8H-BFH,列地址范圍為40H-7FH,數(shù)據(jù)為縱向讀寫,即每頁的第一行對應(yīng)D0,第八行對應(yīng)D7。每個驅(qū)動芯片帶有64×64位(512 B)的RAM緩沖區(qū),其中存儲的數(shù)據(jù)即為被顯示內(nèi)容的點陣信息。通過選擇對應(yīng)的RAM 頁地址和列地址,微控制器可以訪問全部RAM 字節(jié)。顯示RAM 的每一位對應(yīng)顯示屏上的一個點。顯示的實現(xiàn),就是顯示RAM 內(nèi)容中相應(yīng)位為1,該點陣亮,相應(yīng)位為0,該點陣無顯示。對存儲器的讀取是從頭至尾的,但在屏幕上顯示的位置是可以設(shè)置的,通過對顯示起始行的設(shè)定來設(shè)定顯示位置[2]。
 
1.3 硬件接口電路
由于該款液晶顯示屏將接口電路直接引出,因此對于用戶而言,整體設(shè)計大大簡化,只需考慮單片機與接口電路間的連接即可。MSP430F149與OCM12864 的線路連接如圖1所示。該款液晶顯示模塊有13條信號線:(1)DB0一DB7:數(shù)據(jù)總線。(2)CS:片選信號,低電平有效。當(dāng)單片機訪問OCM-12864時,將其置低。(3)RS:數(shù)據(jù)/指令選擇信號,高電平:數(shù)據(jù) D0-D7將送入顯示RAM;低電平:數(shù)據(jù) D0-D7將送入指令寄存器執(zhí)行。(4)R/W:讀 寫選擇信號,高電平:讀數(shù)據(jù);低電平:寫數(shù)據(jù)。 (5)E:讀寫使能信號,高電平有效,下降沿鎖定數(shù)據(jù)。(6)RET:復(fù)位信號,低電平有效[3]。
500)this.style.width=500;" border="0" />


由于MSP430的I/O口都是復(fù)用端口,因此必須將用到的引腳設(shè)為輸入/輸出口。此外,MSP430是3.3供電,而LCD是5V驅(qū)動的,我們可以在MSP430的輸出口對地接3.6V的嵌位二極管,在保證MSP的端口電壓不超過極限值的前提下,實現(xiàn)MSP430到LCD的電平轉(zhuǎn)換. 2 系統(tǒng)的軟件設(shè)計
2.1基本驅(qū)動函數(shù)編寫首先使用C語言在頭文件中對OCM12864控制線進(jìn)行定義,然后編寫LCD驅(qū)動函數(shù),這些函數(shù)包括模塊初始化、寫指令代碼、寫顯示數(shù)據(jù)、讀顯示數(shù)據(jù)、寫菜單項、清屏、清頁等函數(shù)。
2.2 LCD顯示菜單設(shè)計
2.2.1菜單界面設(shè)計 本系統(tǒng)應(yīng)用于無功補償控制器,要求顯示電網(wǎng)三相電壓、電流值,無功功率、有功功率、無功因數(shù),20次的電壓諧波含量,無功補償控制方式自動/手動選擇,參數(shù)設(shè)置等。針對顯示要求把整個系統(tǒng)設(shè)計成多級屏幕(窗口),又設(shè)計成多級主菜單,類似的功能放在一個主菜單菜單項下構(gòu)成子菜單目錄。如果菜單目錄項過多,多屏顯示此菜單目錄。通過分級,使操作人員能很直觀快速找到自己當(dāng)前需要的菜單項,液晶屏菜單界面設(shè)置如圖2所示。


2.2.2建表

字符或數(shù)字在點陣液晶中的顯示是通過寫相應(yīng)的內(nèi)碼(1點亮,0滅)實現(xiàn)的,結(jié)合整個菜單設(shè)計,需要顯示的文字并不多,可以先做好碼表,把用到的漢字對應(yīng)的內(nèi)碼保存在一個名為HZ_TAB的表中,每個16xl6點陣的字符需要32個byte表示;把要用到的數(shù)字0~9和字母對應(yīng)的16x8點陣內(nèi)碼保存在一個名NUM_JAB的表中,每個需要16個byte表示;把圖片保存在PIC_TAB表中,需要byte數(shù)根據(jù)大小而定。16x16點陣漢字和16x8點陣數(shù)字、字母和任意大小黑白圖片字模數(shù)據(jù)庫可由專門的字模提取軟件提取字模建立。 [!--empirenews.page--]
菜單一般由西文字符和中文漢字組合而成,每一條菜單項定義一個數(shù)組Menu_string,格式如下:{菜單項字符數(shù),第一個字符在字庫中的序號,第二個字符,....}。需要注意的是, 在自建西文字庫NUM_TAB 和小漢字庫HZ_TAB 時,每個中西文字符都是各自編號的。由于中西文顯示調(diào)用同一個函數(shù),為區(qū)別中西文字符,在菜單數(shù)組編號時可以在漢字在HZ_TAB庫中的編碼前加128(0X80)作為標(biāo)識, LCD在顯示內(nèi)容時,需要判斷編號的值, 確定當(dāng)前位內(nèi)容是漢字還是西文,然后做調(diào)用相應(yīng)的處理。菜單項的反亮顯示采取的辦法是將顯示內(nèi)容的所有字模數(shù)據(jù)按字節(jié)取反后再進(jìn)行常規(guī)顯示即可。圖3為某一項中西文菜單混合顯示流程,其中m=1表示該位為漢字, m=0表示該位為ASCII字符. 
 
500)this.style.width=500;" border="0" />


2.2.3數(shù)據(jù)結(jié)構(gòu)
本系統(tǒng)采用8個按鈕來接受用戶輸入,8個按鈕為上、下、左、右、回車、退回、加、減。為方便數(shù)據(jù)顯示和處理。需要首先建立一個菜單窗口結(jié)構(gòu)體并定義一個結(jié)構(gòu)變量WinStruct,該結(jié)構(gòu)中共有11個結(jié)構(gòu)元素,分別是10個字符型和1個指針變量,指針變量指向需執(zhí)行函數(shù)。 Typedef struct{ uchar Menulndex;//當(dāng)前菜單索引號 uchar BackWinlndex;//當(dāng)前窗口的上一窗口索引號 uchar NextDnlndex;//下一個菜單索引號,按下“上,下”鍵時當(dāng)前菜單項上下移動 uchar NextUplndex;//或可修改參數(shù)數(shù)值向上下循環(huán)變化 uchar NextLIndex; //下一個菜單索引號,按下“左,右”鍵時當(dāng)前菜單項左右移動 uchar NextRtlndex;//或在可修改參數(shù)位置上左右移動 uchar Key CrState; //按下“回車”鍵時用戶選擇確認(rèn)或參數(shù)輸入確定 uchar KeyBackState; //按下“退回”鍵時用戶退出當(dāng)前窗口,返回上一窗口 uchar KeyPlus;    / / 按下“加”鍵,可修改參數(shù)加1;uchar KeyMinus;    / / 按下“減”鍵,可修改參數(shù)減1;void( CurrentOperate)();//當(dāng)前狀態(tài)應(yīng)該執(zhí)行的功能操作 }WinStruct; 菜單項在LCD上顯示,通過建立菜單項結(jié)構(gòu)體,定義一個結(jié)構(gòu)變量 MenuStruct。如下: Typedef struct{ uchar Menulndex; //當(dāng)前菜單索引號 uchar NextWinlndex;//下一窗口索引號 uchar cursor_page ://菜單項起始頁位置 uchar cursor_col;  / / 菜單項起始行位置 uchar type ; / / 菜單項顯示的數(shù)據(jù)類型,16x16或16x8點陣等 uchar *data; / / 指向顯示數(shù)據(jù)區(qū) uchar dataNum;/ / 需要顯示的數(shù)據(jù)的個數(shù) uchar black; / / 是否反顯菜單項 uchar modify ; / / 數(shù)據(jù)是否需要修改 } MenuStruct;
2.3 人機界面設(shè)計
人機交互設(shè)計的重點在于界面的顯示、滾屏、光標(biāo)的管理及參數(shù)的顯示、修改和保存。系統(tǒng)在內(nèi)存中特定區(qū)域開辟了1個LCD顯示緩沖區(qū),將要顯示的整個窗口的點陣數(shù)據(jù)存放在此區(qū)間。LCD的顯示程序從此區(qū)間中讀取數(shù)據(jù)到LCD點陣數(shù)據(jù)存儲區(qū),借此,LCD顯示程序可管理用戶交互界面。用戶可以用8個按鍵(向上、向下、向左、向右、確定、返回、加、減)在菜單方式下實現(xiàn)人機交互。
參數(shù)的輸入、輸出顯示和保存是人機交互界面設(shè)計的重要環(huán)節(jié)。
下面以第二級菜單中的參數(shù)設(shè)置為例,進(jìn)行詳細(xì)介紹。在主菜單下,將光標(biāo)移到“參數(shù)設(shè)置”,按下“確定”鍵,進(jìn)入“參數(shù)設(shè)置”菜單。顯示的內(nèi)容有:設(shè)備參數(shù),投切條件,保護(hù)定值,電容參數(shù),時鐘校準(zhǔn),通訊參數(shù),等等。
裝置出廠前已經(jīng)對各參數(shù)進(jìn)行初始化,存儲在二維數(shù)組Array[19][5]中,每個參數(shù)一行,參數(shù)每一位的值都對應(yīng)存儲在數(shù)組中的相應(yīng)位置。定義一個指針P指向Array,表示光標(biāo)的位置,當(dāng)然,進(jìn)入“參數(shù)設(shè)置”菜單時P=Array[0][0],光標(biāo)在首行的第一個X的位置,表示選中該參數(shù)位。按下“向上”、“向下”、“向左”、“向右”四個方向鍵來移動光標(biāo)到待修改的那一位數(shù)字上時,P=Array[i][j]則根據(jù)按下的鍵不同而作相應(yīng)的修改,一般如下:向上,i-1;向下,i +1;向左,j-1;向右,j+1。當(dāng)然,首先要對原來的i,進(jìn)行判斷。遇到特殊情況要特殊處理。如光標(biāo)原在某行的第一個參數(shù)位上,j= 0,按下向左的鍵則不改變光標(biāo)。
選定待修改的那一位參數(shù)后,按“修改”鍵進(jìn)行參數(shù)值的修改。過程如下:讀取光標(biāo)所在的那一位數(shù)字的值,每按一次加鍵,該值加1(在0—9之間循環(huán)),每按一次減鍵,該值減1(在0—9之間循環(huán))。修改完一位后,把改值寫入Array[i][j],移動光標(biāo)繼續(xù)修改其他的參數(shù)。一行參數(shù)修改完,經(jīng)核對無誤后按“確定”鍵(每按一次“確定”確認(rèn)一行),新的參數(shù)值被修改存入機內(nèi)對應(yīng)的EEPROM 地址中。參數(shù)全部修改完后需要重新開機,否則修改無效。3 結(jié)束語
本文構(gòu)建了基于MSP430F149、OCM12864圖形點陣液晶模塊和鍵盤的中文人機交互界面,實現(xiàn)了中文菜單顯示及參數(shù)的輸入、顯示、修改和保存等功能,完成了系統(tǒng)所要求的顯示任務(wù)。此方法也同樣適應(yīng)用于ARM7與DSP其他微控制器LCD液晶人機界面上。
本文創(chuàng)新點:充分利用了OCM12864的硬件資源,實現(xiàn)了友好的人機界面,并且文中介紹的方法具有非常好的靈活性和良好的可維護(hù)性,程序員可以在需要的時候很方便地修改菜單和增加子菜單,而不至于影響系統(tǒng)軟件原有的結(jié)構(gòu),而且在此菜單編程方法基礎(chǔ)上進(jìn)行改進(jìn),還可增加滾屏,自動翻頁等功能。

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉