VB并口操作.docVIP

  • 79
  • 0
  • 约5.24千字
  • 约 6页
  • 2017-05-12 发布于河南
  • 举报
VB并口操作

sky65530 2005-11-22 09:02 我现在在XP系统下通过WINIO操作并口跟下位机通讯,我们之间有时序要求,比如读BUSY(11脚)为低(反相后)时将ENB脚置低(14脚,反相后)然后向数据端口写数据(8位一个字节数据,采用数据线)。但是传输速度特别慢,4KB数据需要3秒,50多K需要三十多秒,而且数据还不能保证正确,为什么会这样?下位机在读数据端口之前需要延时一段时间,否则就读不到正确数据,一定要延时吗? 希望哪位高手给予指点,不胜感激! xhs1115 2005-11-22 09:04 希望一起讨论? 能说得详细点么,有必要的话把程序发上来行么. 我写过一个在vc下通过并口控制16x2液晶的程序,希望能和你一起讨论一下。 你说的winIo是一个驱动吧,我用的也是这个。并口的control是双向的,在使用之前需要设置一下。另外有的控制端口需要外接上拉电阻。延迟这个东西最好用示波器看一下来确定。 ? ? 梦想成真 2005-11-22 09:12 WINIO操作并口本来就慢或者说XP下面操作并口本来就慢吗?? 是啊,控制端口用来告诉下位机我是否忙,状态端口用来检查下位机是否处于忙状态,也就是时序配合了,时序方面的配合好像没什么问题,就是下位机读数据时延迟少了就不行,这样导致整个传输速度很慢。你用并口控制液晶显示器的数据量有多少?我现在传输的速度也就1K左右,我希望达到10K以上才行。 程序是用VB做的一个小测试程序,很简单,主要就是读写端口操作,因为您是用VC的,所以不知道您是否能看明白,我大概写一下主要语句吧。 //SetPortVal(端口地址,要发送的数据,数据长度)--写端口 //GetPortVal(端口地址,存放读取数据地址,数据长度)--读端口 //读下位机状态不为BUSY时运行 for?i=0?to?4096   //发送数据循环   SetPortVal?H378,data(i),1   //向数据端口发送一字节数据data(i)   setPortVal?H379,2,1     //将ENB脚置低,告诉下位机已发送数据      //读BUSY脚,看下位机是否在处理数据   READ_BUSY    //子程序   //读BUSY脚,看下位机是否准备好接收数据   //READ_NBUSY   //子程序 next?i ? ? zlg900 2005-11-22 09:26 我测试了一下,还是比较快的。0X379是状态寄存器的地址,是不是写错了? ? sinhwa 2005-11-22 09:27 是通过状态寄存器去读下位机的状态啊? 时序是有来回的,我需要经常通过状态端口读下位机状态,下位机通过控制端口读上位机状态。? ? kanprin 2005-11-22 09:28 winio的效率? 照你的程序来看,使用了winio.dll?在一个线程中查询端口状态以及读写数据吧。  1)winio不支持并口的中断传输,你只能通过poll?发式读写数据。  2)?windows?xp是一个多任务操作系统,你的并口读写程序和其他程序一起运行,windows?xp在内部进行进程切换调度,所以不是100%?cpu时间被你的并口占用。  3)另外,使用winio.dll,你必须在每次wm_timer消息发生时判断并口状态,读写数据(使用vc++的人比较明白),wm_timer消息使用系统定时器的单位为ms,也就是,理论上,使用winio.dll最快的速度下,每1ms的间隔windowxp才切换到你的 并口程序。也就是?8kbit*1ms,每秒1KByte左右。  4)你可以在一个进程中开两个线程,主线程负责界面,工作线程在背后一直查询并口状态,这样可以使cpu利用效率最高。  (目前我的程序这样工作的,用masm写的)  5)如果需要window?xp立即响应并口数据传输消息,需要自定义并口驱动 ,你可以参考微软的wdm?,或者FOUR-F?KMD?教程。? WINACQ.DLL及WINACQ16.DLL在WINDOWS9X下为VB3编写直接端口操作类的数据采集软件提供了非常便利的条件,它不仅能准确的读入外部端口的数据,还可以向外部端口发送数据、实时读入键盘状态、实时打印列表输出等。由于其简单易用的特性,它不仅被广泛应用于数字DIO板、数字计数板、AD及DA转换板在VB3下的直接驱动,还被应用于并口和串口IO的实现。VB6在VB3下进行大规模的改进,从16位平台提升到32位平台。DAQCHINA随后将WINACQ.DLL提升至WINACQ32.DLL,满足了VB6用户在WIN9X下对端口采集的需求。无论是WINACQ,WINACQ16还是WINACQ32,均可以在

文档评论(0)

1亿VIP精品文档

相关文档