第4章 系统软件设计部分
4.1 PC机软件设计部分
本系统以 Visual Basic 6.0 作为开发软件来实现对硬件及显示的控制。
4.1.1 VB软件介绍
Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言。专业人员可以用Visual Basic 实现其它任何Windows 编辑语言的功能,而初学者只要掌握几个关键词就可以建立实用的应用程序[10]。VB简单易学,通用性强,用途广泛。
VB具有如下特点:
1)面向对象的程序设计的基本概念
对象是代码和数据的组合,可以作为一个单位来处理。对象可以是应用程序的一部分,比如可以是控件或窗体。整个应用程序也是一个对象。 2)事件驱动
在事件驱动的应用程序中,代码不是按照预定的路径执行,而是在响应不同的事件时执行不同的代码片段。事件的驱动可以手动操作触发也可以由系统自动触发。
3)Active 技术
Active 技术发展了原有的 OLE 技术,它使开发人员摆脱了特定语言的束缚。可方便地使用标准的 Active 部件,调用标准的接口,实现特定的功能[11]。
该系统设计选择应用MScomm控件,它的处理方式及其属性见表4-1和4-2。
表4-1 MScomm 属性
属性 CommPort Setting
功能 设 置 或 返 回 串 行 端 口 号, 其 取 值 范 围 为1 ~99, 缺 省 为1。 设 置 或 返 回 串 行 端 口 的 波 特 率、 奇 偶 校 验 位、 数 据 位 12
数、 停 止 位。 PortOpen Input Output 打 开 或 关 闭 串 行 端 口, 格 式 为:Mscomm.PortOpen={TRUE|FALSE}。 该 属 性 表 示 从 接 收 缓 冲 区 移 走 一 串 字 符 向 发 送 缓 冲 区 传 送 一 字 符 串。
表4-2 MScomm 处理方式
处理方式 事件驱动 查询 属性 由Mscomm 控件的OnComm 事件捕获并处理通信错误及事件 通过检查CommEvent 属性的值来判断事件和错误
4) MSComm 工作的步骤
①连接MSComm与串口,初始化端口号码及其CommPort。 ②设置通信协议及其他传输特性。
③将通信端口打开,设 PortOpen 属性为 True,开始进行通信。 ④数据的输入和输出,利用Input及Output实现。 ⑤PortOpen调整为Flase。
4.1.2 PC机控制界面
PC机主控界需要完成的是命令的输入。我们可以从图4.1中看到界面由四条输入汉字的文本框构成,但需要显示汉字的大小需要符合单片机的存储空间的大小,不能太大。其他的控制设置也可以通过图一眼顺利看出。界面如图 4-1 所示。
13
图 4-1 上位机控制界面
4.1.3 显示数据提取
PC机软件部分控制系统的核心是将进行显示的汉字转化为点阵数据。点阵汉字中,每个汉字的字模都有相对固定的字节数。汉字的格式不同,对应着的汉字字库也不同,为了使功耗最少,本设计采用的是的HZK12字库,它的点阵数量最少,需要点亮的汉字点阵数量就会减少。 VB提取汉字点阵数据首先要做到的一点是是否是汉字作出一个判断。假如是汉字,那么依据汉字的区位码就能计算出汉字在字库中的相应位置,然后提取该汉字的点阵数据(24字节),将其存入等待串口发送的动态数组。如果是英文字符,可以利用一样的方法提取该字符的点阵数据。 程序流程图如下:
14
打开HZK12字库否判断输入是否汉字是转换出区位码转换为ASC码计算位置计算在字库中的位置取出点阵数据(16字节)取出24字节数据完成字模
图4-2 提取汉字点阵数据的流程图
4.2 下位机软件部分设计与实现
LPC922单片机是电子胸牌设计的下位机控制系统的主部分,LPC922程序设计的功能是接收由PC机下载的显示数据,提供显示数据及各种控制信号给LED显示屏。程序设计包括:中断服务程序,主程序。
4.2.1 主程序设计
主程序需要完成初始化程序的各个模块以及按照要求调用相对应的子程序。
15

