APP下载

基于VFOX的串口票据打印机系统设计

2012-07-12华中科技大学武昌分校信息科学与技术系

电子世界 2012年18期
关键词:数据位波特率字符

华中科技大学武昌分校信息科学与技术系 陈 青 周 晶

基于VFOX的串口票据打印机系统设计

华中科技大学武昌分校信息科学与技术系 陈 青 周 晶

本文详细介绍了在VisualFoxPro6.0数据库中,如何完成串行口票据打印机的硬件连接,以及利用程序控制方法实现软件表格的输出。

打印机;串行口;波特率;控制命令

一、系统硬件构成

打印机采用北京讯普(SIUPO)公司SPTL4004SK针点式80列字符串口打印机。接口为RS-232电平25针串行I/O口。打印机备有DC 5v-3A电源插口。该款打印机内部自带标准ASCII字符集,和国标二级汉字字库。可打印5X7标准字符,同时也可以打印12X12、16X16点阵汉字。打印机内部设置有35个ESC/P控制命令,与IBM/EPSON ESC/P兼容,同时具有FS标准汉字控制指令集。

25针串口引脚连接如下:1脚+5v(可选接)、2脚RXD(输出:打印机向主机发送控制码)、3脚TXD(输入:打印机从主机接收数据)、4脚CTS(输出:信号“MARK”状态高电平,表示打印机忙;信号“space”表示就绪可接收数据。5脚GND。

按照以上规格可以自制连接串口电缆线,用DB25针RS-232公头接口可以将2、3、4、5脚直接连DB9母头端口上,因此可将台式电脑的COM1口直接连接打印机串口。

打印机硬件设置:串口通讯波特率可以在:150、300、600、1200、2400、4800、9600、19200中可选,默认9600。通过DIP6开关设置,本文使用设置状态是:110011,即:波特率2400,8位数据位,无校验位。

二、VFOX软件设计

1.有关打印机汉字控制命令

汉字打印命令包括进入和退出汉字打印、执行和取消汉字倍宽打印和设置汉字点阵打印规格等功能,常用命令如下:

图1 程序设计思想

(1)进入/退出汉字打印命令

进入:ASCII:FS &;16进制:1C 26;退出:ASCII:FS.;16进制:1C 2E

(2)执行/取消汉字倍宽打印

执行:ASCII:FS SO;16进制:1C OE取消:ASCII:FS DC4;16进制:1C 14

打印机收到此命令后,汉字将在横向放大一倍,纵向不改变。每个倍宽方式的执行最多保持一行。

2.选择字符集命令

SP系列打印机汉字打印外,还提供了字符集1进行字符打印。字符集1中有6×8点阵字符224个,包括ASCII字符及一些图形及字符。

(1)选择字符集1:ASCII:ESC 6;16进制:1B 36

在该命令输入之后的字符均使用字符集1的字符进行打印。

(2)设置n点行间距:ASCII:ESC I n;16进制:1B 31 n

后面的换行命令设置n点行间距,n的值是0-255之间,在使用ESC/K命令打印点阵图形时,通常设置n=0。文本打印时通常设置n=3。

三、有关打印机命令在VisualFoxPro上的实现

1.有关计算机串口COM1端口的控制命令

主要用于打开计算机串行接口COM1,并设置串行通信的波特率以及数据位,将它们放在“开始打印”按钮的click事件中就可以实现打印机和计算机的串行通信。

#define COM1 1 &&此段程序由于串口初始化部分

comm1=createobject("mscommlib.mscomm.1")&&创建Microsoft Communications control控件对象

图2 打印程序部分代码

comm1.commport=COM1 &&指定COM1口工作,也可以是其它端口。

comm1.portopen=.t. &&打开COM1口。

comm1.settings="2400,n,8,1"&&设置传输速率(波特率2400),无奇偶校验,数据位8,停止位1

2.利用函数chr(X)将输出的打印机命令按十六进制格式送入打印机完成控制

例如:当从VFP命令状态下,向打印机发出下列控制码:chr(0x1c)+chr(0x26)设定进入汉字打印。再发出命令:chr(0x1b)+chr(0x36)设定字符集1;输入“How are you!”该字符串将在打印机上打印。

注意:ASCII码打印只有在打印缓冲区满时,或遇到换行(0X0A)回车(0XOD)才执行打印。

3.程序设计思想

程序设计思想如图1左所示。

4.程序实例分析

在现阶段的打印机应用程序中,主要通过USB口/或LPT1口实现数据的传输的,较少有直接通过串口控制打印机实现打印。本例通过VisualFoxPro实现了利用COM1串口让微型票据打印机实现打印输出数据表格的作用。启动应用程序运行后其菜单功能界面如图1右所示。

(1)技术要点

本例主要是通过VisualFoxPro的表单按钮实现对数据表的直接操作,实现串口打印的,其中的text属性直接和数据表关联,所有Button按钮的click(触发响应)事件都对应特定的功能代码。

本实例具有可移植性,可以在任意计算机上实现串口通信打印。

(2)实现过程

①新建一个项目,命名为Ex13_02,默认窗体为Form1。

②在Form1窗体中,主要添加6个Button按钮,“开始打印”按钮用于控制打印机输出,其他按钮用于对数据表的操作。

③打印程序部分代码如图2所示。

[1]北京迅普电子技术公司.面板式微型打印机使用说明书[OL].HTTP://WWW.SIUPO.COM.

[2]史济民,等.VisualFoxPro及其应用系统开发[M].清华大学出版社,2006,8.

猜你喜欢

数据位波特率字符
UART 波特率检测电路的FPGA 设计算法与实现
A320飞机大气数据的采集和计算在排故中的应用
CAN 总线波特率自适应程序设计
字符代表几
一种USB接口字符液晶控制器设计
HBM电子称与西门子S7-200系列PLC自由口通讯
消失的殖民村庄和神秘字符
波特率自适应的CAN驱动在嵌入式Linux下的实现①
微弱GPS信号避开比特跳变的捕获算法
一种适用于FPGA系统中的变速箱电路设计