CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  语言基础/算法/系统设计

请问,在delphi中,访问端口的函数是什么?

楼主linwolong(卧龙)2003-01-03 12:50:28 在 Delphi / 语言基础/算法/系统设计 提问

我要做一个自动控制系统的软件,需要访问一个采集卡的端口(220H+4),在turbo   c语言里用   inportb()和outputb(),而在delphi里是那个函数?  
  我查了一下在turbo   pascal利用的是port[]专用数组访问端口,如   port[$220+4]:=30;  
  即把30送到220H+4端口。可是在delphi里,编译说是potr未定义,看来不能用!  
  如果没有的话,我只好嵌入汇编了。可是有些麻烦,需要A/D,   D/A转换。  
   
  哪位知道?救我! 问题点数:20、回复次数:11Top

1 楼linwolong(卧龙)回复于 2003-01-03 12:51:39 得分 0

要交软件了,哪为知道,送20分!Top

2 楼diruser(既来之,则安之)回复于 2003-01-03 12:53:42 得分 0

帮你upTop

3 楼goodloop(小志)回复于 2003-01-03 21:56:17 得分 0

upTop

4 楼guowzgyc(Developer)回复于 2003-01-04 15:22:26 得分 7

function   PortIn(IOport:word):byte;   assembler;  
  asm  
      mov   dx,ax  
      in   al,dx  
  end;  
   
  function   PortInW(IOport:word):word;   assembler;  
  asm  
      mov   dx,ax  
      in   ax,dx  
  end;  
   
  procedure   PortOut(IOport:word;   Value:byte);   assembler;  
  asm  
      xchg   ax,dx  
      out   dx,al  
  end;  
   
  procedure   PortOutW(IOport:word;   Value:word);   assembler;  
  asm  
      xchg   ax,dx  
      out   dx,ax  
  end;  
  Top

5 楼wks(井中男孩)回复于 2003-01-04 18:02:02 得分 9

unit   wInOut;  
   
  interface  
   
  uses  
      SysUtils;  
   
  //向端口写一个字节  
  function   OutP32(const   PortAddress:SmallInt;const   Value:Byte):Boolean;  
  function   InP32(const   PortAddress:SmallInt):Byte;  
   
  implementation  
   
  function   OutP32(const   PortAddress:SmallInt;const   Value:Byte):Boolean;  
  begin  
      Asm  
          push   dx  
          mov   dx,PortAddress  
          mov   al,Value  
          out   dx,al  
          pop   dx  
      End;  
      Result:=True;  
  end;  
   
  function   InP32(const   PortAddress:SmallInt):Byte;  
  begin  
      Asm  
          push   dx  
          mov   dx,PortAddress  
          in   al,dx  
          mov   Result,al  
          pop   dx  
      End;  
  end;  
  end.  
  Top

6 楼alang_xy((无名))回复于 2003-01-06 14:46:28 得分 1

还要用汇编?  
  那还不如用C或者是汇编整来的快。  
   
  有没有其它方法?  
   
  比如把端口设备看成文件,读写文件(就像linux下面的一样)Top

7 楼Scarlette(Lord of Borland)回复于 2003-01-06 14:56:06 得分 1

有没有搞错?你在Windows   NT/2000下用In或者Out指令试试看?要是这样就行了还要Driver干什么?Top

8 楼linwolong(卧龙)回复于 2003-01-13 16:57:51 得分 0

谢谢各位的热心,我当天回去就搞定了。  
  无奈,还是最后嵌入了汇编,用汇编实现了采集、A/D、D/A、和OUT  
  做得挺成功,其他人用C还没做出来。  
  就是时间太紧张,本来给了一星期,由于大家有事,所以耽误了三天,无奈只好用三天做了。Top

9 楼linwolong(卧龙)回复于 2003-01-13 17:01:38 得分 0

感谢wks的热心询问和帮助,我用的汇编语句和你的差不多,不过在delphi里,  
  把变量定义为integer,要放入eax,放入ax时,编译说是不匹配。Top

10 楼walter8888(walter8888)回复于 2003-01-14 15:57:56 得分 1

可以用MSCOMM控件实现呀,挺简单的。Top

11 楼wks(井中男孩)回复于 2003-01-20 18:26:42 得分 1

揭贴把Top

相关问题

  • 访问端口用什么函数???急!!!!!!!!!!!!!!!!
  • c语言里访问内部端口用那个函数?
  • 请问关于端口访问函数outp(),inp()的问题
  • 在DELPHI中是否有读取I/O端口的函数?
  • 在DELPHI中是否有读取I/O端口的函数?
  • Delphi函数 --> CB函数(急)!!
  • delphi函数和winapi函数
  • delphi中构造函数出现非法访问可能是怎么发生的?
  • 寻找delphi函数
  • delphi延时函数.........?!?!?!?!??

关键词

  • 端口
  • 汇编
  • delphi
  • asm
  • word
  • portaddress
  • dx
  • ioport
  • smallint
  • assembler

得分解答快速导航

  • 帖主:linwolong
  • guowzgyc
  • wks
  • alang_xy
  • Scarlette
  • walter8888
  • wks

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo