基于单片机的T9汉字输入法

上传人:痛*** 文档编号:45581370 上传时间:2021-12-07 格式:DOC 页数:32 大小:1.24MB
收藏 版权申诉 举报 下载
基于单片机的T9汉字输入法_第1页
第1页 / 共32页
基于单片机的T9汉字输入法_第2页
第2页 / 共32页
基于单片机的T9汉字输入法_第3页
第3页 / 共32页
资源描述:

《基于单片机的T9汉字输入法》由会员分享,可在线阅读,更多相关《基于单片机的T9汉字输入法(32页珍藏版)》请在装配图网上搜索。

1、论文独创性声明本人郑重声明:1. 坚持以“求实、创新”的科学精神从事研究工作。2. 本论文是我个人在导师指导下进行的研究工作和取得的研究成果。3. 本论文中除引文外,所有实验、数据和有关材料均是真实的。4. 本论文中除引文和致谢的内容外,不包含其他人或其它机构已经发表或撰写过的研究成果。5. 其他同志对本研究所做的贡献均已在论文中作了声明并表示了谢意 作者签名: 日 期: 摘 要 本论文设计的是T9汉字输入法,能实现汉字的读写功能。它主要以AT89C51系类单片机作为微控制器,以STC12C5A60S2单片机为核心。用户通过拼音按键自动搜索字库中与按键相匹配的用户所想要的汉字,在显示屏上显示字

2、库中相匹配的汉字,并保存在AT24C64存储卡中。本设计主要由四大模块组成,第一块是是4*4的矩阵按键,它是本设计的输入口,用户必须要通过按键表达他想表达的汉字。二模块是STC12C5A60S2型号单片机,它主要功能是存储我所需要的汉字字库和主程序,链接各个模块之间的枢纽。第三模块是128*64的显示模块,主要是显示用户通过按键表达用户需要的汉字。第四模块是存储模块,它是用于硬件数据保护的写保护,存储用户所搜寻到的汉字。最后经过链接和调试后能实现T9输入法的汉字调用,汉字显示及存储功能,最终实现手机中T9输入法的功能。关键词:51单片机;4*4矩阵按键;12864显示屏;at24c64存储技术

3、Abstract The design of the T9 Chinese input method primarily AT89C51 microcontroller as the system class microcontroller to STC12C5A60S2 microcontroller core. User through the alphabet keys and buttons automatically search for the font that matches the user wants characters, display font that matche

4、s the characters on the screen and stored in AT24C64 memory card. This design consists of four modules, the first piece is a 4 * 4 matrix keys, it is the design of the input port, the user must express his characters want to express through the key. Two modules are STC12C5A60S2 type microcontroller,

5、 which main function is the storage I need Chinese character, hub link between the various modules. The third module is 128 * 64 display module, the main characters are displayed user needs expressed by the users through the key. The fourth module is a memory module, it is write-protected, the hardw

6、are store user data protection for the search to the characters. Finally, after linking and debugging can be realized characters call T9 input method, Chinese character display and storage capabilities, and ultimately the function of the phone T9 input method. Keywords: 51 single; 4 * 4 matrix keypa

7、d; 12864 display; at24c64 storage technology目 录1.绪论11.1 课题研究的背景和意义11.2 目前国内外研究现状11.3本课题设计的主要工作和任务22T9输入法系统方案介绍与设计22.1 T9输入法介绍22.2T9输入法的设计原理图33系统硬件设计43.1 单片机模块43.1.1 单片机的概述43.1.2简介STC12C5A60S243.1.3复位电路63.1.4 时钟电路73.2显示模块73.2.1 128*64显示屏介绍73.2.212864显示屏管脚图和技术参数83.3 4*4矩阵按键模块93.3.1矩阵按键介绍93.3.2 4*4矩阵按键

8、原理103.4 AT24C64存储模块103.4.1 AT24C64存储芯片介绍103.4.2 AT24C64存储模块电路图113.4.3 AT24C64存储芯片管脚图124.系统软件设计134.1 系统总流程图144.2 矩阵和显示模块流程图154.2.1 4*4矩阵模块流程图154.2.2 显示模块流程图164.3 KEIL开发环境17结 论18系统实物调试19参考文献22致 谢23附录A 总电路图24附录B 源程序251.绪论1.1 课题研究的背景和意义现今的资讯时代,电子设备发展速度很快,学习工作都需要电脑,手机来处理,而在我们常用的语言文字中,中文是最通用的,几乎做任何事情都要使用到

9、中文,文书处理,书信来往,即时通讯,学校作业,毕业论文,推理资料,商业简讯等等,都有绝大的比例是靠中文输入,所以有快速的中文输入工具,将是提升工作效率,帮助学习,加强人际沟通的重要事项,学一种好的中文输入法,实在是优点很多,也是现代人不可或缺的一项输入法技能。随着手机近些年的发展和普及,特别是智能手机的出现和推广,使得各类人群都在使用各式各样的实惠而功能强大的手机产品,这时,输入法也显得特别的重要,学好一种输入法将是提升工作效率,帮助学习,加强人际沟通的重要事项,学一种好的中文输入法,实在是优点很多,也是现代人不可或缺的一项输入法技能。尤其是这种简单易学的输入法,更是深得各类人群的喜爱和支持,

10、在手机运用中,这种输入法也是显得非常必要,比如五笔输入法 1难以学好, 2 重码率低但也有纯形码,能直接输入不知读音的生僻字这样的有点,但它适合专业打字员使用,不适合大多数人群的输写习惯。手写板误码率高,一些中老年人不识字,纯文本格式,无法排版等。像T9这样的输入法,具有简单易学,高效的输入方式,减少输入时按键次数,支持多种语言等优点,在手机的输入法中还是得到各类人群的青睐。1.2 目前国内外研究现状21世纪以来,几乎每个人都在用手机。在1998年中国的手机用户数量仅为2000多万户;那时的手机还没有普及,经过短短16年时间的迅速增长,中国的手机用户超过9亿,目前成为世界第一大手机用户国家,中

11、国也是国内外手机公司争先恐后想抢占的大市场。在中国手机用户输入法中T9智能输入法 、 字能输入法 和 iTAP输入法 都占据了主流地位。同时,三种输入法在具有高效输入这一共性的同时,也因各有千秋而吸引着不同的用户,形成了各自的市场和发展空间。T9智能输入法是针对移动小终端的文字输入解决方案,以输入字符高效快捷而著称。T9可应用于42种语言,支持基于繁体和简体中文输入,以及基于声码的拼音和注音文字输入。世界上有近300款手机预装了T9智能输入法,目前T9占据了全球80%的市场份额。字能输入法具有20902个汉字的高容量 字库 ,是T9输入法字库的两倍多,而这也是其相对于T9输入法最大的优势。目前

12、该输入法主要被 爱立信 的早期机型、 阿尔卡特 以及一些国产手机所采用。iTAP输入法则是 摩托罗拉 的专利。摩托罗拉不断地对iTAP输入法的字库进行更新,具有支持更多种语言的优势。但由于iTAP是在T9的基础上发展起来的,因此在输入的算法方面与T9基本相似,而在笔画输入上则支持倒插笔。 所以自己研究和制作T9输入法,从中理解它的工作原理和结构,对于世界第一大手机用户国家,了解它还是很有必要的。1.3本课题设计的主要工作和任务本设计是基于51单片机STC12C5A60S2型号的单片机基础上建立起来的T9中文汉字输入法,STC12C5A60S2单片机内有60K的存储容量,是专门存储我搜索和调用的

13、汉字字库,之所以我选STC12C5A60S2单片机作为我所保存字库的存储器,是因为它的60K的存储容量正好能保存我所使用的字库容量和程序。本设计主要有四个大的模块组成,简单介绍一下,第一块是矩阵按键模块,它是4*4的矩阵按键,它是本设计的输入口,用户必须要通过按键表达他想表达的汉字。二模块是STC12C5A60S2型号单片机,它主要功能是存储我所需要的汉字字库,链接各个模块之间的枢纽。第三模块是128*64的显示模块,主要是显示用户通过按键表达用户需要的汉字。第四模块是存储模块,它是用于硬件数据保护的写保护,存储用户所搜寻到的汉字。通过这四个模块的组成和链接,能够实现T9汉字输入法的能构成本设

14、计所要实现的搜索和存储功能等。2T9输入法系统方案介绍与设计2.1 T9输入法介绍T9输入法全名为智能输入法,字库九千多字,支持十几种语言,该输入法由美国特捷通讯软件公司研制。T9输入法具有简单易学,高效的输入方式,减少输入时按键次数,支持多种语言等优点,T9输入法解决了小型掌上设备如手机的文字输入问题,现在已经成为全球手机文字输入的标准之一。T9输入法在输入所需字以后屏幕会出现一些常见字,而这些字都可以与此字组成词组。这也是T9输入法领先于其他输入法的优越之处。目前诺基亚等公司均支持此种输入法。所以自己研究和制作T9输入法,从中理解它的工作原理和结构,对于世界第一大手机用户国家,了解它还是很

15、有必要的。T9 之所以能在中国延续至今,一方面是从旧智能手机时代使用习惯的惯性,而另一方面是由于汉字特殊的输入原理决定的。 2.2 T9输入法的设计原理图图1 T9输入法设计原理图T9输入法的设计是基于STC12C5A60S2型号的单片机基础上建立起来的T9中文汉字输入法。本设计主要有四个大的模块组成,简单介绍一下,第一块是矩阵按键模块,它是4*4的矩阵按键,它是本设计的输入口,它有四行四列组成,用扫描法扫描行列的高低电平来确认按键触发。在按键中1代表符号,2代表拼音的ABC,3代表拼音DEF以此类推,比如我想输出“中国”两字我们输入“中”字,只需要按下按键编码:9、4、6、6、4,即可实现输

16、入“中”字,在选中汉字之后在按下按键编码:4、8、6,汉字国会显示出来。这样T9 总共只需要8次按键就把中国汉字输入出来,用户必须要通过按键表达他想表达的汉字。第二模块是STC12C5A60S2型号单片机,它是本设计的控制、显示、存储的核心STC12C5A60S2单片机内有60K的存储容量,是专门存储我搜索和调用的汉字字库,之所以STC12C5A60S2单片机作为我所保存字库的存储器,是因为它的60K的存储容量正好能保存我所使用的字库容量,它主要功能是存储我所需要的汉字字库和主程序,也是各个模块链接和正常工作的纽带。第三模块是128*64的显示模块,主要是能清楚的显示用户通过按键表达用户需要的

17、汉字。第四模块是存取模块,我采用的是AT24C64芯片作为我的存取模块的核心是因为他有存存储结构比较简单,低功耗和低电压,断电后可以自动保存之前所写汉字。储容量64K也是能够完全保存我所需要字库的容量,存储和调取用户所搜寻到和保存的汉字。通过这四个模块的组成和链接,能构成本设计所要实现的搜索和存储功能等。3系统硬件设计3.1 单片机模块 3.1.1 单片机的概述单片机是现代电子设计中使用最广泛的电子元件。就是把中央处理器CPU(Central Processing Unit)、存储器(Memory)、定时器、I/0(Input/Output)接口电路等一些计算机的主要功能部件集成在一块集成电路

18、芯片上的微型计算机。它的价格低廉,功能强大,体积小,性能稳定正是本设计中所需要的。我们所说的单片机是指51系列的单片机,它有CPU、程序存储器、数据存储器、定时计数器I/O口、中断、时钟电路以及数据总线、地址总线和控制总线组成的,具有许多功能,广泛用于我们的生活。3.1.2简介STC12C5A60S2STC12C5A60S2是51单片机系列的一种,它是STC公司生产的单时钟/机器周期的单片机,具有高速、低功耗、超强抗干扰能力等优点的新一代8051单片机,指令代码与8051完全兼容,而且速度比8051快了812倍。内部集成MAX810专用复位电路,2路PWM,8路高速位A/D转换,针对电机控制,

19、强干扰场合。STC12C5A60S2有很多特性,例如它有增强型8051,1T(1024G)单时钟/机器周期,双线串行接口和双向数据传送协议,它的工作电压要在5.5-3.5v之间,它内部有1280字节的RAM在本单片机内部集成60K的Flash,本程序HEX大小为59K,正好能容下程序。它也是通用的I/0口,内部集成MAX810专用复位电路,它还具有EEPROM和看门狗的功能等。根据以上STC12C5A60S2所具有的功能和特点正是本设计的所需要的。所以我选用STC12C5A60S2单片机芯片做我的核心控制芯片。 图2 STC12C5A60S2单片机引脚图STC12C5A60S2单片机引脚功能P

20、0.0P0.7(3932):P0.0P0.7 P0:P0口既可以作为输入/输出口,可用于A/D转换也可以作为地址/数据复用总线使用。P1.0P1.7(1-8):P1口是带内部上拉电阻的8位双向I/O口。在EPROM编程和程序验证时,它接收低8位地址。 P2.0P2.7(21-28):P2口是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。P3.0P3.7(10-17):P3口是一个带内部上拉电阻的8位双向I/O口。3.1.3复位电路 复位电路是每个单片机模块不可缺少的,复位操作作用可以完成单片机的初始化,也可使处于死机状态下的单片机重新开始运行,所以在本设计中复位电

21、路是必不可少的。复位电路的原理是单片机在上电时,还是运行过程中发生故障时都需要复位,可以说复位操作完成单片机内电路的初始化,是单片机从一种确定的状态开始运行。上电复位电路中,利用电容充电来实现复位。在电源接通瞬间,RST引脚上的电位是高电平(VCC),电源接通后对电容进行快速充电,随着充电的进行,RST引脚上的电位也会逐渐下降为低电平。只要保证RST引脚上高电平出现的时间大于两个机器周期,便可以实现正常复位。按键复位电路中,当按键没有按下时,电路同上电复位电路。如在单片机运行过程中,按下RESET键,已经充好电的电容会快速通过200电阻的回路放电,从而使得RST引脚上的电位快速变为高电平,此高

22、电平会维持到按键释放,从而满足单片机复位的条件实现按键复位。 3.1.4 时钟电路和复位电路一样晶振电路在单机片模块中也是非常重要的,晶振是石英振荡器的简称,它在电路中的主要作用是电路产生震荡电流,发出时钟信号,便于各部分保持同步。在本设计中要用晶振电路给芯片输出时钟,保持同步。晶振还有个作用是向显卡、网卡、主板等配件的各部分提供基准频率。AT89S51和其他51系列单片机一样,其内部包含一个高增益的单级反向放大器,引脚XTAL1和XTAL2是芯片内部震荡电路的输入端和输出端。在本设计中在XTAL1,XTAL2的引脚上外接定时元件,内部振荡器便能产生激振荡,用示波器便可以观察到XTAL2输出的

23、正弦波,定时元件可以采用石英晶体和电容组成的并联谐振电路,晶体可以在1.212MHz之间任选,电容可以在2060pF之间选择,本设计选用的电容式22pF,其工作频率为033MHz。两个电容大小对振荡器频率有微小影响,可起频率微调作用。3.2显示模块3.2.1 128*64显示屏介绍显示部分采用12864液晶显示,它是具有4位/8位并行,2线或3线串行的多种接口方式。它的分辨率是128*64,具有8192个16*16点汉字,128个16*8点ASCII字符集,显示屏接口方式很灵便简单,它的操作指令也很简单,许多用户都把它做成全中文人机交互图形界面。可以显示84行1616点阵的汉字.当然图形也是可

24、以显示出来,12864液晶显示具有一个很明显的优点就是低电压低功耗。还有显示质量高、没有电磁辐射、体积小重量轻等优点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,由它做成模块的价格和相同点阵的图形液晶模块相比还是便宜了许多。3.2.2 12864显示屏管脚图和技术参数图3 128*64显示屏管脚图管脚号管脚名称管脚功能描述1CS1/CS2RS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据3GND电源接入 , 一般接0V4VCC模块的电源地5V0对比度(亮度)调整6RS指令/数据选择7R/W读写选择8E信

25、号使能9DB0数据位010DB1数据位111DB2数据位212DB3数据位313DB4数据位414DB5数据位515DB6数据位616DB7数据位717RST模块复位,可不连接18VOUTLCD驱动电压输出端PSB并/串行接口选择:H-并行;L-串行12864液晶屏显示器主要技术参数和显示特性:1.电源:VDD 3.3V5V2. 显示内容:128列*64行3.显示颜色:黄绿4.显示角度:6:00钟直视5.LCD类型:STN6.与MCU接口:8位或4位并行/3位串行7.配置LED背光8.工作温度: 0 - +55 ,存储温度: -20 - +609. 2MHZ时钟频率3.3 4*4矩阵按键模块3

26、.3.1矩阵按键介绍矩阵键盘又称为行列式键盘,用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行与列的交叉点可以设置为按键。这样键盘中按键的个数是44个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。4x4矩阵按键的列线与单片机P1口的高4位相连,行线通过二极管与单片机P1口的低四位相连。P1.0P1.3作为输入端,P1.4P1.7作为输出端。键盘的4根列线分别引出连接到一个具有4输入端的与门,输出端接单片机的外部中断#INT0。初始化的时候,将键盘的输出端口全部置低电平”0”。当有按键按下的时候,#INT0将变为低电平,此时向CPU发出中断请求,CPU响应中断并进入

27、中断服务程序。在中断服务程序中,可以按照前面的扫描查询的方法来获得按键的位置信息(X,Y)。 图4 4*4矩阵按键原理图3.3.2 4*4矩阵按键原理4*4的矩阵按键相当于T9输入法中的的8个拼音和其他按键。在本设计中首先不断循环地给低四位独立的低电平,然后判断键盘中有无键按下。将低位中其中一列线(P1.0P1.3中其中一列)置低电平然后检测行线的状态(高4位,即P1.4P1.7,由于线与关系,只要与低电平列线接通,即跳变成低电平),只要有一行的电平为低就延时一段时间以消除抖动,然后再次判断,假如依然为低电平,则表示键盘中真的有键被按下而且闭合的键位于低电平的4个按键之中任其一,若所有行线均为

28、高电平则表示键盘中无键按下。再其次,判断闭合键所在的具体位置。在确认有键按下后 ,即可进入确定具体闭合键的过程。其方法是: 依次将列线置为低电平,即在置某一根列线为低电平时,其它列线为高电平。同时再逐行检测各行线的电平状态 ;若某行为低,则该行线与置为低电平的列线交叉处的按键就是闭合的按键。3.4 AT24C64存储模块3.4.1 AT24C64存储芯片介绍 AT24C64存储卡,是一种没有加密功能的EEPROM存储卡,I2C接口,它是属于AT24C系列里的比较重要的存储卡,数字部分以K位为容量,AT24C64的存储容量为64K,容量要比EEPROM要更大,它的使用方法与EPROM完全相同,存

29、储结构比较简单,只有读写两种基本操作功能,AT24C64存储卡的主要功能是存放一些保密性要求不高的数据。被广泛应用于工业、化工等需要低功耗与低电压的领域。同时,它还提供诸如4.5V5.5V2.7V5.5V、2.5V5.5V与1.8V5.5V各种工作电压范围的芯片,从而使其应用更加通用。基于以上这些特点,在本设计中用它来存储字库是很适合的。AT24C64存储芯片主要的基本参数1.AT24C64存储芯片的工作频率为1MHz(5V)2.工作电压为5V士10%,最低到1.8V3.写/擦除次数为100万次,数据保存100年4.工作温度范围:-40C to +85C,存储容量为64K5.双向串行接口3.4

30、.2 AT24C64存储模块电路图 图5 AT24C64存储模块电路图AT24C64存储芯片在本设计中作为存取信息存储器。它有64K容量。正好能容下字库的所有汉字。AT24C64存储芯片有设备寻址、写操作、读操作的作用。正是有读写的作用能在本设计中写信息和读信息。本图中R1和R3是上拉电阻,具有提高芯片输入信号的噪声容限增强抗干扰的功能。A0-A2用于设置芯片的器件地址,在同一总线上有多个器件时,可以通过设置A0-A2引脚来确定器件地址。SDA是串行数据引脚,用于在芯片读写时输入或输出数据、地址等,这个引脚是双向引脚,它是漏极开路的,使用时需要加上一个上拉电阻。SLC脚是器件的串行同步时钟信号

31、, SCL脚由单片机控制,根据单片机的程序要求产生串行同步时钟信号,控制总线的存取。WP脚是写保护脚,当这个脚接入高电平时,芯片的芯片数据均处于禁止写入状态,当把WP脚接到地线时,芯片处于正常的读写状态。当一个电路要求正常使用时是不允许程序修改EEPROM中的数据,只有在维护设置才可以修改数据,这时可以在电路上设置WP跳线或用微处理器对WP进行控制,这样只有在特定的电路状态下才可以更改到数据3.4.3 AT24C64存储芯片管脚图图6 AT24C64存储芯片管脚图管脚说明:A0A2 :地址输入引脚SDA : 串行数据SCL : 串行时钟输入WP : 写保护引脚功能描述:串行时钟(SCL):SC

32、L的上升沿时将数据写入芯片中,在下降沿时将数据从芯片中读出。串行数据(SDA):SDA用作双向数据传输。这个引脚是漏极开路驱动,需要加上拉电阻。设备地址(A2,A1,A0):A2A0是地址输入引脚,当这些引脚悬空时,默认地址为0。写保护(WP):当该引脚连接到GND上时,可以进行写操作。当WP连接到VCC时,禁止写操作。如果悬空,则WP在内部被拉到GND。AT24C64的操作方法:AT24C64是采用I2C接口来进行数据传输的,下面只针对于AT24C64的操作方法进行讲解。1)设备寻址在开始条件使芯片使能后,需要给其写入一个8位的设备地址码,以使某一芯片被命中2)写操作在写模式下,主器件发送起

33、始信号和从器件地址信息R/W 位置给从器件,在从器件送回应答信号后主器件发送两个8 位地址字写入AT24C64的地址指针,主器件在收到从器件的应答信号后再发送数据到被寻址的存储单元AT24C64,再次应答并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程AT24C64不再应答主器件的任何请求。3)读操作读操作和写操作的初始化都是一样的,两个唯一的不同之处是读写选择位要置为1。这里有三种读操作:当前地址读、字节读、序列读。4.系统软件设计系统软件是任何毕业设计中不可缺少的重要组成部分,本设计不只是通过硬件电路就能实现所要的功能。我们还要有软件设计来帮助我们硬件完成我们所需要实现的功能。这

34、时我们就要用到51单片机来帮助我们,通过整个设计的流程图来设计本设计的软件,所以软件设计在本设计中还是必不可少的。 4.1 系统总流程图图7 T9输入法系统总流程图本次设计主要基于51单片机为微处理器,单片机技术为核心。由矩阵按键模块、51单片机模块、12864显示屏模块、AT24C64存储器模块这四个模块组成和构成整个系统,用户按键之前先对AT24C64存储器和液晶显示屏进行初始化,保证没有其他没有的数据,用户按下按键按钮,这时会有两种情况1是读文字,如果是这种情况,所读的文字会先保存在存储器中并显示在显示屏上,读完后会保存在存储器中,跟我们看手机的信息是一样的。第二种情况是写文字,这时用户

35、通过按键输入拼音字母,系统会自动搜索单片机字库中与拼音相匹配的常用的汉字有序排列出来,用户也可以拼写常用的词语,系统也会自动检索字库中相匹配的常用的词语供用户选择。如果用户写错了,本设计还有退出键,就是删除按键的字母,用户当前可以继续使用按键按钮。当用户按键是系统会检测退出键有没有响应,当用户完成了自己需要的汉字时就会在显示屏上显示出来。这就是本设计大概的操作流程,下面我用流程图把它完整的表达出来。 4.2 矩阵和显示模块流程图 4.2.1 4*4矩阵模块流程图图8 矩阵按键模块流程图 本设计中矩阵模块流程图如上图所示,本设计中选用4*4的矩阵按键作为按键模块,4*4的矩阵按键是大多数手机所用

36、的输入按键。用户按键时键盘会自动扫描有无按键闭合,按键闭合是采用行列式低电平的原理来确定的,如果扫描有按键闭合那么就延时一段时间以消除抖动,如果没有按键闭合那么在进行按键扫描。然后再次进行扫描按键,这主要是进行列扫描也是为了确定按键的位置。这时会出现一个状况那就是要判断有无中断,中断就是我们手机按键中撤销按键,用户输入的拼音有错会按下撤销键,这时在流程图中就会有个中断,如果有这个中断那就处理中断,撤销错的拼音字母,然后继续进行按键扫描输入正确的拼音字母,如果没有中断我们就可以找到闭合键。通过按键自动找到按键编码。通过按键编码就能调出字库中相对应的汉字。然后用51单片机的STC12C5A60S2

37、型号进行扫描和控制,按键出来的拼音经过自动搜索后查找的汉字显示在12864显示屏上,并保存在AT24C64的存储芯片中。 4.2.2 显示模块流程图 图9 显示模块流程图本设计中显示模块流程图如上图所示,显示模块选用的是128*64的LCD显示屏,12864显示屏具有低电压低功耗。还有显示质量高、没有电磁辐射、体积小重量轻等优点,也很适合汉字的显示。用户按键的同时,程序开始复位各个模块也完成初始化,当然显示屏模块也要初始化,初始化的同时主程序也要开始循环。用户通过矩阵按键拼音输入从字库中调出与按键相对应的汉字,然后显示在显示屏中。这时也要判断有无中断,如果有中断那就处理中断,这里的中断指的是实

38、物断电,断电后自动保存之前所写的汉字。通电后,用户可以读取之前所写的汉字,继续进行按键汉字显示。如果没有中断那就把通过按键调用出的汉字显示在LCD上,这样循环下去,直到用户完成按键,显示所有汉字。4.3 KEIL开发环境本次使用的是51单片机,与它相匹配的可以用Keil 4 作为单片机程序的开发环境。Keil C51集成开发工具是高度集成的,功能强大的,具有C编译器、宏汇编、连接器、库管理等各种我们需要用到的工具,我们可以使用C语者汇编语言对单片机进行编程。而Keil对C语言的支持使得我们的编程变得非常简单。并且具有方便移植和可阅读性,性能完美。 图10 C语言程序软件测试结 论本次设计是基于

39、51单片机的T9汉字输入法,就是我们现在手机里用的九宫格的汉字输入法,从开始的课题选择,市场调查,构思设计到后来的实物做成基本汉字输出显示等功能实现大约花了四个月的时间,完成后的T9汉字输入法具有聪明智能,简单快捷,高效及减少输入时的按键次数等优点,是现下在中国使用频率最高和最流行的一种手机输入法,现在已经广泛用于市场中。本次设计主要有四大模块组成单片机模块;矩阵按键模块;12864显示模块;存储模块。在构思和设计中有两点比较难办到,其一是我对字库用C语言程序编写比较难办到,因为我的C语言知识有限,其二是软件设计完之后要想在显示屏上输出与拼音相符的正确的汉字的正确率有进一步的提高有一定的难度。

40、通过查询文献资料、同学的帮助及询问相关老师已基本克服了上述困难。但是本设计还有其他一些不足我也会进一步的调整和完善,我相信完善后的T9输入法价值会上一个大台阶,可应用性也会进一步提高。本次设计我的最大感受,即使是嵌入式C语言,本次设计中应该尽可能的将功能模块化,输入函数仅处理用户输入,显示函数和搜索算法都应该分离。当然,由于C语言没有事件,只能通过返回值确定系统状态,在传递参数较多时,要么传递结构体,要么通过长长的形参表传递,这都是不利于程序维护,也是我的代码需要改进的地方。整个输入法模块移植起来依旧是需要时间,精力和耐心的,我会努力学习知识克服这些困难,让整个输入法变得更完美。系统实物调试连

41、接好电源后,各模块初始化。通过矩阵按键按出汉字的拼音或字母,调用单片机中的相配匹的汉字(字库保存在单片机中)显示在显示屏上并保存在存储芯片中。单片机模块和显示模块,图片上方为STC12C5A60S2单片机,是本设计的控制核心。下方是显示屏显示汉字,显示屏的引脚与单片机的P2,P3口相连。矩阵模块和存储模块,矩阵按键是4*4的,其中有8个按键是拼音按键,其它还有选择,撤销等按键。中间的是AT24C64存储芯片,存储显示屏上的汉字。 参考文献1 王爱英智能卡技术M北京:清华大学出版社,20002 沈宇超射频识别技术及其发展现状J.电子技术应用,20073 潘长东IC卡电能表的现状与改进J电测与仪表

42、,20064 朱义胜低通型阻抗匹配网络的设计J电子学报,20065 张肃文,陆兆熊高频电子线路M北京:高等教育出版社6 童诗白,华成英模拟电子技术基础M北京:高等教育出版社,20017 谭浩强C程序设计M北京:清华大学出版社,20038 赵亮液晶显示模块LCD1602应用J电子制作,2007:(3)58599 戴佳.51单片机应用程序设计实例精讲 M电子工业出版社10 Philips Semiconductors,Contactless Chip Card Module SpecificationJ,1999致 谢本次毕业设计的指导老师是颜老师,从一开始的选题,开题报告,软硬件的设计到实物的出

43、炉,毕业论文的完成,颜老师都很认真细心的帮助我,指导我去完成。当我有困难时,颜老师都会帮我出谋划策,解答。在这再次感谢颜老师,在本次毕业设计中还有一点很重要,就是通过这次毕业设计,我学会了上课时候学多不懂的知识,当我遇到不懂的知识点时,我会去查资料,通过自己的理解和摸索,学会了很多新的能帮助我解决问题的知识。当然,颜老师也帮助我解决了不我不理解的知识点。其次,还要感谢学校给我们提供一个能帮助我们完成毕业设计的环境,学校为我们提供了优越的硬件设施和条件,让我能够顺利完成我的毕业设计,期间也有许多老师帮助我,他们严谨认真的学习态度深深让我感动,感谢老师的帮助和解答。在本论文的写作和相关研究工作中我

44、与我的朋友们一起完成,在这谢谢朋友们在我困难时候帮助我,不管在课题研究上还是生活中,让我懂了学多,不止是知识,还有做人的道理。我会记住这几个月的美好时光的。再次向所有帮助过我的人表示衷心的感谢!谢谢你们!附录A 总电路图 本设计主要有四个大的模块组成,左边是51单片机是本设计的控制中心,单片机最左边的P1.0P1.7是连接矩阵模块。通过矩阵按键输入英文字母,字库保存在单片机中,单片机识别与英文字母相配匹的汉字或词组字库保存在单片机中,单片机右侧是连接显示屏和存储芯片两个模块,其中P00和P01口是连接以AT24C64为存储芯片的存储模块,与单片机连接好后所显示的汉字会保存在存储芯片中,中间连接

45、的是显示屏,显示汉字和拼音。图中右上方是存储模块的电路图,按键OK和CANCEL表示按键的确认和撤销。附录B 源程序#include #include #include#include#define uintunsigned int#define uchar unsigned char#define DISP_ON 0x3f#define DISP_OFF0x3e#define COL 0x40 #define PAGE0xb8#define START_LINE 0xc0/#define LCD_BUS P2 /#define LCD_CON P3 #define key_bus P1#de

46、fine LCD_BUS P0仿真管脚定义sbit CS1=LCD_CON0;sbit CS2=LCD_CON1;sbit E =LCD_CON2;sbit RW=LCD_CON3;sbit DI=LCD_CON4; */sbit DI=P20; sbit RW=P21; sbit E=P22; sbit CS1=P24;sbit CS2=P23;sbit sw0=P32;sbit sw1=P33;sbit SCL=P34;sbit SDA=P35;void display_h(uchar page,uchar col,uchar code *str,uchar n);void display

47、_e(uchar page,uchar col,uchar code *str,uchar n);void display_num(uchar page,uchar col,uchar code *str,uchar n);void line_v(uchar x,uchar y,uchar l);void line_h(uchar x,uchar y,uchar l);void init();void cls();void delay(uint); void write_cmd(uchar); void write_data(uchar); uchar read_data(); uchar k

48、ey_ii();unsigned char code *py_v1(unsigned char input_py_val);void point(uchar x,uchar y);unsigned char *T9PY(char *strInput_t9PY_str,uchar length);#includeuchar *p_py;unsigned char PY_num;struct t9PY_index code * T9PY_mb4;uchar state=0;uchar file_num=0;uchar length_h=0;uchar row=0;*T9 输入法查找函数*函数声明:

49、unsigned char *T9PY(char *strInput_t9PY_str,uchar length);*参数说明:strInput_t9PY_str为字符串的地址,length为字符串的长度*函数功能:把找到的汉字点阵表的首地址放在数组T9PY_mb中unsigned char *T9PY(char *strInput_t9PY_str,uchar length)struct t9PY_index *cpHZ,*cpHZedge;unsigned char i;PY_num=0; if(*strInput_t9PY_str=0)return(0); cpHZ=&(t9PY_index20); cpHZedge=t9PY_index2+sizeof(t9PY_index2)/sizeof(t9PY_index20);while(cpHZ cpHZedge) for(i=0;ilength;i+)if(*(strInput_t9PY_str+i)!=*(*cpHZ).t9PY_T9+i) break; if(i=length&PY_num0)p_py=T9PY_mb0-PY;return(T9PY_mb0-PY_mb); elsereturn(PY_mb_a);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!