DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: eyang11
今日帖子: 1
在线用户: 1
导航: 论坛 -> 文档资料 斑竹:liumazi,ruralboy  
作者:
男 cobble ★☆☆☆☆ -
普通会员
2003/6/7 10:07:25
标题:
工控的朋友有福了--Delphi下读端口的单元 浏览:4197
加入我的收藏
楼主: unit port;

interface

function PortReadByte(Addr:Word):Byte;
function PortReadWord(Addr:Word):Word; 
function PortReadWordLS(Addr:Word):Word; 
procedure PortWriteByte(Addr:Word;Value:Byte);
procedure PortWriteWord(Addr:Word;Value:Word); 
procedure PortWriteWordLS(Addr:Word;Value:Word);

implementation
 //PortReadbyte函数
 //参数:portaddress
 //返回:给定port的byte值
function PortReadByte(Addr:Word):Byte;assembler;register;
asm
  MOV DX,AX
  IN AL,DX
end;
  //高速读端口函数:PortReadWord函数
  //参数:port address
  //返回:给定port的word值
  //注释:可能有些卡和计算机不能访问全部的word
function PortReadWord(Addr:Word):Word;assembler;register;
asm
  MOV DX,AX
  IN AX,DX
end;
  //低速读端口函数
  //参数: port address
  //返回:给定port的word值
  //注释:工作时,要调整DELAY
function PortReadWordLS (Addr:Word):Word; assembler; register;
const
  Delay = 150;
 //依靠CPU的速度和卡的速度
asm
  MOV DX,AX
  IN AL,DX //读LSB端口
  MOV ECX,Delay
  @1:
  LOOP  @1//在两次读之间延时
  XCHG AH,AL
  INC DX //port+l
  IN AL,DX//读MSB端口
  XCHG AH,AL// 重新存储字节顺序
end;

//PortWriteByte函数
procedure PortWriteByte(Addr:Word; Value:Byte); assembler; register;
asm
  XCHG AX,DX
  OUT DX,AL
end;

//高速写端口过程
//注释:工作时,可能有些卡和计算机不能访问全部的Word
procedure PortWriteWord(Addr:word; Value:word); assembler; register;
asm
  XCHG AX,DX
  OUT DX,AX
end;

//低速写端口过程
procedure PortWriteWordLS(Addr:word;Value:word); assembler; register;
const
  Delay = 150;//依靠CPU的速度和卡的速度
asm
  XCHG AX,DX
  OUT DX,AL
  MOV ECX,Delay
  @1:
  LOOP @1
  XCHG AH,AL
  INC DX
  OUT DX,AL
end;

end.//单元结束


----------------------------------------------
-
作者:
男 zizii (高高高级馒头) ★☆☆☆☆ -
神秘会员
2003/6/14 10:52:30
1楼: 看上去不错:~)
----------------------------------------------
维护世界和平,共创美好盒子。
作者:
男 supermay (supermay) ★☆☆☆☆ -
盒子活跃会员
2003/6/28 22:13:40
2楼: 只能在Win9X下的
----------------------------------------------
链接:https://pan.baidu.com/s/12jzmECYKhGCsHBxz8tmB6w 提取码:pelr --来自百度网盘超级会员V9的分享
作者:
男 silu111 (云中月) ★☆☆☆☆ -
普通会员
2003/7/19 10:32:58
3楼: 楼主有没有现成的读IC卡的程序,急需!
----------------------------------------------
silu111
作者:
男 qsmile (qsmile) ★☆☆☆☆ -
盒子活跃会员
2003/8/28 10:24:00
4楼: 上面的代码只能在 Win9X 下用。
没什么用。

to silu111
   IC 读卡器有很多种。如果是串口的你可以直接用一个串口程序测试一下
   我有一个: vip.6to23.com/cooldba
   如果是其它接口。而只有用 厂商提供的软件了。

----------------------------------------------
无色无味
作者:
男 huangjian_w (海纳百川) ★☆☆☆☆ -
盒子活跃会员
2003/10/5 20:46:38
5楼: 我有办法在2000下也直接访问端口
此帖子包含附件:huangjian_w_20031005204638.rar 大小:474.9K
----------------------------------------------
网络,数据库,IOCP应用,API应用等,欢迎交流:
http://blog.163.com/huangjian_w/
作者:
男 ywyywyywy (雪儿) ★☆☆☆☆ -
普通会员
2003/11/24 15:50:40
6楼:
此帖子包含附件:
JPEG 图像
大小:20.6K
----------------------------------------------
-
作者:
男 yaeye (悠悠) ★☆☆☆☆ -
盒子活跃会员
2003/11/30 22:22:31
7楼: 有没有NTPort的注册版呀?
----------------------------------------------
-
作者:
男 xdsy (小道寺院) ★☆☆☆☆ -
普通会员
2004/1/28 11:35:00
8楼: 好,顶!

----------------------------------------------
-
作者:
男 merryhuren (Huren) ★☆☆☆☆ -
普通会员
2004/3/16 1:48:09
9楼: 只能在win9x下使用吗?
----------------------------------------------
-Ture Love !  your Huren
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行95.70313毫秒 RSS