基于MSP430F149單片機的人機界面設計
近年來(lái),隨著(zhù)電子技術(shù)和集成電路制造工藝的飛速發(fā)展,越來(lái)越多的領(lǐng)域應用到以單片機為控制核心的現代智能儀器設備,如果在這些以單片機為核心的控制系統中配上人機交互界面,通過(guò)液晶顯示器和按鍵配合操作可更方便有效地完成各種功能選擇、參數設置和分析結果顯示,采用漢字顯示菜單,界面友好且直觀(guān)。隨著(zhù)液晶顯示技術(shù)的進(jìn)步,高質(zhì)量的點(diǎn)陣液晶顯示模塊由于具有顯示信息豐富、功耗低、體積小、質(zhì)量小、無(wú)輻射以及使用壽命長(cháng)等優(yōu)點(diǎn)被日趨廣泛地應用于各種嵌入式系統中,同時(shí)低功耗特性也貫穿于中文人機界面的設計始終?,F以電力系統配電變壓器監測終端(TTU)的人機交互部分為例,介紹一種使用OCM12864-3型圖形點(diǎn)陣液晶顯示模塊實(shí)現中文窗口菜單界面的方法。 1 系統的硬件結構
1.1 MSP430F14X微控制器簡(jiǎn)介
MSP430F14X微控制器是德州儀器公司新開(kāi)發(fā)的一類(lèi)具16位總線(xiàn)的單片機,它基于真正的正交16位RISCCPU內核,具有16個(gè)可單周期全尋址的16位寄存器,僅27條的精簡(jiǎn)指令以及7種均采用雙重取數據技術(shù)(DDFT)的一致性尋址方式。DDFT技術(shù)利用每個(gè)時(shí)鐘脈沖對存儲器進(jìn)行兩次數據存取操作,從而不再需要復雜的時(shí)鐘乘法和指令流水線(xiàn)方案。MSP430F14X系列MCU具有豐富的片上外圍模塊,片內包括有精密硬件乘法器、多達60KB的FLASH,2KB的RAM、1個(gè)看門(mén)狗、6個(gè)P口(P1和P2還具有中斷功能)、12位A/D轉換器、2個(gè)16位定時(shí)器、高精度比較器、高速的USART通信端口,1個(gè)DCO內部振蕩器和2個(gè)外部時(shí)鐘等常用資源,可實(shí)現對液晶顯示器的檢測、解調和顯示。與現代程序設計技術(shù)以及高級語(yǔ)言(如C語(yǔ)言)結合使用,使得MSP430的體系結構更加高效,從而在工程技術(shù),特別是PDA產(chǎn)品開(kāi)發(fā)中得以廣泛應用 [1]。
1.2 OCM12864-3型液晶顯示模塊簡(jiǎn)介
OCM12864是一種128×64點(diǎn)陣(EL背光)的液晶顯示器。它由兩片帶控制器的列驅動(dòng)電路KS0108和一片行驅動(dòng)電路KS0107組成主要硬件電路,KS0108將控制顯示屏分為左右半屏,通過(guò)CS1,CS2選擇。整個(gè)屏從上到下64行分為8頁(yè),每列8行頁(yè)地址范圍為B8H-BFH,列地址范圍為40H-7FH,數據為縱向讀寫(xiě),即每頁(yè)的第一行對應D0,第八行對應D7。每個(gè)驅動(dòng)芯片帶有64×64位(512 B)的RAM緩沖區,其中存儲的數據即為被顯示內容的點(diǎn)陣信息。通過(guò)選擇對應的RAM 頁(yè)地址和列地址,微控制器可以訪(fǎng)問(wèn)全部RAM 字節。顯示RAM 的每一位對應顯示屏上的一個(gè)點(diǎn)。顯示的實(shí)現,就是顯示RAM 內容中相應位為1,該點(diǎn)陣亮,相應位為0,該點(diǎn)陣無(wú)顯示。對存儲器的讀取是從頭至尾的,但在屏幕上顯示的位置是可以設置的,通過(guò)對顯示起始行的設定來(lái)設定顯示位置[2]。
1.3 硬件接口電路
由于該款液晶顯示屏將接口電路直接引出,因此對于用戶(hù)而言,整體設計大大簡(jiǎn)化,只需考慮單片機與接口電路間的連接即可。MSP430F149與OCM12864 的線(xiàn)路連接如圖1所示。該款液晶顯示模塊有13條信號線(xiàn):(1)DB0一DB7:數據總線(xiàn)。(2)CS:片選信號,低電平有效。當單片機訪(fǎng)問(wèn)OCM-12864時(shí),將其置低。(3)RS:數據/指令選擇信號,高電平:數據 D0-D7將送入顯示RAM;低電平:數據 D0-D7將送入指令寄存器執行。(4)R/W:讀 寫(xiě)選擇信號,高電平:讀數據;低電平:寫(xiě)數據。 (5)E:讀寫(xiě)使能信號,高電平有效,下降沿鎖定數據。(6)RET:復位信號,低電平有效[3]。
由于MSP430的I/O口都是復用端口,因此必須將用到的引腳設為輸入/輸出口。此外,MSP430是3.3供電,而LCD是5V驅動(dòng)的,我們可以在MSP430的輸出口對地接3.6V的嵌位二極管,在保證MSP的端口電壓不超過(guò)極限值的前提下,實(shí)現MSP430到LCD的電平轉換. 2 系統的軟件設計
2.1基本驅動(dòng)函數編寫(xiě)首先使用C語(yǔ)言在頭文件中對OCM12864控制線(xiàn)進(jìn)行定義,然后編寫(xiě)LCD驅動(dòng)函數,這些函數包括模塊初始化、寫(xiě)指令代碼、寫(xiě)顯示數據、讀顯示數據、寫(xiě)菜單項、清屏、清頁(yè)等函數。
2.2 LCD顯示菜單設計
2.2.1菜單界面設計 本系統應用于無(wú)功補償控制器,要求顯示電網(wǎng)三相電壓、電流值,無(wú)功功率、有功功率、無(wú)功因數,20次的電壓諧波含量,無(wú)功補償控制方式自動(dòng)/手動(dòng)選擇,參數設置等。針對顯示要求把整個(gè)系統設計成多級屏幕(窗口),又設計成多級主菜單,類(lèi)似的功能放在一個(gè)主菜單菜單項下構成子菜單目錄。如果菜單目錄項過(guò)多,多屏顯示此菜單目錄。通過(guò)分級,使操作人員能很直觀(guān)快速找到自己當前需要的菜單項,液晶屏菜單界面設置如圖2所示。
2.2.2建表
字符或數字在點(diǎn)陣液晶中的顯示是通過(guò)寫(xiě)相應的內碼(1點(diǎn)亮,0滅)實(shí)現的,結合整個(gè)菜單設計,需要顯示的文字并不多,可以先做好碼表,把用到的漢字對應的內碼保存在一個(gè)名為HZ_TAB的表中,每個(gè)16xl6點(diǎn)陣的字符需要32個(gè)byte表示;把要用到的數字0~9和字母對應的16x8點(diǎn)陣內碼保存在一個(gè)名NUM_JAB的表中,每個(gè)需要16個(gè)byte表示;把圖片保存在PIC_TAB表中,需要byte數根據大小而定。16x16點(diǎn)陣漢字和16x8點(diǎn)陣數字、字母和任意大小黑白圖片字模數據庫可由專(zhuān)門(mén)的字模提取軟件提取字模建立。
評論