1、 目录目录 中文摘要及关键词.V Abstract unsigned int n; unsigned int strings; while(1)/所有显示效果都是无限循环 for(n=0;n8)=0xA1 else if(charctor8)=0xB0 5. 5 片上 E2PROM 的空间分配 STC12C 系列单片机是采用 IAP(在应用可编程)技术,把内部除了程序占用空间以 外的 Flash存储区当作 E2PROM 使用。 因此 E2PROM 在 Flash物理空间中的地址应由程 序代码的大小决定。 本设计的单片机代码量为 5.2K 字节。仅占用整个 Flash空间的前 11 个扇区(每扇
2、 区 512 字节) ,因此从第 12 扇区到第 24 扇区共 6K 字节的 Flash 空间可做 E2PROM 使 用。考虑到以后对程序的修改、显示功能的完善等。给程序预留 9.5K 字节的空间。仅 使用第 20 扇区到第 24 扇区共 2.5K 字节 Flash作为 E2PROM 使用。 在 E2PROM 中,第 20 扇区保存了上位机对下位机的各项设置常数,第 21 扇区到 第 24 扇区则保存着待显示汉字的 GB2312 标准内码。 本设计中,对 E2PROM 的空间规划如图 5.4 所示: 图 5. 4 单片机内部 E2PROM 空间规划 56 单片机与 PC 机间的通信协议 一个最
3、完整的通信系统至少是由通信链路和通信协议两部分组成。本设计使用的 链路是符合 EIA(美国电子工业协会标准)的 RS-232C 链路协议。 本设计制定上位机往下位机发送命令/数据流的帧格式如图 5. 5 示。 图 5.5 数据流的帧格式 根据图 5. 5 的帧格式,制定通信协议如下: (1)下位机不断检测收到的数据,若检测到握手字 0xA0 则执行 II,否则重复 I (2)继续接受 1 字节数据,若为同步头 0xFA 则执行 III,否则跳转至 I (3)下位机连续接受 7 字节的设置数据,并返回各字节数据的反码 (4)上位机不断检测下位机发出的取反校验字,若校验出错则报警,否则执行 5 (
4、5)上位机继续向下位机发送汉字内码数据 (6)下位机不断接收内码并保存,但不返回校验字 (7)若下位机检测到上位机发出的传输结束命令字 0x8F,则结束通信过程 由于本系统为有线传输,的通信电缆长度仅为 5 米,故在通信过程中产生误码的 几率很小。在软件的协议处理中未作复杂的校验计算。 第 6 章 上位机软件设计 61 上位机软件开发环境及语言 本设计采用 Visual Basic 6.0 IDE 做为上位机软件开发平台,因为它具有以下两个 最重要的特点: (1)面向对象 VB 采用了面向对象的程序设计思想。它的基本思路是把复杂的程序设计问题分解为一 个个能够完成独立功能的相对简单的对象集合,
5、所谓“对象”就是一个可操作的实体,如 窗体、窗体中的命令按钮、标签、文本框等。 (2)事件驱动 在 Windows 环境下,程序是以事件驱动方式运行的,每个对象都能响应多个不同的事 件,每个事件都能驱动一段代码事件过程,该代码决定了对象的功能。通常称这种 机制为事件驱动。事件可由用户的操作触发,也可以由系统或应用程序触发。 62 上位机软件流程 因为是采用 VB 语言进行设计,故是采用面向对象的思想进行编程.没有像 C 语言 一样的具体流程,只能将各主要控件的主要事件响应作简要流程说明,如图 6. 1 示。 图 6. 1 上位机软件事件流程 63 上位机软件界面设计 631 控件布局 对上位机
6、软件界面的设计如图 6. 2 示。 图 6.2 上位机软件界面 632 MSCOMM 控件设置 VB 的 MSComm 通信控件具有丰富的与串口通信密切相关的属性及事件,提供了 一系列标准通信命令的接口,可以用它创建全双工的、事件驱动的、高效实用的通信程 序。在本设计的实际运用中,对 MSComm控件的属性设置如下: ComPort :12 DTREnable :true EOFEnable :false Handshaking :0-comNone InBufferSize :1024 InputLen :0 InputMode :1 NullDiscard :false OutBufferSize :512 ParityReplace :0 RThreshold :1 RTSEnable :false Settings :9600,n,8,1 SThreshold :1 64 上位机软件关键算法实现 6. 4. 1 PC 机串口操作 VB