<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2009年10月9日星期五21:27:16<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
人机接口程序的编制计划01
0、前言
对于一个嵌入式系统来说,人机界面和人机接口是很重要的。我手边的这块智林STM32开发板上,有七个按键,一个160*128的彩色液晶显示屏,我准备来实现一些简单的人机接口程序。
1、要达到的目标。
(1)将按键信息转换为字符输入,在液晶屏上显示。
(2)能够实现简单的格式化输入,比如退格、自动换行等的处理。
2、程序框架设计
(1)该程序以ucos操作系统为基础,操作系统提供了良好的多任务机制、时间管理机制和任务通信机制,使应用程序的设计大为简化。
(2)任务设计:总共需要四个用户任务,在Main程序中初始化基本硬件、初始化程序中用到的外围接口、创建所要用到的消息队列、邮箱和信号量等资源创建起动任务。
(3)起动任务:开启系统定时器、初始化统计任务、创建其它三个用户程序:键盘扫描程序,键盘消息队列处理程序,字符消息队列处理和显示程序。
(4)键盘扫描任务:就是我在前面的智林STM32键盘篇最后的总结程序。输出7个按键消息
(5)键盘消息队列处理程序:就是根据队列里的按键消息控制输入模式、并将特定的按键翻译成ascii码,然后发送到显示消息队列。
(6)显示任务调用LCD显示字符的函数,将字符显示到液晶屏上
3、设计的关键问题一:键盘的映射问题
(1)初步设计:七个键摇杆的五个键用于字符输入,PB2用于模式切换,PB3表示ENTER。
五个键的上右左下种分别为12345号键:对应26个字母和四个常用标点、控制键(空格、退格、逗号和句号)。
(2)字符输入需要六个模式、每个模式对应5个ascii码,由PB2进行切换。下面是我初步设计的映射表
模式0 a b c d 空格
模式1 e f g h 退格
模式2 i j k l 逗号
模式3 m n o p 句号
模式4 q r s t u
模式5 v w x y z
4、设计的关键问题二:显示程序
(1)首先在液晶屏上留出一行用于显示系统信息,其它的用于按键输入。
(2)设置两个全局变量指示光标在屏幕上的位置,编写LCD_PrintChar函数,使位置参数自动变化,并实现自动换行,到达屏幕结束时,能自动清屏并回到用户区开始位置。能够识别退格键和换行键,并进行正确的处理。
文章评论(0条评论)
登录后参与讨论