APP下载

基于单片机的汉语教学机的设计

2017-09-18周江

智能计算机与应用 2017年4期
关键词:单片机

周江

摘要: 针对目前语文教学设备落后的现状,利用现代电子技术,使用单片机、大容量NAND Flash存储器和LED显示屏等设计出适合小学低年级语文教学使用的汉语教学机。该机能进行汉语拼音、普通话音节、词组和课文的教学。大容量NAND Flash存储器里存储的内容与教材一致,能有效地提高语文教学的效率和效果,特别是该机特有的汉字笔顺的显示功能,对学生汉字书写的规范性有极大的帮助。

关键词: 汉语教学机; 单片机; NAND Flash; LED; 汉字笔顺

中图分類号:TN912

文献标志码:A

文章编号:2095-2163(2017)04-0111-04

0引言

在当今的国内国际环境下,汉语学习赢得广泛关注,对汉语学习手段的现代化要求也日益迫切。而“汉语教学机”的研制开发正是顺应了这一广阔鲜明的市场需要。

查阅中小学教学仪器的配备标准,理科课程的教学仪器明显带有更多新技术的痕迹,而语文教学基本上还都是采用挂图的形式。与语文教学有关的只有“汉语拼音示教仪”,其功能也仅仅涉及声母、韵母、整体认读(以下简称整认)音节的发音,而并未提供视像显示。另有研究指出,学生仅靠听可以记住全部信息的15%,仅靠看可以记住25%,而视听结合则可使学生记住全部信息的64%以上[1]。为此,视听结合的汉语教学机即已成为该领域研究的发展方向。

[JP2]另外,由于计算机的普及,明显挤占了国人书写汉字的机会,这就造成了对汉字书写在规范掌握上的难题。在一些与汉字书写有关的电视节目中,虽然参与者均是学生中的佼佼者,但却依然存在诸多不规范的情况,这与目前汉字书写规范较为落后的教学手段有一定关系。“汉语教学机”特有的汉字笔顺显示功能,则能对汉字的书写发挥有效的教学规范作用。[JP]

1汉语教学机功能分析

“汉语教学机”主要有以下6个功能:

1)汉语拼音的23个声母、24个韵母、16个整认音节[2]的读音和显示。

2)普通话1 204个拼读音节的读音和显示。

3)普通话拼读音节所对应的汉字(一、二级字库,共6763个)[3]显示。

4)一级字库汉字(共3 755个)[3]的书写笔顺显示。

5)词组的朗读和显示。最初的设计是,词组的声音由构成该词组的每个汉字的声音拼接而成,比如,词组“中国”的发音,分别输出“中”和“国”的声音,两者之间稍微有点延时就行了,但实际做出来后发现效果很差,没有抑扬顿挫的感觉,不象正常人说的话,后改为使用完整的词组的声音。

6)课文(句子)的朗读和显示。因为显示屏容量的原因,使得课文的朗读和显示实际上是由句子构成的,这样显示屏的容量只要能满足一个句子的显示就可以了。

2系统硬件构成

“汉语教学机”的系统框图如图1所示。

2.1显示单元

采用红色高亮LED,分辨率128*48,使用16*16的汉字点阵,每屏可显示24个汉字。小学低年级语文课文的句子一般比较短,这能满足使用者的需求。

2.2输入单元

输入单元可以是标准键盘、红外遥控器或自己设计的矩阵键盘。可得阐释分析如下:

首先,使用标准键盘无疑是最省事的,输入方式同电脑上的拼音输入法类似,但与汉语拼音的教学不同步。比如,输入chang,用标准键盘需要输入5个字母,但从拼音的角度看,chang是由声母ch和韵母ang构成的。虽然也可以有解决办法,比如定义标准键盘上某个键为ch等,但这样需要定义的太多(23个声母、24个韵母、16个整认音节,共有63个),并不直观,而且与平常的习惯差别太大,使用者会觉得不方便而不愿意使用。

其次,采用红外遥控器的最突出优点,是教师无需邻近教学机的旁边才能操作,但缺点也很明显,红外遥控器比较小,在上面配有几十个按键,在使用上将增加一定难度。

最后,用自己设计的专用矩阵键盘,完全按照声母、韵母、整认音节的排列方式设计,虽然按键数量同样也多,但可以排列得较为直观、方便。在“汉语教学机”中实际使用的是8*9的矩阵键盘。

有一部分的键是复用的。比如,韵母的前10个(a~ao)分别是数字0~9,用于在词组或句子功能下输入词组或句子的编号,1声声调键也是回车键,用于对输入编号的确认。这样,用4个声调键可以分别实现重复、前一个句子(词组)、后一个句子(词组)、连续等功能。

2.3存储单元

选用NAND FLASH芯片。

人的语音的频率大致在300~3 400 Hz之间[4],根据奈奎斯特定理,采用8 KHz的采样频率,也能做到无失真的回放,考虑到保留一定的泛音能够使音色更好一些,应该采用更高的采样频率,比如,电话的语音一般就是单声道、8 bit、11.025 KHz的采样[4]。由于连续的语音比单个的语音在音效上更容易听得清楚,所以在汉语教学机中使用单声道、8 bit、采样频率22.05 KHz就能做到无失真的回放。汉语平舌音的频率高于翘舌音,根据经验,翘舌音采用11.025 KB/s的采样频率也能做到基本无失真的回放。如果选用8 Gb的NAND FLASH芯片(比如SAMSUNG的K9G8G08U0M[5]),即使全部使用22.05 KHz的采样频率,在不采用任何语音压缩技术的情况下,也能存储800 min左右的声音信息,完全能满足一般的需要。近几年来,NAND FLASH的容量越来越大、价格越来越低,所以在这种不需要对语音信号进行传输的应用中,完全不需要采用语音压缩技术了,可以直接使用WAV格式的语音数据。另外,存储在NAND FLASH芯片中的信息,格式可以自行定义,可以轻松获得较高的保密性。endprint

2.4控制单元

由单片机和外围电路构成,是本系统的核心。

单片机的选择主要考虑系统对硬件资源的需求。LED点阵屏一般采用串行的驱动方式,所以单片机要有SPI(Serial Peripheral Interface,串行外设接口)的功能;点阵屏的大小为128*48,需要的显示缓冲区为768字节(128*48/8),这样单片机内部的RAM至少需要2 KB以上;输入单元是8*9的矩阵键盘,需要17条I/O口线,存储单元选用NAND FLASH,需要14条I/O口线(数據线8条,控制线6条),所以单片机至少要有4个以上的8位I/O口。由于需要输出声音信息,单片机内部即需配备D/A转换器。另外,因为NAND FLASH的工作电压是2.7 ~ 3.6 V[6],为使接口电路简单方便,应该选用低工作电压的单片机。

根据以上分析,实际选用的芯片是TI的MSP430F1611。该芯片工作电压1.8~3.6 V,配有48 KB的ROM和10 KB的RAM、2个SPI接口、6个8 bit I/O口、2个12 bit电压输出型的D/A(可设置为8 bit的分辨率)和2个16 bit的定时器等[7-8],完全能够满足系统的需要。

3电路框图

语言教学机中所使用的电路比较常见,以下主要阐述MSP430F1611与K9G8G08的接口电路和128*48 LED屏的控制驱动电路。

3.1MSP430F1611与K9G8G08的接口电路

K9G8G08采用48脚的TSOP封装形式,实际使用19个引脚。图2即是MSP430F1611与K9G8G08的电路连接图。其中,K9G8G08的19脚是写保护,具体到本次设计中,只需要对K9G8G08进行读的操作,没有擦除和写的操作,为此在实际电路中是固定接地的(写保护有效)。

3.2128*48 LED屏的控制驱动电路

128*48的LED屏实际并没有接成128*48的矩阵,而是接成64*96的矩阵,因为前者对应的连接需要176(128+48)条控制线,后者所需要的控制线是160(64+96)条,少16条控制线。其中的64条是扫描线,分接的是LED点阵的负端;96条是数据线,另接的是LED点阵的正端。64条负端的扫描线是由4片4-16译码器4514产生的,任何时刻有且只有1条为“1”(高电平),再经过8片ULN2803作为驱动,连接到LED屏的64个负端。96条数据线是用12片级联的74HC595产生的,该组器件将由单片机SPI口输出的串行数据转换成并行数据,送到LED屏的96个正端。图3就是LED屏的控制驱动电路的框图。

图3中,MSP430F1611的P3.4、P3.5分别连接二进制计数器的时钟和复位信号;二进制计数器是4024,电路中要用到其7位输出中的6位,最高位不用,低4位连接到4片4514的输入端,高2位经过3-8译码器74HC138后输出4条控制线,分别接到4片4514的INH(禁止端,23脚),这样将可保证任何时刻只有1片4514有效;P3.1、P3.3、P3.6分别是12片级联的74HC595的数据、时钟和锁存信号,其中数据信号只接第一片74HC595。

3.3电路的其它部分

8*9的矩阵键盘分别连接到P4、P5和P6.0,其中P4口是键盘的8条输入线,P5和P6.0是9条扫描线。D/A使用DAC0,对应的引脚是P6.6,语音信号从这里输出。

4软件设计

4.1声音输出程序设计

这部分程序设计中最关键的是对K9G8G08的操作。在本设计中,程序只需要对K9G8G08进行读的操作。从K9G8G08的器件手册中,可以查到该操作的程序流程,此处将不再赘述。

[LL]

对K9G8G08读的程序在定时器中断时调用。对于22.05 KHz或11.025 KHz的WAV文件,定时器的中断周期分别为45.35 us或90.7 us。对于单声道、8 bit的WAV文件,对应频率可以在文件的第0x18、0x19字节得到,对于22.05 KHz和11.025 KHz的WAV文件,这2个字节的值分别是0x22、0x56和0x11、0x2B,声音信息从第0x2C个字节开始[9]。

声音输出的程序流程如图4所示。对声音的WAV文件数据,预先加入了一些处理:数据中的0x00均被改为0x01,再将文件的最后一个字节改为0x00,这样就可以用0x00作为声音文件的结束标志了,而数据中的0x00被改为0x01,对声音几乎没有影响。

当然完全可以不这样做,使用对声音数据计数的办法也未尝不可。因为WAV文件中是有声音数据长度信息的,存储在文件的第0x28 ~ 0x2B这4字节中,采用小端模式存储,即第0x28个字节存储的是声音数据长度的最低位[9]。

4.2汉字笔顺显示的流程

要能在点阵屏上显示出汉字的笔顺,只需按照书写的顺序,逐个点亮笔画中的点。以汉字“工”为例,其笔顺的显示过程如图5所示。

从图5中可以看出,第1次亮第1个点(左上的点),第2次亮第2个点(第1个点保留),第3次亮第3个点(前2个点保留)……。所以,笔顺的显示实际上是由一帧帧的画面构成的:第1帧显示第1个点,第2帧显示前2个点,……,第N帧显示前N个点……,直到显示完最后一个点。显示的汉字有多少个点,其所对应笔顺显示就由多少帧的画面构成。这样,视觉呈现效果即如有一支无形的笔,在屏上“写”出了汉字。

根据上面汉字笔顺的显示原理,可以设计汉字笔顺字库的格式,将需要显示的点的坐标,按照书写的顺序递次排列即可。

比如,以右上角为坐标原点(0,0),每个点的坐标用一个字节表示:高半字节为横坐标、低半字节为纵坐标(也可相反),如图6所示。endprint

猜你喜欢

单片机
C8051F020与80C51单片机的异同点
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器