色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于MSP430F14X和OCM12864-3實現中文窗口菜單界面的設計

電子設計 ? 來源:微計算機信息 ? 作者:費文坤,陶維青 ? 2021-03-20 09:12 ? 次閱讀

引言

近年來,隨著電子技術和集成電路制造工藝的飛速發展,越來越多的領域應用到以單片機為控制核心的現代智能儀器設備,如果在這些以單片機為核心的控制系統中配上人機交互界面,通過液晶顯示器和按鍵配合操作可更方便有效地完成各種功能選擇、參數設置和分析結果顯示,采用漢字顯示菜單,界面友好且直觀。隨著液晶顯示技術的進步,高質量的點陣液晶顯示模塊由于具有顯示信息豐富、功耗低、體積小、質量小、無輻射以及使用壽命長等優點被日趨廣泛地應用于各種嵌入式系統中,同時低功耗特性也貫穿于中文人機界面的設計始終。現以電力系統配電變壓器監測終端(TTU)的人機交互部分為例,介紹一種使用OCM12864-3型圖形點陣液晶顯示模塊實現中文窗口菜單界面的方法。

1 系統的硬件結構

1.1 MSP430F14X微控制器簡介

MSP430F14X微控制器是德州儀器公司新開發的一類具16位總線的單片機,它基于真正的正交16位RISCCPU內核,具有16個可單周期全尋址的16位寄存器,僅27條的精簡指令以及7種均采用雙重取數據技術(DDFT)的一致性尋址方式。DDFT技術利用每個時鐘脈沖對存儲器進行兩次數據存取操作,從而不再需要復雜的時鐘乘法和指令流水線方案。MSP430F14X系列MCU具有豐富的片上外圍模塊,片內包括有精密硬件乘法器、多達60KB的FLASH,2KB的RAM、1個看門狗、6個P口(P1和P2還具有中斷功能)、12位A/D轉換器、2個16位定時器高精度比較器、高速的USART通信端口,1個DCO內部振蕩器和2個外部時鐘等常用資源,可實現對液晶顯示器的檢測、解調和顯示。與現代程序設計技術以及高級語言(如C語言)結合使用,使得MSP430的體系結構更加高效,從而在工程技術,特別是PDA產品開發中得以廣泛應用。

1.2 OCM12864-3型液晶顯示模塊簡介

OCM12864是一種128×64點陣(EL背光)的液晶顯示器。它由兩片帶控制器的列驅動電路KS0108和一片行驅動電路KS0107組成主要硬件電路,KS0108將控制顯示屏分為左右半屏,通過CS1,CS2選擇。整個屏從上到下64行分為8頁,每列8行頁地址范圍為B8H-BFH,列地址范圍為40H-7FH,數據為縱向讀寫,即每頁的第一行對應D0,第八行對應D7。每個驅動芯片帶有64×64位(512 B)的RAM緩沖區,其中存儲的數據即為被顯示內容的點陣信息。通過選擇對應的RAM 頁地址和列地址,微控制器可以訪問全部RAM 字節。顯示RAM 的每一位對應顯示屏上的一個點。顯示的實現,就是顯示RAM 內容中相應位為1,該點陣亮,相應位為0,該點陣無顯示。對存儲器的讀取是從頭至尾的,但在屏幕上顯示的位置是可以設置的,通過對顯示起始行的設定來設定顯示位置。

1.3 硬件接口電路

由于該款液晶顯示屏將接口電路直接引出,因此對于用戶而言,整體設計大大簡化,只需考慮單片機與接口電路間的連接即可。

MSP430F149與OCM12864 的線路連接如圖1所示。該款液晶顯示模塊有13條信號線:(1)DB0一DB7:數據總線。(2)CS:片選信號,低電平有效。當單片機訪問OCM-12864時,將其置低。(3)RS:數據/指令選擇信號,高電平:數據 D0-D7將送入顯示RAM;低電平:數據 D0-D7將送入指令寄存器執行。(4)R/W:讀 寫選擇信號,高電平:讀數據;低電平:寫數據。 (5)E:讀寫使能信號,高電平有效,下降沿鎖定數據。(6)RET:復位信號,低電平有效。

基于MSP430F14X和OCM12864-3實現中文窗口菜單界面的設計

圖1 人機界面硬件接口電路

由于MSP430的I/O口都是復用端口,因此必須將用到的引腳設為輸入/輸出口。此外,MSP430是3.3供電,而LCD是5V驅動的,我們可以在MSP430的輸出口對地接3.6V的嵌位二極管,在保證MSP的端口電壓不超過極限值的前提下,實現MSP430到LCD的電平轉換。

2 系統的軟件設計

2.1 基本驅動函數編寫

首先使用C語言在頭文件中對OCM12864控制線進行定義,然后編寫LCD驅動函數,這些函數包括模塊初始化、寫指令代碼、寫顯示數據、讀顯示數據、寫菜單項、清屏、清頁等函數。

2.2 LCD顯示菜單設計

2.2.1菜單界面設計

本系統應用于無功補償控制器,要求顯示電網三相電壓、電流值,無功功率、有功功率、無功因數,20次的電壓諧波含量,無功補償控制方式自動/手動選擇,參數設置等。針對顯示要求把整個系統設計成多級屏幕(窗口),又設計成多級主菜單,類似的功能放在一個主菜單菜單項下構成子菜單目錄。如果菜單目錄項過多,多屏顯示此菜單目錄。通過分級,使操作人員能很直觀快速找到自己當前需要的菜單項,液晶屏菜單界面設置如圖2所示。

圖2 液晶屏菜單界面設置

2.2.2建表

字符或數字在點陣液晶中的顯示是通過寫相應的內碼(1點亮,0滅)實現的,結合整個菜單設計,需要顯示的文字并不多,可以先做好碼表,把用到的漢字對應的內碼保存在一個名為HZ_TAB的表中,每個16xl6點陣的字符需要32個byte表示;把要用到的數字0~9和字母對應的16x8點陣內碼保存在一個名NUM_JAB的表中,每個需要16個byte表示;把圖片保存在PIC_TAB表中,需要byte數根據大小而定。16x16點陣漢字和16x8點陣數字、字母和任意大小黑白圖片字模數據庫可由專門的字模提取軟件提取字模建立。

菜單一般由西文字符和中文漢字組合而成,每一條菜單項定義一個數組Menu_string,格式如下:{菜單項字符數,第一個字符在字庫中的序號,第二個字符,。..。}。需要注意的是, 在自建西文字庫NUM_TAB 和小漢字庫HZ_TAB 時,每個中西文字符都是各自編號的。由于中西文顯示調用同一個函數,為區別中西文字符,在菜單數組編號時可以在漢字在HZ_TAB庫中的編碼前加128(0X80)作為標識, LCD在顯示內容時,需要判斷編號的值, 確定當前位內容是漢字還是西文,然后做調用相應的處理。菜單項的反亮顯示采取的辦法是將顯示內容的所有字模數據按字節取反后再進行常規顯示即可。圖3為某一項中西文菜單混合顯示流程,其中m=1表示該位為漢字, m=0表示該位為ASCII字符。

圖3 某一項中兩文菜單混合顯示流程

2.2.3數據結構

本系統采用8個按鈕來接受用戶輸入,8個按鈕為上、下、左、右、回車、退回、加、減。為方便數據顯示和處理。需要首先建立一個菜單窗口結構體并定義一個結構變量WinStruct,該結構中共有11個結構元素,分別是10個字符型和1個指針變量,指針變量指向需執行函數。

Typedef struct{

uchar Menulndex; //當前菜單索引號

uchar BackWinlndex;//當前窗口的上一窗口索引

uchar NextDnlndex;//下一個菜單索引號,按下“上,下”鍵時當前菜單項上下移動

uchar NextUplndex;//或可修改參數數值向上下循環變化

uchar NextLIndex; //下一個菜單索引號,按下“左,右”鍵時當前菜單項左右移動

uchar NextRtlndex;//或在可修改參數位置上左右移動

uchar Key CrState; //按下“回車”鍵時用戶選擇確認或參數輸入確定

uchar KeyBackState; //按下“退回”鍵時用戶退出當前窗口,返回上一窗口

uchar KeyPlus; //按下“加”鍵,可修改參數加1;

uchar KeyMinus; //按下“減”鍵,可修改參數減1;

void( CurrentOperate)();//當前狀態應該執行的功能操作

}WinStruct;

菜單項在LCD上顯示,通過建立菜單項結構體,定義一個結構變量

MenuStruct。如下:

Typedef struct{

uchar Menulndex; //當前菜單索引號

uchar NextWinlndex;//下一窗口索引號

uchar cursor_page ://菜單項起始頁位置

uchar cursor_col; //菜單項起始行位置

uchar type ; //菜單項顯示的數據類型,16x16或16x8點陣等

uchar *data; //指向顯示數據區

uchar dataNum;//需要顯示的數據的個數

uchar black; //是否反顯菜單項

uchar modify ;//數據是否需要修改

} MenuStruct;

2.3 人機界面設計

人機交互設計的重點在于界面的顯示、滾屏、光標的管理及參數的顯示、修改和保存。系統在內存中特定區域開辟了1個LCD顯示緩沖區,將要顯示的整個窗口的點陣數據存放在此區間。LCD的顯示程序從此區間中讀取數據到LCD點陣數據存儲區,借此,LCD顯示程序可管理用戶交互界面。用戶可以用8個按鍵(向上、向下、向左、向右、確定、返回、加、減)在菜單方式下實現人機交互。

參數的輸入、輸出顯示和保存是人機交互界面設計的重要環節。

下面以第二級菜單中的參數設置為例,進行詳細介紹。在主菜單下,將光標移到“參數設置”,按下“確定”鍵,進入“參數設置”菜單。顯示的內容有:設備參數,投切條件,保護定值,電容參數,時鐘校準,通訊參數,等等。

裝置出廠前已經對各參數進行初始化,存儲在二維數組Array[19][5]中,每個參數一行,參數每一位的值都對應存儲在數組中的相應位置。定義一個指針P指向Array,表示光標的位置,當然,進入“參數設置”菜單時P=Array[0][0],光標在首行的第一個X的位置,表示選中該參數位。按下“向上”、“向下”、“向左”、“向右”四個方向鍵來移動光標到待修改的那一位數字上時,P=Array[ i ][j]則根據按下的鍵不同而作相應的修改,一般如下:向上,i-1;向下,i +1;向左,j-1;向右,j+1。當然,首先要對原來的i,進行判斷。遇到特殊情況要特殊處理。如光標原在某行的第一個參數位上,j= 0,按下向左的鍵則不改變光標。

選定待修改的那一位參數后,按“修改”鍵進行參數值的修改。過程如下:讀取光標所在的那一位數字的值,每按一次加鍵,該值加1(在0—9之間循環),每按一次減鍵,該值減1(在0—9之間循環)。修改完一位后,把改值寫入Array[ i ][j],移動光標繼續修改其他的參數。一行參數修改完,經核對無誤后按“確定”鍵(每按一次“確定”確認一行),新的參數值被修改存入機內對應的EEPROM 地址中。參數全部修改完后需要重新開機,否則修改無效。

3 結束語

本文構建了基于MSP430F149、OCM12864圖形點陣液晶模塊和鍵盤的中文人機交互界面,實現了中文菜單顯示及參數的輸入、顯示、修改和保存等功能,完成了系統所要求的顯示任務。此方法也同樣適應用于ARM7與DSP其他微控制器LCD液晶人機界面上。

本文創新點:充分利用了OCM12864的硬件資源,實現了友好的人機界面,并且文中介紹的方法具有非常好的靈活性和良好的可維護性,程序員可以在需要的時候很方便地修改菜單和增加子菜單,而不至于影響系統軟件原有的結構,而且在此菜單編程方法基礎上進行改進,還可增加滾屏,自動翻頁等功能。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 集成電路
    +關注

    關注

    5387

    文章

    11530

    瀏覽量

    361636
  • 接口
    +關注

    關注

    33

    文章

    8575

    瀏覽量

    151015
  • 顯示屏
    +關注

    關注

    28

    文章

    4483

    瀏覽量

    74241
收藏 人收藏

    評論

    相關推薦

    基于MSP430F149單片機的人機界面設計

    優點被日趨廣泛地應用于各種嵌入式系統中,同時低功耗特性也貫穿于中文人機界面的設計始終。現以電力系統配電變壓器監測終端(TTU)的人機交互部分為例,介紹一種使用OCM12864-3型圖形點陣液晶顯示模塊實現
    發表于 03-08 17:05

    MSP430F13X_14X系列中文數據手冊

    MSP430F13X_14X系列中文數據手冊
    發表于 11-24 17:00

    msp430f14x pdf

    MSP430-Hxxx-E header board provides easyway for developing and prototyping withMSP430F14x
    發表于 04-11 10:44 ?50次下載

    MSP430F13x/14x/14x1 Device Err

    MSP430F13x/14x/14x1 Device Erratasheet
    發表于 11-19 23:27 ?5次下載

    MSP430x13x, MSP430F14x, MSP430F1

    MSP430x13x, MSP430F14x, MSP430F15x, MSP430F16x Code Examples
    發表于 05-25 10:51 ?8次下載

    msp430x20x系列_C示例

    C 示例_ MSP430x13x, MSP430F14x, MSP430F15x, MSP430F16x.zi,感興趣的可以看看。
    發表于 07-12 11:54 ?7次下載

    C示例_MSP430x13x,MSP430F14x,MSP430F15x,MSP430F16x.zip

    C 示例_ MSP430x13x MSP430F14x MSP430F15x MSP430F16x
    發表于 07-12 11:54 ?17次下載

    C示例_MSP430FG43x.zip

    C 示例_ MSP430x13x MSP430F14x MSP430F15x MSP430F16x
    發表于 07-12 11:54 ?3次下載

    msp430x54x_flashwrite_04

    C 示例_ MSP430x13x MSP430F14x MSP430F15x MSP430F16x.zip
    發表于 07-12 11:54 ?4次下載

    MSP430F149開發板原理圖.pdf

    C 示例_ MSP430x13x MSP430F14x MSP430F15x MSP430F16x.zip
    發表于 07-12 11:54 ?43次下載

    基于MSP430F149開發板的C應用

    MSP430F149是TI公司推出的MSP430F14X系列單片機中目前的最高端產品。
    發表于 09-21 09:34 ?18次下載
    基于<b class='flag-5'>MSP430F</b>149開發板的C應用

    MSP430F14X微控制器簡介及基于單片機的人機界面設計

    基于MSP430F149的液晶圖形顯示,并在此基礎上實現簡單易行的人機界面設計。 由于該款液晶顯示屏將接口電路直接引出,因此對于用戶而言,整體設計大大簡化,只需考慮單片機與接口電路間的連接即可。
    發表于 12-04 09:39 ?5次下載
    <b class='flag-5'>MSP430F14X</b>微控制器簡介及基于單片機的人機<b class='flag-5'>界面</b>設計

    MSP430F47x3,MSP430F47x4 示例代碼

    MSP430F47x3,MSP430F47x4 示例代碼
    發表于 05-03 10:26 ?16次下載
    <b class='flag-5'>MSP430F47x3</b>,<b class='flag-5'>MSP430F47x</b>4 示例代碼

    MSP430x13x,MSP430F14x,MSP430F15x,MSP430F16x 示例代碼

    MSP430x13x,MSP430F14x,MSP430F15x,MSP430F16x 示例代碼
    發表于 05-03 10:50 ?19次下載
    <b class='flag-5'>MSP430x13x</b>,<b class='flag-5'>MSP430F14x</b>,<b class='flag-5'>MSP430F15x</b>,<b class='flag-5'>MSP430F16x</b> 示例代碼

    MSP430F14xMSP430F14x1、MSP430F13x混合信號微控制器數據表

    電子發燒友網站提供《MSP430F14xMSP430F14x1、MSP430F13x混合信號微控制器數據表.pdf》資料免費下載
    發表于 08-01 11:39 ?0次下載
    <b class='flag-5'>MSP430F14x</b>、<b class='flag-5'>MSP430F14x</b>1、<b class='flag-5'>MSP430F13x</b>混合信號微控制器數據表
    主站蜘蛛池模板: 漂亮的保姆5电影免费观看完整版中文 | 久久综合九色| 大胸美女裸身色诱网站| 3dbdsm变态videos高清| 中文字幕乱码亚洲无线三区| 一个人在线观看的视频| 一本之道高清视频在线观看| 亚洲免费片| 孕交videosgratis乌克兰| 一区二区三区福利视频| 怡红院美国分院一区二区| 亚洲精品无码AAAAAA片| 亚洲在线无码免费观看| 永久免费精品精品永久-夜色| 7777色鬼xxxx欧美色夫| 中文字幕日本在线mv视频精品| 亚洲欧美中文字幕高清在线| 伊人网综合在线观看| 2020国产成人免费视频| 中文字幕亚洲欧美日韩2o19| 777黄色片| 大学生第一次破女在线观看| 国产啪精品视频网免费| 久久久久毛片免费观看| 麻豆精品一区二正一三区 | 凤楼app| 国产在线一卡二卡| 伦理片2499电影伦理片| 色网址在线观看| 中文字幕a有搜索网站| 成电影人免费网站| 国拍在线精品视频免费观看| 快播黄色电影| 小xav导航| freehd另类xxxx喷水| 国产成人亚洲综合无| 女bbbbxxx孕妇| 学生无码AV一区二区三区| 78m成人亚洲| 国产欧美无码亚洲毛片| 日韩亚洲欧美中文高清|