一种基于MC9S08GT60单片机的LCD显示菜单设计
摘要:为了在无线警报系统上实现数据输入、显示及存储等屏幕显示功能,提出了基于4*4个键盘交互的LCD显示多屏菜单设计方法。以ARM CortexTM-M0內核的微处理器为主控芯片,结合点阵液晶模块HTM12864进行C语言程序系统设计。对菜单数据项和功能函数进行独立设计,使菜单显示窗口化,并为每个窗口配置一个按键处理的回调函数来实现窗口切换。系统运行结果表明,该方法实现简单,占用内存少,操作界面简便,达到设计方法的目的。
随着人们对生活质量要求的提高,“智能家居”已经走入了我们的生活中。智能家居是以住宅为平台,兼备建筑、网络通信、计算机技术、设备自动化,集系统、结构、服务、管理为一体的安全、舒适、健康的居住环境。家居报警系统是智能家居系统的一个重要组成部分,实现智能家居环境下的安防智能化,人机交互界面美观可靠,操作方便等是安防系统发展的趋势。
无线警报系统利用无线通信和传感技术,通过无线传感器网络采集家庭内的信息,并通过无线通信将异常情况及时传输给用户或保安人员,用户远程操作,实现远程防火防盗警报。本文介绍在智能无线警报系统中实现多级菜单功能,方便设置和操作。
在传统的多级菜单的实现办法上,文献提出两点改进:把菜单项数据与功能程序分开和复用菜单项。文献提出了一种基于单片机系统的多级菜单模块化编程方法,使得程序编写效率较高,软件维护简单。文献提出基于飞思卡尔单片机MC9S08GT60控制的LCD人机界面方案,实现了数据通信、字符显示以及波形监测等功能。文献采用一键多义的非编码制键盘用标记转移算法,设计出基于4个键盘交互的多屏菜单系统。
鉴于之前的改进及设计方法,独立LCD显示模块,引入菜单窗口化的设计方法,使菜单项数据和函数功能完全分离,在菜单窗口下分行显示菜单项,同时完善LCD显示与键盘处理交互方法。为智能无线警报器设计开发4 x 4键盘与128x64图形点阵LCD模块交互的程序,在不同菜单窗口下,通过函数指针调用不同的按键处理函数,实现不同菜单窗口之间的切换。具有多级菜单显示结构,可完成分级菜单显示、参数设置及存储等常用功能,而且操作方便快捷。
1 智能无线警报系统结构
智能无线警报系统结构如图1所示,主要由单片机控制模块、GSM通信模块、无线传感器接收模块、LCD模块、电源模块等组成。
各个模块简介:MCU:主控芯片,实现与各模块之间进行数据交换和过程控制。GSM模块:提供GSM通信功能,支持语音和短信收发,SPK和MIC由GSM模块处理,MCU不需要参与,GSM模块通过UART串口与MCU通信,完成警报信息的发送、接收控制和语音通信功能;Buzzer:蜂鸣器,警报时产生蜂鸣声;Siren:警笛,警报时参数警笛声;ASK433模块:接收433Mhz警报信息;Key:包括矩形键盘和各类功能按键,用于用户密码的输入、各类设置和紧急警报等;LCD显示:采用132*64液晶显示模块,通过SPI与MCU通信,可通过键盘完成对警报手机的设置和更改,并将设置和更改数据存储,实现输入数据、显示、存储参数等功能。
2 LCD模块总体设计
2.1 软硬件开发环境介绍
本系统使用的主控芯片为新唐的NUC100,该芯片是32位内嵌ARM Cortex-M0内核的微控制器,运行频率可达50MHz,内建128K字节的Fla sh存储器,4K/8K/16K字节内建SRAM和4K字节用于存储ISP引导代码的ROM。另外还有丰富的外设,如定时器,看门狗定时器,RTC,RDMA,UART,SPI/MICROWIRE,I2C,IS,PWM定时器,丰富的GPIO,PS2,12位ADC,模拟比较器,低电压复位控制盒欠压检测功能。按键类型为4*4的矩阵,即0~9,*,#,OK,↑, ↓,DEL键。本系统使用的LCD显示屏的类型为HTM13264,分辨率是132*64的,显示类型为点阵,数据输入方式为SPI。
软件编译环境为Keil μVision4编译器,μVision4集成开发环境、仿真器、调试器等,提供一个单纯统一的环境,可以快速的编辑、仿真和调试程序。通过μVision4的工具条,就可以实现绝大多数调试和编辑的功能。
2.2 LCD菜单显示需求分析
根据该系统菜单的设计,LCD屏幕分四行显示,每行可以允许显示8个汉字字符,16个英文字符,如图2所示第一行是状态栏,显示感应器注册、通信模块信号量和电池电量,其他三行根据不同场景显示不同的内容,所有设置项目分三级菜单。
2.3 LCD菜单显示原理
菜单显示设计主要分为按键处理和菜单窗口两部分,主要原理是在主程序中设置一个按键处理程序,各菜单窗口利用统一的按键接口函数对按键处理程序中的按键函数指针进行重定向设定,使得按键处理程序能够指
CortexTM-M0 LCD显示模块 键盘交互 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)