[讨论]关于海信POS机(HK200)请教的问题 请问各坛友,有谁在用融通软件?前台是DOS系统收银软件3.13版的,我公司前几天购买了一批海信POS机,但是顾显没有驱动,终于不知道怎么调。请高手指点 顾显型:VC110 一、概述: 1. 应用范围及特点 HK-VC110 型客户显示器是一种用于向顾客显示信息的设备,因采用了荧光数码管 显示,所以显示亮度高,并可显示数字、及一些固定汉字。适用于POS型收款机系统,医院车站等的收费显示系统。 2.技术性能: (1) 显示屏外形尺寸:150X 40X 8.5 (2) 显示颜色:绿色、黄色 (3) 显示字符数量:10个字符(10列×1行) (4) 显示汉字:多谢惠顾、单价、合计、收款、找零。 (5) 工作电压:12V±5% (6) 接口:RS232c 串行接口 波特率:9600 (7) MTBF:小时 (8) 功率:5W 3.使用环境: (1) 工作温度: 5℃ - 40℃ (2) 储藏温度:-20℃ - 55℃ (3) 工作湿度: 20% --- 90% (4) 储藏湿度: 20%--- 93%
二、测试 1. 测试主机系统设置 · 测试主机的COM3的9脚设为+12V,客显端口连在COM3上。 B 请确认客显使用的电压是否与主机设定的相符。 2.客显自检 客显及测试主机系统连接好后打开测试主机电源,客显运行自检程序。如果正常, 主机运行CHECK.EXE 检测程序。如果一切正常,客显调试通过。
三、编程及技术参考 1. HK-V110命令简介 通信波特率:9600 bps 校验位:无 数据位:8 bit 停止位:1bit (1)CLR 清屏命令 ASCⅡ 码 格式: CLR 十进制: 格式:[012] 十六进制: 格式:[0CH] (2)ESC@ 初始化命令 ASCⅡ 码 格式:ESC@ 十进制: 格式:[027][064] 十六进制: 格式:[1BH][40H] (3)ESC Q A d1d2d3……dn CR 送显示数据命令 ASCⅡ 码 格式:ESC Q A d1d2d3……dn CR 十进制: 格式:[027][081][065]d1d2d3……dn[013] 十六进制: 格式:[1BH][51H][41H]d1d2d3……dn[0DH] 注: 30H<=dn <=39H OR dn=2EH OR dn=2DH (4)ESC s n 设置“收款”、“单价”、“合计”、“找零”字符显示状态命令。 ASCII 码 格式:ESC s n 十进制 格式:[027] [115] n 十六进制 格式:[1BH][73H] n 注: a. 0<=n<=4 b. (1). 当 n=0 , 四种字符 全暗。 (2). 当 n=1, “单价”字符 亮,“多谢惠顾”亮,其它三种暗。 (3). 当 n=2, “合计”字符 亮,“多谢惠顾”亮,其它三种暗。 (4). 当 n=3, “收款”字符 亮,“多谢惠顾”亮,其它三种暗。 (5). 当 n=4, “找零”字符 亮,“多谢惠顾”闪烁,其它三种暗。
2.VC110客显函数库及例程
#include <bios.h> #include <string.h> #include <dos.h> #include <stdio.h>
#define WAITIME 30000 #define DBUF 0X0 //数据发送寄存器 #define LSR 0x5 //线路状态寄存器
int giCustdisPort; //端口号:0:com1,...3:com4; unsigned portaddress[]={0x3f8,0x2f8,0x3e8,0x2e8}; //端口地址 /////////////////////////////////////////////////////// //函数: VC110_SendCh //功能: 向客显输出字符 //参数: c:要输出的字符 //全局变量: giCustdisPort //返回: 0:正常输出;-1:超时 int VC110_SendCh(char c) {
unsigned long i=0; do{
i++; if (i==WAITIME) break; } while (!(inportb(portaddress[giCustdisPort]+LSR) & 0x20)); /* 等待发送操作就绪 */ if (i<WAITIME) { outportb(portaddress[giCustdisPort]+DBUF,c); return 0; } else return -1; } ////////////////////////////////////////////////////// //函数: VC110_SendArray //功能: 向客显输出数据数组 //参数: iQuautity:数据个数 // array:数据数组 //返回: 0:成功;-1:失败 int VC110_SendArray(int iQuautity,char array[]) { int i,iResult;
for(i=0;i<iQuautity;i++) iResult=VC110_SendCh(array[i]);
return iResult; }
/////////////////////////////////////////////////////////// //函数: VC110_CLS //功能: VC110屏幕全清 //参数: 无 //返回: 0:Success;-1:Fail int VC110_CLS(void) { int iResult;
iResult=VC110_SendCh('\x0c');
return iResult; } ///////////////////////////////////////////////////////// //函数: VC110_Init //功能: 初始化(设置通信参数并清屏) //参数: pt:端口号,0:COM1,...3:COM4 //返回: 0:Success;-1:Fail int VC110_Init(int pt) { int iResult;
giCustdisPort=pt; bioscom(0,0xe0|0x03|0x00|0x00,pt); // 9600,8,1,n iResult=VC110_CLS();
return iResult; } /////////////////////////////////////////////////////////// //函数: VC110_DisStr //功能: 在VC110上显示字符串 //参数: str:要显示的字符串,当没有小数点时,str的长度为1到10之间, // 当有小数点时,str的长度为1到20之间。 //返回: 0:Success;-1:Fail int VC110_DisStr(char str[]) { int iResult; char gaData[30]='';
sprintf(gaData,'\x1b\x51\x41%s\x0d',str); iResult=VC110_SendArray(strlen(gaData),gaData);
return iResult; }
//###################### 主函数 #############################
void main(void) {
VC110_Init(2); //初始化,端口为COM3 VC110_DisStr('12345678.90'); //显示'12345678.90' VC110_SendArray(3,'\x1b\x73\x01'); //'单价'亮,”多谢惠顾”亮, 其它三种暗. VC110_SendArray(3,'\x1b\x73\x02'); //'合计'亮,”多谢惠顾”亮, 其它三种暗. VC110_SendArray(3,'\x1b\x73\x03'); //'收款'亮,”多谢惠顾”亮, 其它三种暗. VC110_SendArray(3,'\x1b\x73\x04'); //'找零'亮,”多谢惠顾”闪烁, 其它三种暗. }
综合资料 搜索更多相关帖子: 综合资料 |