LCD显示-----拼音输入法
LCD-----
随着近年来嵌入式设备的广泛应用,人们对其要求变的丰富多样,而不仅限
于简单的控制操作了。越来越多的界面友好,富有人性化的设计开始出现在嵌入
式设备上,如智能手机收发电子邮件、编写文档、车载GPS导航查询等等。所有的这些都离不开人机交互,因而嵌入式设备的汉字输入法应运而生,足以满足
人们对复杂信息的处理交换要求,而且更加直观易用。
对于市面上现有的嵌入式设备,其拼音输入法大多数是基于操作系统的,
如智能手机等设备基于Windows或Linux操作系统,一般的手机也多基于简化
Linux系统,即使是电子词典等设备也有其单独设计的简化操作系统。基于操作
系统下的输入法设计是比较简单的,因为许多底层函数接口都已经由操作系统提
供给设计者了,只需要通过调用相应的函数就可以完成输入法的设计。
我们所完成的汉字拼音输入法是基于AVR Atmeg16单片机的,限于硬件的规
格,其本身没有操作系统,也不太可能在其上扩展操作系统,所以在设计时是相
对困难的,从最底层的LCD显示函数、键盘输入函数到拼音查找字模检索算法
等都需要一一设计完成。而据我们了解,在现行的不具备操作系统的嵌入式设备
中,很少有已经完整并成功开发的汉字拼音输入法,但这些设备有时是需要人机
交互的,汉字拼音输入法将使其易用性大大提高。因此,我们的设计弥补了现有
市场的一个空白,而其设计思路完全可以应用的其它任何不具备操作系统的简单
的嵌入式设备中去,在较小的资源占用下就可以完成拼音输入法的设计,满足人
们与简单设备的交互要求。
1
采用Atmel公司的Atmaga16单片机作为主控制器。Atmaga16是一个低功耗,高性能的8位单片机,片内含16k空间的可反复擦写100,000次的Flash存储器,具有1Kbytes的随机存取数据存储器(RAM),32个IO口,2个8位可编程定时计数器,1个16位可编程定时计数器,四通道PWM,内置8路10 位ADC,硬件SPI和TWI,可编程看门狗电路,抗干扰能力强,可在电磁干扰环
境下工作。且Mega系列的单片机可以在线编程、调试,方便地实现程序的下载
与整机的调试。
B
采用自制的4×3矩阵式12键键盘作为输入设备,与Atmaga16的PD口连
接。
C
使用采用了ks0108控制器的12864液晶屏幕作为输出设备,可显示4行8
列共32个16×16点阵汉字。
2
A.
采用了矩阵式键盘常用的行扫描查询法。根据行列线交叉点定位按键,然后
根据按键编码查询得到该键的定义。read_keyboard()函数将返回一个unsigned
char类型的值(0、1、2、3、4、5、6、7、8、9、*、#),程序可以通过调用该函数而得到键盘的输入。
B. LCD
通过查询LCD的手册了解其各个寄存器及引脚的定义,编写LCD的驱动程
序。驱动程序主要包括以下几个函数:
Check_busy() 检查LCD是否处于忙状态,只有其空闲时才可以进行数据或命
令的读写。
Disp_init() LCD初始化
Disp_clear() LCD显示屏清空
Write_com() 向LCD写命令
Write_data() 向LCD写数据
Read_date() 从LCD读数据
Write_char() 在LCD指定位置上显示一个字符 Write_word() 在LCD指定位置上显示一个汉字
C.
这是拼音输入法设计的主要部分,通过该程序完成了对输入、查询及输出的
整个
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
。该主控程序主要分为以下几个部分:
1) 接受键盘的输入并得到一个数字的组合,如“24”
2) 由数字组合得到相应的拼音组合,在“24”的情况下,将得到“ai”“bi”
“ci”三个拼音组合并显示在LCD上
3) 通过按键选择某一个拼音,将查询得到该拼音对应的所有汉字并显示在
LCD上
4) 选择相应的汉字,它将显示在文本区域,从而继续进入下一个汉字的输
入流程
为了实现以上流程,我们需要用到一个数据结构,它是一个查询表,可以将数字
组合、拼音组合及相应的汉字字模表联系起来,该数据结构由以下结构体实现:
struct index
{
char *num; 数字组合的指针
char *py; 拼音组合的指针
char **pymb; 汉字字模的指针
char cha; 该拼音组合对应的汉字数
};
建立index类型的数组brige,存放410个拼音组合的查询表,然后建立汉字
字模二维数组,存放所有拼音组合对应的汉字字模。程序通过brige数组将由数字组合得到拼音组合再由拼音组合得到最终的汉字字模。 由于Atmeg16的存储容量只有16KB(Flash),而汉字字模数组的大小约为220KB,所以我们没有将所有汉字字模都存储到Flash中,只是实现了一部分汉字字模。如果需要进一步扩展,可以用512KB的外部扩展FLASH作为汉字字模存储载体,与meg16的PC口连接,存储3783个一级汉字的字模。
显示初始化界面
有按键按下
显示主文本界面
符合要求的按键输入
显示选择拼音界面
选定某一拼音组合
显示汉字选择界面
选定某一汉字
一、课程设计心得
整个设计由初期的定题到硬件准备到软件编写调试,前后大约用了一个月的
时间。在定题之后前期的资料搜集比较困难,因为网上相应的资料很少,所以整
个实现思路基本是我们自己琢磨推敲出来的。
1.关于硬件:硬件的采购比较简单,市场上都有相应的LCD、键盘按键以及万用线路板等,但是将各个部件整合的过程并不简单,特别是LCD引脚比较多,而且需要不同大小的电源供电及相应的保护电阻,因而焊接起来比较费力。
2.关于软件:软件流程的编写比较复杂,虽然有着清晰的编程思路,但是程
序中涉及的函数和变量都相当的多,所以还是有一定难度的。最棘手的部分便是
LCD驱动的编写及调试,需要注意很多问题,如寄存器方向、使能信号的控制
以及时序等等。我们曾考虑使用外部扩展Flash或EEPROM,但考虑到时间比较紧张,而且我们已将拼音输入法完整实现,字数多少只是一个存储容量问题,没
有技术难点,所以我们最终没有进行扩展。
3.关于调试:最终的成体调试也是相当耗时的,各个软硬件部分拼接起来之
后必然会有这样那样的问题,此时查找并解决问题是需要很大的耐心的。
总的来说,我们的这个LCD显示---拼音输入法设计是比较成功的,我们已
经实现了基本的拼音输入及回显功能。当然,在次基础上还可以做进一步的改进,
如在汉字输入方面,可以增添拼音输入法的联想功能、记忆功能等,也可通过扩
展存储将汉字字库进一步扩大到7000个;在显示方面,可以扩展到LCD大屏幕显示,可以实现LCD任意
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
的显示等等。在整个设计流程中,我们查阅了很
多资料,学习到了很多有使用价值的东西,已经能够独立完成LCD和键盘的调试,对Atmeg16单片机也有了更深入的认识。
[1]. 张立科 《单片机典型外围器件及应用实例》. 人民邮电出版社 [2]. 周润景 张丽娜 《基于PROTEUS的AVR单片机设计与仿真》. 北京航空航
天大学出版社
[3]. 马潮 《基于AVR单片机的嵌入式系统原理与实践应用》 [4]. 金春林 邱慧芳 张皆喜 《AVR系列单片机――C语言编程与应用实例》. 清
华大学出版社