k8凯发官网51单片机实现多级液晶显示中文菜单
浏览: 次 发布时间:2024-08-28 21:14:01
电源△★◆=:VDD 3••=.3V~+5V(内置升压电路▼▪,无需负压)显示内容★▼▷◆▽•:128列×64行与MCU接口▪▼-:8位或4位并行/3位串行多种软件功能◇•:光标显示▲●▼、画面移位▲▷◆、自定义字符■☆=、睡眠模式等▪▽▪•。
分两种情况处理•☆▷-★,得到子菜单的页码•◁,按下□◆★○“Enter△★▼□”健▷■▪□☆★,表示处于此级菜单的首项k8凯发官网○▲□◆•。
现通过按键的功能来分析多级中文菜单的原理▽▪-。当按下•◆“Down▽☆•”键后•…-◁●,光标移动一行(光标所在的行表示此行显示的菜单处于激活状态)行码加1◆-•▲,即(R2)=(R2)+1•★◆•;当光标已在本级菜单的最后一项•■□△,此时按下▼●▼△“Down…○▽▼=”键•▪,光标回到本级菜单的首项▷▲●,行码为0◆▽▷■,即(R2)=0•●-▽-.例如★◆:光标处于二级菜单1-1-1▷…◆▼,按下○□◆…▪•“Down▷▪”键•▷,则光标移动到二级菜单1-1-2•▲…•★▪.
由于篇幅有限■•…•○…,不能将所有的程序都写出★★•,只是将程序的框架列出★□○◆▪,其它程序如▼●:按键扫描子程序▷○-•▲、YM12864显示子程序可参照其它资料=▽▲●☆。实际应用时需要根据具体情况加以补充•■★▽▼•。
目前小型的显示器主要有LCD和LED☆■■•■,LED显示器只能显示数字和有限个英文字符▲▪◇☆◆,不能显示汉字▲▲,显示内容不直观▼○▼◁□▼,操作人员只能根据约定格式了解显示内容■▲。而LCD则可显示各种汉字和图形=▽■•◇,尤其能实现中文菜单显示▼○■△○■,为操作者提供方便友好的操作界面◆◆△▪▪◁,并且功耗低▼△▷☆▷▽,因此LCD得到广泛应用◇◆▪•=-。而现在市面上带中文字库的LCD比比皆是▽▲▪…●,价格适中•☆○=■,且大部分具有与MCU统一的标准接口▪▷▷,为使用LCD实现中文菜单操作提供了很大的方便=☆◇□△=。相信更多的电子产品在提升性能的同时□▼,设计更加人性化的中文菜单交互界面▽-▷-,将会使产品具有更广阔的前景○◆◇▪□。
重点在于软件的设计▽□,而程序的关键又在于使用了分页的操作方式◆◁。以下为菜单数据▪•◇,按页的方式存放●□,不足一页的补空格■◇◇▽。
则进入相应的参数输入对话框k8凯发官网▼□•▷。菜单将返回到上一级菜单●◆,如为选择菜单□▪•●▲▽,再按下=-●□◆“Enter■□”键▷◇○○,例如=■◁:光标处于参数输入1-3▪▷▲△□,按下▲▼◆▪“Enter■□”键▲=▲○,则液晶显示屏上显示一级菜单1-1▷☆-◇★、一级菜单1-2★☆-○▼◆、一级参数输入1-3◁◆、一级空格1-4▽★■==.如为参数输入菜单••▲○☆?
为了简化程序■▲,则液晶显示屏上显示对应的要求输入参数的对话框(一般为数字•-,则根据页码和行码的值••◆:R0*4+R2调用下一级子菜单显示□…!
使用89C51的P1口作为液晶显示器的数据口•△,使用P0口作为键盘扫描端口●☆△▪▲,当然这些端口也可以使用扩展口•◆▷▽•◇,只需在程序的开头修改端口的值便可■○=。电路图如图1所示…△◁。
例如…■▼=:光标处于顶级菜单1…•=--,同时将子菜单的页码赋值给R0•▪,可采用统一的参数输入对话框)▪○□,并且使行码R2=0-▽▲•,
本方法设计的多级中文菜单易于实现•●★☆◆、可靠性高◁●…●,并且具有一定的通用性和使用价值◇○▼…▪▪,实际应用时根据产品的操作要求修改上述的菜单名称即可■○。当某级菜单的项目数有多页时▪○,为方便操作▼••,可增加翻页按键◆▼;所有菜单的页数最大为256页▼■,共1024个菜单项=▽□,对于一般的系统完全够用▽•●。
其引脚功能为通用20脚LCD接口◁□▽◇●,用户指令集也为通用128*64LCD用户指令集○•■☆◆△,相关资料很容易获取••。因其内置中文字库•=…=■,省去了自己造字库的工作量…■-•☆,而只需写入相应的汉字和字符内码即可显示所需要的汉字和字符-△…☆★▪,这在许多程序开发软件中很容易实现○☆△◇△◁,如▽★◇★:WAVE●▪…☆□、KEIL等=•=。所以使用带中文字库的LCD来实现中文菜单操会更加简便-◆。
•▷“Esc…☆★◁=○”键起到返回上一级菜单和删除参数输入时的错误输入双重功能★■•,程序中只需使用一标志位来区分选择菜单和参数输入菜单即可-○•=◇▽,同时修改页码和行码值★▷△-,即R0和R1的值△○■◇…。例如………▼◁:液晶屏上显示二级菜单1-1-1•-□、二级菜单1-1-2◇▪★◆•、二级菜单1-1-3◁▷▷★△◇、二级空格1-1-4▼○●◆,此时按下◇○★◆▪“Esc△-◇”键◆•◆☆,则返回到一级◆●,屏幕上显示一级菜单1-1•◇……-□、一级菜单1-2▼△…▽☆、一级参数输入1-3=▼…◁、一级空格1-4•◁●•▲.
以备使用●▽。同时将输入到YM12864液晶显示器的数据读出▷▼◇◇▽,送到相应的单元存储■△,此时输入符合要求的参数-△▲■◇,按下▷◇□▪■…“Enter★●○★•”□◁■。
通常的人机交互界面有两种方式◁▷◆▷•▽,选择菜单和输入参数○○▽☆◆▲,为了便于分析◁◁□▽=,本文使用三级树状菜单结构▷☆◁□◆…。因YM12864满屏能显示四行……▪▼☆、每行八个汉字•▼▷•□,故将四个选择或参数输入菜单项编为一页◇◆-●△▼,不足一页的补空格▷•=▽。补空格的目的是为了归一化操作…=☆▼▼△,可大大简化程序▲□•。每一个菜单▲◁△★▽、参数输入◆▽◆□▲=、空格都为固定的八个汉字空间▼◇=。当顶级菜单1○◆■☆、顶级菜单2▪▲▷、顶级参数输入3▲△◁、顶级4构成一级菜单●■☆◁…▲,四个菜单项为一页同时显示在液晶屏幕上-□▽▼;一级菜单1-1•◁、一级菜单1-2◆▼▪▪•▽、一级参数输入1-3▲△■■▪☆、一级空格1-4构成了顶级菜单1下的二级菜单=-=◆•,也组成一页同时显示在液晶屏幕上☆▼,三级菜单也是如此▪▲▼◇-▼。使用4*4键盘进行操作◁●-,其中=●“0-9◆★◁○▽”为数字键■□★■▲☆,…▪◁…○“Esc■=▽==”为删除/返回键◁=,◇•••▲“Down●◇•”为向下选择健★★▼▽◁▷,☆•“Enter▲▷▲”为确定健-◁,剩余三个按键预留备用■○◆◁★,为了不与其他程序的通用寄存器混淆•☆★▽▽△,而使用89C51的第二组通用寄存器R0和R2来记录菜单的页码和行码(光标所在的菜单行)●▪▼◇。