51单片机论文第六篇:51单片机的中文编辑研究与实现
摘要:在医疗设备的销售过程中,一些性能稳定,物廉价美的产品在国内的市场的销售确没有预期的好。文章所述的就是利用DRM(Design,Reliability,Manufacturability)工具找到原因,首先通过从市场调研,产品需求工具等分析出,因没有中文界面,中文输入和中文编辑等功能,产品市场推广上遇到一些障碍。然后通过概念设计,产品设计到产品验证和确认的过程。将基于51单片机设计的,只支持英文的产品升级为一款支持中文拼音输入法,中文编辑,中文显示的低成本,性能稳定的适应中国市场的新产品。在ARM横行天下的嵌入式世界,如果设计合理,将单片机和简单的外围部件配合,配合新的算法,51单片机仍然可以发挥重要作用,达到预期的效果。主要技术要点是:系统需求分析,系统架构设计,电子硬件设计,控制软件设计。
关键词: 51单片机;中文拼音输入法;中文信息编辑;
为了产品开发能够在预算范围内,符合质量标准,准时的完成,需要遵守产品开发流程。流程包括:VOX收集客户的声音,工程概念,使用条件,需求分解,风险分析,可靠性分析,产品开发和最后的产品验证。确保用正确的方式设计出一个正确的产品。为什么要这样做?因为我们的商务环境在改变,用户要求提高产品的可靠性,社会要求降低产品的价格,竞争对手迫使我们去缩短产品的开发时间或准确的可预期的开发时间,法规也对产品的性能提高了要求,产品生产后变更变得异常困难。下面将首先从项目的来源开始,阐述产品设计的关键过程和技术要点。
1 项目的来源
根据销售数据的分析,发现一款产品在中国市场的占有率远远低于全球的平均水平。市场部门由此展开了一系列的市场调研。其中重要的一环是VOX,研究来自各方面的声音。主要的声音来自:病人,法规,系统工程师,研发工程师,商务部门,技术,生产,技术服务和医生。声音的收集方式有:面谈,会议,视频,邮件,流程,内部记录,竞争对手,客户抱怨,图片等。VOX能帮助项目组把时间和人力聚焦在对客户最重要的事情上。这将帮助公司产品能加速进入市场,赢得客户的信任。
通过分析来自各方的声音发现,最大的痛点来自于使用时的操作体验,对于医生等受过专业训练的专业人员,英文水平较高,对英文界面能熟练使用,但对于一些护士,技术支持,维修,设备管理等人员,英文界面就不够友好了,有一个很长的学习曲线。糟糕的用户体验让他们内心对这个产品是排斥的,进而影响到医院的购买意愿,最终放弃购买。其他竞争对手赢得了订单,扩大了市场份额。为解决这个问题,就需要在原有的设备上增加中文输入,中文显示,中文编辑功能,中文分级菜单等功能,提升客户体验。
2 需求分解
在有限的时间内解决问题,90%的时间将用来定义问题,10%的时间用来找到解决方案。类似的,一个项目从客户的声音转化需求就是一个定义问题的过程,需求定义不准确将导致返工,延迟,较差的质量和整个项目的失败。据统计,40%的预算是消耗在较差的需求定义上。80%的研发失败是由弱的需求收集,管理和分析造成的。需求主要分为3种,功能性的需求,性能性需求和约束性需求。这个需求的最大约束条件是只能使用已有的8051单片机或者与之完全引脚兼容的芯片。功能性需求有中英文输入,中英文编辑和中英文显示。性能需求有字体美观,在更新设计后设备能通过EMC,EMI和功能测试。图1需求分析的重要性,越是项目的后期,修复问题的成本就越高。最终产品的需求会追溯到客户的声音,按优先顺序解决客户的痛点。同时产品规格的制定也将追溯到产品的需求,工程师将按产品规格研发设计和验证测试。所以需求分解是一个重要的承上启下环节。
图1 需求分析的重要性
3 中文输入及编辑
该系统采用模块化设计,提高生产线生产,测试和组装速度,减少外部不确定因素,产品可靠性增加,提高产品的长期一致性。主控制器和其他控制模块分离,通过UART串口实现通信。便于设备故障检查和维修,更换方便,降低客户的使用成本。软件模块主要有:中文输入,中文编辑,中文显示和中文分级菜单。常用的中英文字库型号有16X8和8X6点阵。16X8是指字符的高度是16点阵,宽度是8点阵。8X6是指字符的高度是8点阵,宽度是6点阵用来显示英文和一些特殊字符。
3.1 系统硬件设计
本设计中,因本产品是对原有的产品进行本地化,增加中文的支持功能,硬件设计受到一定的限制,只能使用8051单片机或引脚与之兼容的芯片。图2为系统硬件框图。系统分为两部分:一部分为UI控制器部分,一部分为控制器;两部分通过RS232通信建立联系。UI控制器的工作模块主要有:单片机作为中央处理器,是系统的核心,用来调度各个模块的执行。它的能力决定了整个系统的性能。读取键盘处理芯片的信息,驱动LCD液晶屏的显示,读取字库信息,生成点阵信息并显示在LCD屏上,与PC或者其他嵌入式设备通过RS232通信,实时传递信息。产品总体体积较小,可同时支持中英文等多种语言输入,中文界面显示,中文分级菜单。信息中的日期和时间信息设置,自动更新,无需每天开机时重新设置。
图2 系统硬件框图
3.2 软件控制架构
软件控制模块主要有,键盘芯片驱动,LCD显示驱动,UART通信驱动,中文UI设计,中文字库读写驱动等模块组成,通过全键盘输入拼音字符,根据拼音查询同音字,并显示所有同音字汉字序列供选择,移动光标选中需要的汉字,按确认键,选好的汉字对应的Unicode码会存在信息队列数组里,包括在X,Y方向上的位置。点阵生成任务会定期查询信息队列是否有变化,如有变化则重新生成点阵信息,覆盖原有点阵信息。最后调用LCD显示程序,刷新用户界面。
图3 软件控制思维导图
3.3 中文输入功能实现
图4 中文输入软件流程图
3.4 中文编辑功能实现
为了在51单片机上实现中英文的编辑,需要一个结构数据。记录每个字符的Unicode码,根据光标的位置把字符插入字符串,并记录当前字符在字符串中的位置。
图5 中文编辑软件流程图
3.5 中文菜单功能实现
在液晶屏上显示中文菜单,菜单分为3级,通过“UP” “DOWN”“LEFT”“RIGHT”“ENTER”“ESC”等按键进入不同级别的菜单,进行参数设置。在进入菜单后,菜单数据结构会记录它的上一层菜单和下一层菜单。形成一个完整的数据链。
图6 中文多级菜单软件流程图
4 结束语
前期通过VOX收集大量的外部反馈,对用户需求进行理解和分析,发现客户在使用设备时真正的痛点。使用DRM的需求分解方法,列出高质量的需求,为后续项目能准时开发完成奠定了基础。从技术角度看,51单片机如果利用得当也能发挥大作用,而且整个硬件系统架构设计也比较简单。51单片机加扩展字库的组合就可以完成。对中英文混合信息的编辑和多级中文菜单的算法有一定的要求。不足之处是需外扩字库芯片,在程序执行时需在不同的字库芯片中来回片选,以达到调用字库的目的。同时因为软件开发完全依赖硬件,软件维护人员必须对硬件非常熟悉了解。以往的验证测试主要靠手工操作,在这个设备开发过程中,采用自动化测试方案,通过Python脚本通过串口发送指令给设备,驱动设备运行,通时检测设备运行状态,验证是否达到需求定义标准。
参考文献
[1]张毅刚. MCS-51单片机应用设计[M]哈尔滨:哈尔滨工业大学出版社, 1990.
[2]李培峰,巧明,钱培德Linux下的汉字输入法设计技术[J].计算机应用, 2002(6) : 88-90.
[3]甘亚辉.嵌入式中文拼音输入法的设计[J]现代计算机:专业版, 2008(3): 84-86.
[4]杨少华.中文输入法若干相关问题研究[D1..上海:上海交通大学, 2013.
[5]闵华松,童学才,陈启卷嵌入式中文输入法设计[J].微计算机信息, 2006(23):41-43.
[6]戴佳,戴卫恒,刘博文51单片机C语言应用程序设计实例精讲[M].北京:电子工业出版社, 2008.