收藏 分享(赏)

单片机多级菜单.doc

上传人:weiwoduzun 文档编号:5619696 上传时间:2019-03-10 格式:DOC 页数:8 大小:26KB
下载 相关 举报
单片机多级菜单.doc_第1页
第1页 / 共8页
单片机多级菜单.doc_第2页
第2页 / 共8页
单片机多级菜单.doc_第3页
第3页 / 共8页
单片机多级菜单.doc_第4页
第4页 / 共8页
单片机多级菜单.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、1单片机多级菜单第 1 期 2006 年 2 月工矿自动化 IndustryandMineAutomation No.1 Feb.2006 文章编号:1671-251X(2006)01-0050-02单片机 C 语言下 LCD 多级菜单的一种实现方法陆 铮 1,罗 嘉 2(1.天地科技股份有限公司常州自动化分公司,江苏常州 213015;2.宁夏煤矿安全监察局,宁夏银川 750001)摘要:介绍了在 C 语言环境下,在 LCD 液晶显示屏上实现多级嵌套菜单的一种简便方法,提出了一个结构紧凑、实用的程序模型。关键词:液晶显示屏;多级菜单;单片机;C 语言;LCD 中图分类号:TP311.1 文献

2、标识码:B0 引言阵液晶。采用图形点阵式液晶显示较之其它显示方式主2要有以下优点:(1)工作电压低、功耗极低。工作电压仅为 35V,工作电流10A/cm2,特别适用于低功耗的由于 C 语言的结构性和模块化,采用 C 语言编写的程序容易阅读和维护,还有很好的可移植性。本文介绍一种用 C 语言实现的 LCD 多级菜单的方法,该方法已成功应用在煤矿安全监测设备上。1 硬件环境及LCD 菜单实现的功能仪器仪表中。(2)液晶显示属被动显示,受外界光线干扰小。(3)图形点阵式液晶可显示的信息量大、分辨图形点阵式液晶可显示用户自定义的任意符号和图形,并可卷动显示。它作为单片机系统人机交互界面的重要组成部分被

3、广泛应用于实时检测和显示的仪器仪表中,例如手机上的显示屏就是图形点收稿日期:2005-11-21率高。(4)不产生电磁干扰。(5)可靠性高,使用寿命长。本文所介绍的 LCD 采用 12864 点阵的液晶屏,因此可显示 1616 点阵的汉字 4 行 8 列。菜单为多级嵌套形式,最长的有 13 层,主要完成对某个检修,还保留了手动方式,该方式3在正常运行情况下是不使用的。4 结语系统要运行可靠,对其有关设备是否能够安全运行地检测也是很重要的一环。因而程序对系统所涉及的设备都进行了全面监测,主要有电动球阀故障、出水口电动闸阀故障、水位传感器故障、水泵启停时间、运行电流、电动机温度、电动机和水泵轴承温

4、度、出水压力、高压柜状态、高压柜故障、阀门故障等,并视情况进行事故自动处理或报警要求检修。本系统中各个机组有 3 种运行选择:自动、半自动和手动。通常情况下按照水位高低和系统时间自动选择是否开泵,同时观察水位变化率从而选择需要开几台泵。在半自动方式下,一旦该泵的开泵信号被监测到,系统将自动根据当前情况用射流方式或者真空泵方式来抽真空,当真空度达到要求后启动电动机,同时观测出水口处的压力,当其大于 5MPa 时打开出水口处的电动闸阀实施正常排水。为了完善系统,防止意外情况的发生,同时为了便于由于 PLC 具有良好的抗干扰能力,而且编程、修改、调试都很方便,大大缩短了调试时间,提高了系统的自动化程

5、度,降低了硬件的复杂程度。实践证明该系统运行平稳,故障率低,基本不需维修,降低了维修费用和电耗,取得了较好的经济效益。参考文献:41 李世煌.水泵设计教程M.北京:机械工业出版社,1990.2 周美兰.PLC 电气控制与组态M.北京:科学出版社,2003.2006 年第 1 期陆 铮等:单片机 C 语言下 LCD 多级菜单的一种实现方法5,4,6,8,0,(3ModifyPoint), /第一层?51?测点各方面的设置或查询,可通过“向上”、 “向下”、 “回退”“、确认”4 个键或遥控器来实现对菜单的选择。具体功能:“向上”键:在本层菜单的项目中向上移动进行选择;“向下”键:在本层菜单的项目

6、中向下移动进行选择;“回退”键:取消本层的菜单设置,返回上层菜单;“确认”键:确认本层的菜单设置,进入下级菜单。可根据用户在菜单中的选择项对测点进行某些设置,或者进行某些特殊的显示,例如对某个测点的实时曲线显示等。2 程序设计6,5,7,52,0,(3SetCloseDown), / 第一层 7,6,1,0,0,(3Cancel), / 第一层 52,53,53,0,1,(3OkSetCloseDown1), 53,52,52,0,1,(3OkSetCloseDown2), 54,0,0,0,0,(3Disable),5;voidGetKeylnput(void)switch(status b

7、reak;case0xb0:/向下键,找出新的菜单状态编号 KeyFuncIndex=KeyTabKeyFuncIndex.KeyDn2State;根据需求,首先建立一个结构,并定义一个结构变量KbdTabStruct。结构变量就是把多个不同类型的变量结合在一起形成的一个组合型变量,构成一个结构的各个变量称为结构元素。该结构中共有 6 个结构元素,分别是 5 个字符型和 1 个指针变量,5 个字符型变量分别为当前及各个按键的索引号, break;case0xd0:/向上键,找出新的菜单状态编号KeyFuncIndex=KeyTabKeyFuncIndex.KeyUp26State;也就是操作的

8、状态号,最后 1 个指针变量指向需执行函数。这样就可以做一个结构数组,在结构数组里为每一个菜单项编制一个单独的函数,并根据菜单的嵌套顺序排好本菜单项的索引号,以及本级菜单项的上、下卷动的索引号和上、下级菜单的索引号。具体程序如下所述:typedefstruct break;case0x70:/回退键 ,找出新的菜单状态编号 KeyFuncIndex=KeyTabKeyFuncIndex.KeyBack2State; break; case0;return; /错误的处理 break; KeyFuncPtr=KeyTabKeyFuncIndex.CurrentOperate; (3KeyFunc

9、Ptr)(); /执行当前按键的操作uchar KeyStateIndex; / 当前状态索引号uchar KeyDnState; /按下“向下”键时转向的状态索引号 uchar KeyUpState; /按下“向上”键时转向的7状态索引号 uchar KeyCrState; / 按下“回车”键时转向的状态索引号 uchar KeyBackState; /按下“退回”键时转向的状态索引号 void (3CurrentOperate)(); /当前状态应该执行的功能操作 KbdTabStruct;#defineSIZE-OFKEYBD-MENU55 /菜单总长度KbdTabStructcodeK

10、eyTabSIZE-OF-KEYBD-MENU=3 结语本文介绍了 C 语言编程的特点,简单介绍了 LCD 作为人机界面的特征,并介绍了一种用 C 语言0,0,0,1,0,(3MainJob1),1,7,2,8,0,(3DspPoint), / 第一层 2,1,3,8,0,(3DspCurve), /第一层 3,2,4,36,0,(3DspKout), / 第一层 4,3,5,50,0,(3DisCloseDown), / 第一层实现的 LCD 多级嵌套菜单结构。该结构紧凑、性能稳定可靠,已多次使用在安全监测设备中。百度搜索“就爱阅读”,专业资料、生活学习,尽在就爱阅读网 ,您的在线图书馆! 8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报