你可以用vb带的ocx:mscomm32.ocx。另外你要明白考勤机的通信过程。

解决方案 »

  1.   

    用delphi的控件spcomm更好
    第一个问题:可以将汉字分开亮个字节发从就可以了
      

  2.   

    现在是这样的,考勤机那边需要显示汉字时,就向PC机发信息,考勤机发过来的信息,就是汉字的代码。然后PC机根据发过来的信息,给考勤机发送汉字。
      

  3.   

    str:='汉字';
    那么str的内容即‘汉字’两个字的内码共4个字节
      

  4.   

    lj_csdn(大笨蛋) :我也不知道9位数据是不是就是指8位数据位+1为停止位,只是与我合作的单片机方面的工程师要求我的通讯程序能发送9位数据,其中1位是用来起判断作用,而且只是在通讯开始的时候用到。那这个停止位在通讯过程中有什么作用呢?
      

  5.   

    有的厂商会提供这样的函数的,化你的字符串为BCD码,不管你是你不是汉字,回头再转成字符串就可以了!函数原型是asc_hex  hex_asc找一些这方面的资料就行了!
      

  6.   

    luoshumeng(乡村意外) :去哪找这方面的资料???请告知??
      

  7.   

    估计上边的都理解错误了。他需要发送的是汉字的点阵数据,考勤机根据点阵数据显示汉字。你找个汉字点阵字库,在 dos 时代很容易了。根据你说的 32 个字节,估计是 16X16 的点阵字库。0D根据对方发来的汉字内码算出此汉字在字库中的位置,把 32 个字节的点阵数据发过去就行了。
    ===============================================================
    笑眯眯的看着你
      

  8.   

    Rock兄,正是你说得那样。问题是我该怎样实现呢?你能教教我吗??
    各位高手也帮着出出主意!!OK!!
      

  9.   

    在delphi中用spcomm可以方便的实现,8位9位只是发送数据量的多少,设置spcomm的属性就可以实现。从pc到考勤机发送汉字很简单,字节转化为字节流就可以了。如果从考勤机发送到pc,就要看考勤机发送字符编码了。
      

  10.   

    spcomm的哪个属性可以实现,请楼上兄弟告知。我这里的9位数据是用来寻址的,我的PC机与多台考勤机连接,先发2个9位的数据用以确定与PC机对话考勤机。
      

  11.   

    如果你要点阵可到ucdos的hzk16,hzk24啊文件里面找,有很多书介绍了,怎么读取出点阵,只是个算法而已
    至于9位还是8位,个人理解:串口是串行数据,一般每次8位,至于里面有几位是数据就看你的通讯参数设置了
      

  12.   

    串口的参数中是有一个关于传输几位数据的参数bytesize,但这个参数的取值范围好像是4-8,设为9时,数据倒是能接收到但没有实现我所想要的寻址功能。现实通讯中也却有第9位数据这么一说,是用来寻址的。哪位做过多机通信程序的高手知道,请指教!!!
      

  13.   

    已开始的9位数,你可以通过发送两个8位的字节来实现。
    只要能够让对方监测到了不就可以了吗?汉字可以直接发送没有问题的。
    不过我对现成的控件不太有把握,比如:mscomm,spcomm等我建议用Api,需要资料,直接在网上搜索"串口通讯",就可以找到自己试试吧
      

  14.   

    串口通讯中,一个字节传输的格式一般是11位的,1位开始位、8位数据位、1位地址/数据标志位(即通常说的第9位)、1位停止位。第9位是单片机用来判断接收到的是数据还是地址的。现在我想控制这个第9位,却不知道怎么做?我的程序是用的
    API做的,但API函数中哪个函数可以控制这个第9位呢??请高手指教!!!