51單片機實現多級液晶顯示中文菜單

2021-01-08 電子產品世界

一、引言

本文引用地址:http://www.eepw.com.cn/article/201809/388566.htm

目前小型的顯示器主要有LCD和LED,LED顯示器只能顯示數字和有限個英文字符,不能顯示漢字,顯示內容不直觀,操作人員只能根據約定格式了解顯示內容。而LCD則可顯示各種漢字和圖形,尤其能實現中文菜單顯示,為操作者提供方便友好的操作界面,並且功耗低,因此LCD得到廣泛應用。而現在市面上帶中文字庫的LCD比比皆是,價格適中,且大部分具有與MCU統一的標準接口,為使用LCD實現中文菜單操作提供了很大的方便。相信更多的電子產品在提升性能的同時,設計更加人性化的中文菜單交互界面,將會使產品具有更廣闊的前景。

二、YM12864液晶顯示模塊簡介

YM12864漢字圖形點陣液晶顯示模塊,可顯示漢字及圖形,內置8192個中文漢字(16X16點陣)、128個字符(8X16點陣)及64X256點陣顯示RAM(GDRAM)。

主要技術參數和顯示特性:

電源:VDD 3.3V~+5V(內置升壓電路,無需負壓)顯示內容:128列×64行與MCU接口:8位或4位並行/3位串行多種軟體功能:光標顯示、畫面移位、自定義字符、睡眠模式等。

其引腳功能為通用20腳LCD接口,用戶指令集也為通用128*64LCD用戶指令集,相關資料很容易獲取。因其內置中文字庫,省去了自己造字庫的工作量,而只需寫入相應的漢字和字符內碼即可顯示所需要的漢字和字符,這在許多程序開發軟體中很容易實現,如:WAVE、KEIL等。所以使用帶中文字庫的LCD來實現中文菜單操會更加簡便。

三、原理分析

通常的人機互動界面有兩種方式,選擇菜單和輸入參數,為了便於分析,本文使用三級樹狀菜單結構。因YM12864滿屏能顯示四行、每行八個漢字,故將四個選擇或參數輸入菜單項編為一頁,不足一頁的補空格。補空格的目的是為了歸一化操作,可大大簡化程序。每一個菜單、參數輸入、空格都為固定的八個漢字空間。當頂級菜單1、頂級菜單2、頂級參數輸入3、頂級4構成一級菜單,四個菜單項為一頁同時顯示在液晶屏幕上;一級菜單1-1、一級菜單1-2、一級參數輸入1-3、一級空格1-4構成了頂級菜單1下的二級菜單,也組成一頁同時顯示在液晶屏幕上,三級菜單也是如此。使用4*4鍵盤進行操作,其中「0-9」為數字鍵,「Esc」為刪除/返回鍵,「Down」為向下選擇健,「Enter」為確定健,剩餘三個按鍵預留備用,為了不與其他程序的通用寄存器混淆,而使用89C51的第二組通用寄存器R0和R2來記錄菜單的頁碼和行碼(光標所在的菜單行)。

現通過按鍵的功能來分析多級中文菜單的原理。當按下「Down」鍵後,光標移動一行(光標所在的行表示此行顯示的菜單處於激活狀態)行碼加1,即(R2)=(R2)+1;當光標已在本級菜單的最後一項,此時按下「Down」鍵,光標回到本級菜單的首項,行碼為0,即(R2)=0.例如:光標處於二級菜單1-1-1,按下「Down」鍵,則光標移動到二級菜單1-1-2.

按下「Enter」,分兩種情況處理,如為選擇菜單,則根據頁碼和行碼的值:R0*4+R2調用下一級子菜單顯示,同時將子菜單的頁碼賦值給R0,得到子菜單的頁碼,並且使行碼R2=0,表示處於此級菜單的首項。例如:光標處於頂級菜單1,按下「Enter」鍵,則液晶顯示屏上顯示一級菜單1-1、一級菜單1-2、一級參數輸入1-3、一級空格1-4.如為參數輸入菜單,則進入相應的參數輸入對話框。例如:光標處於參數輸入1-3,按下「Enter」健,則液晶顯示屏上顯示對應的要求輸入參數的對話框(一般為數字,為了簡化程序,可採用統一的參數輸入對話框),此時輸入符合要求的參數,再按下「Enter」鍵,菜單將返回到上一級菜單,同時將輸入到YM12864液晶顯示器的數據讀出,送到相應的單元存儲,以備使用。

「Esc」鍵起到返回上一級菜單和刪除參數輸入時的錯誤輸入雙重功能,程序中只需使用一標誌位來區分選擇菜單和參數輸入菜單即可,同時修改頁碼和行碼值,即R0和R1的值。例如:液晶屏上顯示二級菜單1-1-1、二級菜單1-1-2、二級菜單1-1-3、二級空格1-1-4,此時按下「Esc」鍵,則返回到一級,屏幕上顯示一級菜單1-1、一級菜單1-2、一級參數輸入1-3、一級空格1-4.

四、硬體設計

使用89C51的P1口作為液晶顯示器的數據口,使用P0口作為鍵盤掃描埠,當然這些埠也可以使用擴展口,只需在程序的開頭修改埠的值便可。電路圖如圖1所示。

五、軟體設計

重點在於軟體的設計,而程序的關鍵又在於使用了分頁的操作方式。以下為菜單數據,按頁的方式存放,不足一頁的補空格。

由於篇幅有限,不能將所有的程序都寫出,只是將程序的框架列出,其它程序如:按鍵掃描子程序、YM12864顯示子程序可參照其它資料。實際應用時需要根據具體情況加以補充。

六、結語

本方法設計的多級中文菜單易於實現、可靠性高,並且具有一定的通用性和使用價值,實際應用時根據產品的操作要求修改上述的菜單名稱即可。當某級菜單的項目數有多頁時,為方便操作,可增加翻頁按鍵;所有菜單的頁數最大為256頁,共1024個菜單項,對於一般的系統完全夠用。


相關焦點

  • 51單片機學習筆記——液晶
    一、筆記:1.1602液晶是指每行顯示16個字符,一共可以顯示2行的液晶;
  • 一個51單片機實現數字時鐘(1602顯示)
    用單片機實現數字時鐘,關於時間顯示,是用的1602液晶,C51單片機,然後再加一個定時器,每到一秒就動態的更新一下液晶的時間顯示,在更新的時候也要計算相應的分針和時針的變化,還要注意邊界問題.為了能夠達到一個最好的效果,我還加了一個鍵盤掃描,用到了3個鍵,分別為功能鍵,增1,減1來實現用戶自定義時間.
  • 用51單片機實現pwm專題及常見問題 - CSDN
    基於51單片機脈衝寬度調製(即PWM)直流電機轉速快慢以及霍爾測速的項目一、前言1、基於51單片機脈衝寬度調製(即PWM)直流電機轉速快慢以及霍爾測速的項目包括用Keil軟體編寫單片機C語言程序和用
  • 液晶顯示器的漢字顯示方法
    摘 要: 研究了圖形液晶模塊的漢字顯示方法, 以8051 單片機為基礎, 介紹了液晶模塊與單片機的典型接口電路, 描述了通過外擴的EEPROM 存儲漢字字模數據, 將其作為外部數據存儲器進行尋址, 通過C51 程序詳細介紹了使用方法。對於程序存儲器和數據存儲器分開尋址的單片機, 該方式能起到節省程序存儲器, 擴大程序容量的作用。
  • 基於51單片機的電子音樂盒的課程設計
    1.設計目的和要求1.1 設計目的(1) 通過設計,查閱相關資料,掌握如何利用單片機設計產品,同時了解與單片機有關的軟體模擬器的使用及取字模塊軟體的使用方法。(2) 通過本課程設計鞏固並擴展單片機課程的基本概念、基本理論、分析方法和實現方法。
  • 基於ARM7微處理器的中文液晶顯示技術
    只能用於字符和數字的簡單顯示,不能滿足圖形曲線和漢字顯示的要求,而點陣式LCD不僅可以顯示字符、數字,還可以顯示各種圖形、曲線及漢字,並且可以實現屏幕上下左右滾動動畫功能,分區開窗口、反轉、閃爍等功能,用途十分廣泛,為了簡化液晶 顯示電路的設計和應用,生產廠家通常將液晶顯示單元、顯示控制器,顯示內存和顯示驅動電路等裝配在一起,做成液晶顯示模塊LCD Module(LCM)[1]。
  • 51單片機輕鬆入門與實踐 — 暢學單片機
    ,講解當前最熱門的51單片機的C程序設計!本課程打破了單片機教學的傳統模式,採取實例模塊製作的方法,從該模塊需用到的單片機理論知識,再加上該模塊用到的「器件介紹」環節,外圍電路設計講解部分以及要實現該模塊的軟體功能-編程詳解,巧妙地將單片機原理與應用、外圍電路設計、單片機C語言編程的知識點融入各個模塊項目中,不僅開闢了單片機應用的視野,又充實了對單片機從基礎到應用所需要的知識。
  • 基於狀態機的LCD多級菜單設計
    1 概述  液晶顯示器(Liquid Crystal Display,LCD)由於其體積和功耗等因素,非常適合嵌入式環境的使用。近年來,隨著微處理器性能的提高,嵌入式系統實現的功能越來越強大,產生的數據量也越來越大。相對應地,需要顯示的數據量也隨之增大。
  • 51單片機+PID算法水溫控制系統設計
    本系統設計採用基於PID算法的單片機控制來實現水溫的調控。單片機控制部分採用AT89C51單片機為核心,採用軟體編程,實現用PID算法來控制PWM波的產生,繼而控制電爐的加熱來實現溫度控制。通過編程對PID各參數的調整,來達到提高加溫速度,減小超調的目的。
  • 基於51單片機定時器的電子時鐘設計方案
    今天我們將會為大家分享一種比較基礎的電子時鐘設計方案,該方案基於51單片機定時器進行設計,精度較高,時鐘鬧鐘調節簡單。本文引用地址:http://www.eepw.com.cn/article/201808/387025.htm在本方案中,我們所設計的這種電子時鐘主要由51單片機定時器、1602LCD液晶屏等構成。在電路設計方面,該方案主要採用晶振電路作為驅動電路,晶振電路的晶振頻率為12MHZ。
  • 暢學三合一51單片機實戰教程
    ,講解當前最熱門的51單片機的C程序設計!本課程打破了單片機教學的傳統模式,採取實例模塊製作的方法,從該模塊需用到的單片機理論知識,再加上該模塊用到的「器件介紹」環節,外圍電路設計講解部分以及要實現該模塊的軟體功能-編程詳解,巧妙地將單片機原理與應用、外圍電路設計、單片機C語言編程的知識點融入各個模塊項目中,不僅開闢了單片機應用的視野,又充實了對單片機從基礎到應用所需要的知識。
  • 基於51單片機的漢字LCD智能顯示模塊設計
    引言 在電子產品設計中,人機互動顯示界面是必不可少的工作,目前一般使用的液晶顯示器均為七段筆劃式,只能顯示數字和少量字符,功能往往受到局限,對於較複雜的字符或圖形則無能為力。
  • 液晶顯示模塊MGLS240128在圖形顯示中的應用
    2 模塊工作原理2.1 基本功能MGLS240128T圖形液晶顯示模塊由控制器T6963C、列驅動器T6A39、行驅動器T6A40以及與外部設備的接口等幾部分組成,它既能顯示字符(包括中文和西文字符),又能顯示圖形,還能夠將字符與圖形混合顯示。
  • 基於C語言51單片機電子密碼鎖的設計與仿真
    電子密碼鎖通常使用ARM和單片機控制,單片機相對ARM實現較為簡單,功能較為完善,因此使用單片機控制較多。用單片機控制的窖碼鎖常使用彙編語言編寫程序,顯示器多數用。而本文所介紹的電子密獁鎖使用移植性及可讀性強的高級語言C語言編寫,便於修改和增減功能蚤同時採用顯示清楚數碼管,功率消耗小而且壽命長的 液晶顯示器,顯示更加直觀,使用更加方便。
  • 51單片機ARP協議實現原理
    中文譯做「地址解析協議」,本質是完成網絡地址到物理地址的映射。從概念上講就是找到一個映射方法f,使得「物理地址 = f(網絡地址)」。物理地址有兩種基本類型:乙太網類型和proNET令牌環網類型,網絡地址特指IP位址,對映射方法的要求就是高效。具體到乙太網,它使用的是動態綁定轉換的方法。為什麼不直接使用同一種地址,而要這麼麻煩呢?
  • 基於P89V51單片機和CD4051晶片實現4路智能溫控儀產品樣機的設計
    針對生產中常遇到的多路溫度測控問題,提出以單片機系統為核心的4路溫度測控儀表的設計方案。該系統可監控4路溫度,同時輸出控制信號直接作用於對象,而無需經變換器,節省大量成本,同時該系統設計還具有結構緊湊,測量精度高,抗幹擾能力強.測溫範圍廣。LCD中文界面友好,可遠程通訊等特點。
  • lcd1602中文資料分享:lcd1602接線圖_lcd1602與單片機連接圖
    lcd1602液晶屏是一種圖形點陣顯示器,顯示原理簡單易懂,都是液晶屏內部的液晶材料變化而顯示不同的字符,因為液晶是具有流動特性的物質,所以只需外加很微小的力量即可使液晶分子運動,以最常見普遍的向列型液晶為例,液晶分子可輕易的借著電場作用使得液晶分子轉向,由於液晶的光軸與其分子軸相當一致,故可藉此產生光學效果,而當加於液晶的電場移除消失時,液晶將借著其本身的彈性及黏性,液晶分子將十分迅速的回撤消來未加電場前的狀態
  • 樹狀菜單界面的軟體設計方案分析
    近些年來被廣泛應用於單片機控制的智能儀器、儀表和低功耗電子產品中。為LCD配置驅動電路,就形成了液晶顯示模塊LCM(Liquid Crystal Module)。它的基本組成部件除了LCD、驅動電路外一般還有連接件、背光源等。液晶顯示模塊同一個系統中的其他電路一樣,有簡單的接口,並提供了豐富的控制顯示的指令系統。為整機的開發節約了時間。
  • 51單片機實現scanf和printf函數
    學習單片機有很長時間了,之前要再屏幕上顯示一個變量或者通過串口傳出一些變量值觀測的話,需要進行一系列的取餘取整運算,很是麻煩。本文引用地址:http://www.eepw.com.cn/article/201611/318359.htm最近又研究了一下keil中針對printf和scanf的實現機理,做了一些改動,實現了標準格式化輸入輸出,共大家參考。1.
  • 安卓手機與51單片機間藍牙通信的實現
    藍牙耳機今天分享下如利用藍牙4.0模塊建立安卓手機和51單片機間的藍牙通信。(1)安卓智慧型手機一部,只用是近幾年的智慧型手機都內嵌藍牙模塊,藍牙4.0及以上(2)任意51單片機最小系統都可使用,如下文連結。