您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 基于Labview的汉字点阵字模提取
-0-目录0前言...............................................................21总体设计方案………………………………………22软件设计2.1输入汉字个数符合要求跳出对话框设计…………………42.2获取首字节位置设计………………………………………42.3从HZK16中提取汉字字模的设计……………………….42.4前面板LE显示汉字的设计……………………………….42.5前面板十六进制汉字字模………………………………....53程序调试……………………………………………54参考文献……………………………………………75课设体会……………………………………………8-1-基于labview的汉字点阵字模提取苑庆爽沈阳航空航天大学自动化学院摘要:介绍了汉字字符的存储结构、编码方案和显示方式;并利用LabVIEW软件灵活、简便地从计算机的汉字库中提取汉字字模并转换为供单片机直接调用的十六进制字模数据.关键词:LabVIEW;点阵字模;文件I/O0.前言LabVIEW(LaboratoryVirtualInstrumentsEn2gineeringWorkbench)是美国国家仪器公司创新软件产品,也是目前应用最广、发展最快、功能最强的图形化软件开发集成环境.使用这种语言编程时,基本不需要编写程序代码,而是“绘制”程序流程图.它提供了函数库和高级分析子VI,用户只需调出对应的操作、功能、数据处理的节点,配置相关参数,连接好程序框图,就可完成相应的程序在虚拟仪器系统中,信号的获取与采集由以计算机为核心的硬件平台来完成,在这一平台上,调用不同功能的软件可构成不同功能的虚拟仪器,软件是根据不同的信号分析与处理技术编制的。时至今日,信号的分析与处理方法很多,在设计虚拟仪器时,需要根据仪器的功能要求和所处理信号的实际情况选择合适的分析和处理方法。在显示技术日益发展的今天,汉字点阵文件显示技术已经成熟,但是在单片机控制的标语指示、车站机场车次航线显示、银行汇率显示等系统中,使用汉字字库芯片并不经济.因此,可以利用计算机的汉字库文件,直接调用汉字库文件,然后提取字符字模,节约了硬件开支.LabVIEW中功能强大的文件I/O函数可以方便地提取二进制文件中指定起始位置、指定字节数的数据,并且其丰富的前面板资源可以形象逼真的显示提取的字符,特别适合汉字点阵字模提取程序的编写。1.总体设计方案本设计主要利用汉字字符的存储结构,以及汉字字符的编码方案的特点,利用labview图形化编程的特点,以及labview中字符串、数组,数字型变量、布尔型变量,循环判断图框来进行汉字紫镆的提取。-2-程序框图输入单个汉字自动生成机内码,并通过计算得到首字节位置输入不是一个汉字或者不是汉字,提示用户错误读取首字节和标识号送入SetFilePosition.VI,并从该位置往后连续数32个字节送入8*4矩阵,得到十六进制汉字点阵字模(横)中显示通过一个FOR循环,并将数组转换为布尔量,以供前面板16*16的LED面板显示汉字将得到的矩阵转置,用得到字模(横)逆方法得到十六进制元素。转化为8*4的矩阵。并送入前面板显示,既是十六进制汉字字模(竖)-3-2.软件设计2.1输入汉字个数符合要求跳出对话框设计正常每个汉字占用两个字节,输入汉字结束后通过字符串长度函数得到输入的汉字的总长度,再通过“不等”比较与2的关系,通过case函数,当长度与2不等时为真,此时单按钮对话框输出“请输入单个汉字”提示用户。当输入的汉字字节数为2为假,机内码将通过case函数,进入到下一步的程序中。2.2获取首字节位置设计将汉字输入计算机,就可以得到汉字的机内码,机内码是系统内部处理和存储汉字统一使用的代码,它由两个字节构成.汉字机内码与区位码的关系为:区位码=机内码-160对于16×16点阵字库,每个汉字占用32个字节,其首字节的起始位置的计算公式为:首字节=[(区码-1)×94+位码-1]×322.3从HZK16中提取汉字字模的设计在输入一个汉字后,得到这个汉字的机内码,从而进一步计算得到这个汉字字模首字节在汉字库文件HZK16中的位置。同时将一个指明汉字库文件HZK16路径的常量送入Open/Create/ReplaceFileVI的filepath端口,将文件HZK16打开并得到文件的标识号,对汉字库文件的后续操作都是依据这个标识号来进行。将文件HZK16的标识号和得到的汉字字模首字节地址分别送入SetFilePositionVI的refnum端口和offset端口即指明了汉字字模在文件HZK16中的起始位置,接着将得到的refnum送入读二进制文件节点ReadfromBinaryFileVI的file端口,同时在count端口指明读取的字节数量32,读二进制文件节点就会从汉字库文件HZK16中,根据得到的字模起始位置起,连续读取32个字节的数据,这样就得到了一个容量为32的数组,即输入汉字的点阵字模。2.4前面板LE显示汉字的设计在前面板的模拟LED显示中,其输入应为16×16LED矩阵,且矩阵的每个元素为布尔量,所以应该将得到的一维数组字模进行相应的变换才能送入模拟-4-LED显示。利用一个For循环,将一维数组的每个十六进制元素通过NumberToBooleanArrayVI转化为布尔量,这个布尔量与应该得到的布尔量是前后颠倒的,所以应将转化的布尔量数组通过Reverse1DArrayVI再一次颠倒并通过转化为16×16矩阵,送入前面板显示。2.5前面板十六进制汉字字模从HZK16中提取汉字字模是一维数组,而前面板字模的显示方式是8×4的矩阵,利用ReshapeArrayVI,在其对应端口指明行数和列数,就可以将一维数组字模转换为8×4的矩阵并送入前面板的十六进制汉字字模横)中显示。为了得到竖排格式的十六进制汉字字模,可以将得到的16×16布尔量矩阵用Transpose2DArrayVI进行转置,再将转置后的布尔量通过上述方法的逆方法得到十六进制元素,然后通过ReshapeArrayVI转化为8×4的矩阵并送入前面板的十六进制汉字字模(竖)中显示。3.程序调试1.前面板输入“航空”2字前面板图像-5-后面板case函数图像2.输入“航”字前面板图像后面板case函数图像-6-参考文献[1]沈晶.汉字字模的拾取及其在LED显示系统中的应用.陕西.科技大学学报,2004[2]杨乐平.LabVIEW程序设计与应用.北京.电子工业出版社,2005[3]侯国屏.LabVIEW7.1编程与虚拟仪器设计.北京.清华大学出版社2005[4]崔惠柳.虚拟仪器技术及其新进展.广西.科学院学报,2005[5]侯国屏.LabVIEW7.1编程与虚拟仪器设计.北京.清华大学出版社,2007[6]陆绮荣.基于虚拟仪器技术个人实验室的构建.北京.电子工业出版社,2006[7]王海宝等.LabVIEW虚拟仪器程序设计与应用.四川.西南交通大学出版社,2005[8]李刚,林凌.LabVIEW—易学易用的计算机图形化编程语言.北京.北京航空航天大学出版社,2001-7-课设体会本次labVIEW课设体会很深。起初不知如何下手,后来在老师的指导下,将整个任务分解成多个部分,然后通过查阅资料,自学软件的库函数的部分功能,终于有了实质性的进展。正当我兴奋不已的时候,发现将各个模块拼接在一起的时候问题又出现了,包括字符串、数组之间转换等等,尤其是在从HZK16中提取字模的程序中,每次调试都会出现关于权限的问题,后来发现,每个函数的输入输出端都有一个错误的进出口,最后通过这个进出口找到问题的所在,既是读取HZK16文件的函数,没有给设置具体是只读,还是既读又写,还是只写,也就是所谓的权限问题,这个问题解决后,茅舍顿开。那种成功后的感觉是发自内心的喜悦。大三了,毕业的脚步也越来越近了,课设的意义不言而喻,但是面对科学技术,我们所学到知识只是沧海一粟,远远不够,未来还有很多路,通过本次课设我也成长了很多,感谢学校的悉心栽培,感谢老师的不厌其烦的讲解,我一定会继续努力,为梦想而不懈努力,勇往直前-8-附录1程序总框图
本文标题:基于Labview的汉字点阵字模提取
链接地址:https://www.777doc.com/doc-2570338 .html