tornadodo
驱动牛犊
驱动牛犊
  • 注册日期2004-11-28
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4032回复:17

求对并口操作的简单原码!(我想用并口来控制电机的转动)

楼主#
更多 发布于:2004-11-28 22:11
我用VC使用了winio。在按照网上介绍的步骤写了一个程序。但编译的时候总是说没有找到winio.h。我是想用并口来控制电机的正反转。但以前没编过。很生疏。不知道这里有没有人编过对并口的控制程序。能否发一份简单的原程序给我。谢谢了。在网上找一直没有找到。我的EMAIL: tornadodo@163.com

我只要能够对并口发送高电平和低电平以控制电机!
tornadodo
驱动牛犊
驱动牛犊
  • 注册日期2004-11-28
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-29 10:02
大伙帮帮忙啦.有想法的.有意见的都可以提一下啊!!
fu_tiansweet
驱动老牛
驱动老牛
  • 注册日期2004-01-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望526点
  • 贡献值0点
  • 好评度281点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-29 10:05
我这到有一份,而且并口操作也成功,同样使用的是Winio库,请问你需要吗?
tornadodo
驱动牛犊
驱动牛犊
  • 注册日期2004-11-28
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-29 10:11
要啊.很需要啊!!!能发到我的邮箱里来吗?
email:tornadodo@163.com
thanks!
fu_tiansweet
驱动老牛
驱动老牛
  • 注册日期2004-01-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望526点
  • 贡献值0点
  • 好评度281点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-29 10:23
我可以告诉你怎么做,但不敢给你发程序(公司不允许)

你利用winio库,自己再封装一个库,然后调用winio中的函数即可,千万要注意,一定要把winio.dll,winio.vxd,winio.sys自己的库的文件夹和自己的程序的文件夹中

试一试,看可以吗?

呵呵
tornadodo
驱动牛犊
驱动牛犊
  • 注册日期2004-11-28
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-11-29 10:47
我是按下面步骤做的:

1.Place winio.dll, winio.vxd and winio.sys in the directory where your application's executable file resides.
2.Add winio.lib to your project file by right clicking on the project name in the Visual C++ workview pane and selecting "Add Files to Project...".
3.Add the #include "winio.h" statement to your source file.
4.Call InitializeWinIo.
5.Call the library's functions to access I/O ports and physical memory.
6.Call ShutdownWinIo.

我有几个问题,就是第二部前半句不知道什么意思!
我用对话框编一个对并口操作的.一开始我就调用InitializeWinIo. 再在OK()下面调用 ShutdownWinIo. 但BUILD的时候就是说不能打开"winio.h".能不能帮忙解决一下问题?
fu_tiansweet
驱动老牛
驱动老牛
  • 注册日期2004-01-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望526点
  • 贡献值0点
  • 好评度281点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-29 11:08
那一句的意思是说:要将winio库加到你创建的工程文件中

你调用InitializeWinIo成功了吗?
tornadodo
驱动牛犊
驱动牛犊
  • 注册日期2004-11-28
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-11-29 11:11
不知道啊!!主要是编译都没通过.!本来还想做做收发的.我都不知道有没有调用成功啊,所以我现在一点也做不下去了.
fu_tiansweet
驱动老牛
驱动老牛
  • 注册日期2004-01-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望526点
  • 贡献值0点
  • 好评度281点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-11-29 11:26
首先你要把winio.dll,winio.vxd , winio.sys 放到你的工程所在的目录文件夹中。
然后打开你的VC工程,把winio.lib 和winio.h文件添加到工程文件中(vc工程的左面的面板中,右键天夹文件即可)
然后你再试一下,应该就可以通过编译了。
tornadodo
驱动牛犊
驱动牛犊
  • 注册日期2004-11-28
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-11-29 13:21
谢谢.现在编译通过了.主要是我没把WINIO的头文件没有添加到文件夹里面!!不过我对并口操作还是没有什么头绪.你能指点一下吗?象怎么写数据.怎么读数据??并口的数据区,状态区.控制区,各怎么处理?
fu_tiansweet
驱动老牛
驱动老牛
  • 注册日期2004-01-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望526点
  • 贡献值0点
  • 好评度281点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-11-29 14:24
并口即个人电脑并行接口是从简单的打印机接口发展而来。早期的并口是单向口,它只是简单的把数据
从计算机传送到打印机。随着双向并口的出现,并口的用途也越来越广泛。相较于串口它有传输快、可靠
性高,编程简单的特点。在近距离通信方面正在逐步取代串口。

  由于双向并口是各制造商独自设计没有一个统一的规范。逐渐形成了如下的并口模式:
  1、原始并口SPP                单向8位+双向4位
  2、简单双向PS/2               双向8位
  3、增强并口EPP                高速双向
  4、扩展并口ECP                高速双向可靠
  5、多模式口ECP+EPP            可工作于多种模式

  25针接口管脚分布图

  2-9   数据     D0-D7           双向
  
  1     选通     /STB
  14    自动换行 /AFD            输出
  16    初始化   INIT
  17    选中     /SIN

  10    应答     ACK
  11    忙       /BUSY
  12    页尽     PE              输入
  13    联机     SLCT
  15    出错     ERROR

  18-25 接地     GND             回线

  端口地址:
              3BCH-3BEH
              378H-37AH
              278H-27AH
       其中第一个地址是基地址,即数据寄存器,第二个是状态,第三个是命令寄存器。
       EPP寄存器是基址+3到+7共附加5个寄存器,ECP是基址+400H到+402H之间的寄存器
  端口位分配:
       状态:  D7    D6    D5    D4    D3    D2    D1    D0
               -     -     ?     IRQ   SIN   INIT  AFD   STB

        命令  BUSY   ACK   PE    SLCT  ERROR -     -     -

       注意:一些早期的并口以及现在所有的并口将"?"置1可以输入数据

  访问端口:主要有直接I/O及间接I/O。其中间接I/O包括BIOS,API,VXD,控件等。
  通信握手:一般使用SIN,SLCT进行联络。

  从并口输出数据:
                  PC检测BUSY是否忙,忙则等待。发数据,置STB,检测ACK是否响应,是则清STB否则等待。
                  外设检测STB是否选通,是则置BUSY否则等待。读数据,处理后发ACK清忙。

  从并口输入数据:将"?"置1设为输入数据的模式。
                  外设检测STB是否忙,忙则等待。发数据,置ACK,检测AFD是否响应,是则清ACK否则等待。
                  PC检测ACK是否选通,是则置STB否则等待。读数据,处理后发AFD清忙。

利用winio库中的函数即可直接操作并口。要注意控制线的处理。

呵呵,给我点专家分吧
tornadodo
驱动牛犊
驱动牛犊
  • 注册日期2004-11-28
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-12-07 22:18
我又遇到问题了.大家给点意见啊!
1.我想对并口的数据口操作是不是都要检查控制区和状态区或对控制区进行设置?
2.程序中给出的读写函数可以对双字操作.这个双字中的数据是从数据口怎么读写的?是8个8个发的.还是其他的?
3.网上有用outputb(),inputb()的函数对IO口操作.不知道应该怎么用它?

急切需要高手们的帮助!现在我是止步不前了.
最好哪位高手能有MSN或者其它联系方法.我能直接问你!!!

跪谢了!!!
xx_focus
驱动中牛
驱动中牛
  • 注册日期2003-08-06
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望10点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-12-08 14:31
http://www.driverdevelop.com/index.php
有例题,不用安装
tornadodo
驱动牛犊
驱动牛犊
  • 注册日期2004-11-28
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-12-08 22:02
哪里啊??怎么我找不到啊??各位老大,能发个现成的简单的程序吗??
tornadodo@163.com
xx_focus
驱动中牛
驱动中牛
  • 注册日期2003-08-06
  • 最后登录2007-06-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望10点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-12-09 15:50
源代码共享

-〉IO 端口驱动
Gong_XG
驱动太牛
驱动太牛
  • 注册日期2002-10-01
  • 最后登录2010-11-25
  • 粉丝0
  • 关注0
  • 积分313分
  • 威望46点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-12-12 21:13
我可以告诉你怎么做,但不敢给你发程序(公司不允许)

你利用winio库,自己再封装一个库,然后调用winio中的函数即可,千万要注意,一定要把winio.dll,winio.vxd,winio.sys自己的库的文件夹和自己的程序的文件夹中

试一试,看可以吗?

呵呵

win2k下不行吧!
参考一本“vc扩展编程”
yangxin002
驱动中牛
驱动中牛
  • 注册日期2004-08-01
  • 最后登录2005-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-12-18 17:50
有点自卑!!
ZHULUSHENG
驱动牛犊
驱动牛犊
  • 注册日期2003-10-27
  • 最后登录2006-07-04
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-12-28 10:31
其实不用了解很复杂。只要用INP OUTP对并口地址进行访问就可以控制电机正反转。但是不实时。并口地址我忘了你看看我的电脑里。
游客

返回顶部