Delphi控制并行端口位操作

并行端口简称并口,它有3个端口:数据端口、状态端口、控制端口,常用的并口为LPT1,它的3个端口的地址分别为:378H、379H和37AH。

一、并口读写

在汇编语言中,可以用 in、out 指令操作并口,而在Delphi中并没有相对应的函数、方法可对并口进行读写,幸运的是Delphi可以嵌入汇编程序,通过直接嵌入汇编指令 in、out 可方便地对并口进行读写。我们还可以通过调用 Windows API 函数或第三方提供的DLL、VXD来访问并口,但通过使用嵌入汇编的方法对并口进行读写更方便、快捷。

使用下面的 ReadPort 函数和 WritePort 过程可以读写并口,参数 Port 为要操作的端口地址。

function ReadPort(Port:WORD):BYTE;
var
B:BYTE;
begin
ASM
MOV DX, Port;
IN AL, DX;
MOV B, AL;
END;
Result:=B;
end;
procedure WritePort(Port:WORD;ConByte:BYTE);
begin
ASM
MOV DX, Port;
MOV AL, ConByte;
OUT DX, AL;
END;
end;

时间: 2024-10-02 17:01:16

Delphi控制并行端口位操作的相关文章

Delphi控制Excel生成报表

摘 要:Excel是当前最流行的数据报表制作工具.本文介绍如何使用Delphi来控制Excel完成数据库与报表之间的数据交换,讨论了报表制作工程中的一些细节性问题. 1 引言 数据报表作为企事业单位上报和下达的重要信息载体,随着信息化建设的不断推进,在实际的工作中得到了前所未有的应用.因此,数据报表已经成为管理信息系统中重要的一项功能,并且,由于数据的多样性和统计信息的增加,数据报表的系统实现变得越来越复杂. Delphi是一个高效的可视化数据库管理信息系统开发工具,.但是Delphi开发环境中

程序控制多屏显示方式-delphi 控制两个以上显示器时,显示方式

问题描述 delphi 控制两个以上显示器时,显示方式 一台电脑接两个显示器时,两个显示器可以是扩展显示或复制显示,可不可以用程序来设置,两个显示器是复制显示还是扩展显示 解决方案 可以的,用rundll可以调用显示属性控制面板程序来设置.http://wenku.baidu.com/link?url=3PNSJFUGKYGROD2f3u8cNmqWK-Jor5AHv15Ue5253kP9jDSdDAinSbqa389QSBzdfIOWME8qio0_aqkapL_3Cc2T2zD3bmcA5U

介绍一个控制并行端口的MFC类

支持环境:Windows 9x.Windows ME.Windows NT.Windows2000 简介:这个类允许你使用低级端口I/O函数读写端口数据.例子程序使用这个类实现了PC到PC之间通过"PLT1"进行简单的C/S文件传输. 特性: C++接口简洁易用 支持UNICODE并且在编译生成程序时可以对UNICODE兼容特性进行配置 支持广泛的Windows平台,包括Windows 9x.Windows ME.Windows NT.Windows2000 既可用于控制台程序,也可以

Delphi与Word间的融合技术

Microsoft Word是一个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是一个字处理系统,它集成了Microsoft Visual Basic,可以通过编程来实现对Word功能的扩展. Microsoft Visual Basic在word中的代码即Word的宏,通过编写Word宏,可实现一些文档处理的自动化,如实现文档的自动备份.存盘等,可扩展Word文档的功能,因此,能够充分利用Word的特性,甚至使Word成为自己软件的一部分.Word的宏既有有利的一部分,因为它能够帮助我

Delphi + Word = 数据库 + 公文处理

Delphi擅长做数据库类的MIS开发,但对于OA就有点力不从心了.不过随着Microsoft的COM技术逐渐成熟,现在普通Windows应用已经可以和Office97无缝结合了,尤其是在Delphi 5中提供了一组Servers组件,更是简化了程序开发. 最近接触了一个用户的案例,用Delphi控制Word做一个合同管理程序.办公人员先根据业务需要,写好合同的文字,但在用户名称.产品名称等变化的位置填写指定的标记字符串,然后通过Delphi把数据库中的实际数据替换掉Word中的文字,最后让Wo

用Delphi实现对光驱盘盒的开关控制(三)

5)程序自动执行无效的菜单鼠标事件 procedure TForm1.mNotautorunClick(Sender: TObject);var Reg: TRegistry;begin Reg:=TRegistry.Create; try Reg.RootKey:=HKEY_LOCAL_MACHINE; if (Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',False))=True then begin // 在注册表中

用Delphi实现对光驱盘盒的开关控制(一)

摘要 介绍在Delphi编程环境下实现开启光驱盘盒的主要技术和方法,该程序以托盘方式驻留状态栏中,可以设置为随系统启动而启动,不但能够控制一个光驱,而且还能动态检测某台电脑上的光驱数目,创建相应的控制菜单,实现有选择性控制光驱. 关键词 Delphi程序 光驱控制 弹出菜单 过程 事件 引言 通常,我们打开和关闭光驱是通过按动光驱上开关按钮来实现的,但有时候手动方式显得很不方便,尤其是在一台电脑上安装多个光驱的情形下,同时光驱的损耗在手动方式下也是最大的,Delphi是个功能强大且容易的编程工具

在Delphi中控制扫描仪

在利用Delphi开发信息管理系统时,常常要处理图象,这也是信息管理系统发展的必然趋势.怎样在Delphi中通过扫描仪获得所需的图象信息呢?不外乎有三种基本的方法: 通过图象处理软件,比如说Photoshop等,通过它们的扫描图象的功能,加工成一定格式的图象后再在自己的系统中利用: 通过扫描仪接口Twain.DLL .该接口是在安装扫描仪时提供的,它实际上是一个Plugin插件,它通过一系列函数来控制扫描仪: 通过构件技术来控制扫描仪. 利用第一种方法能减少编程的复杂度,但是系统的集成度不高,用

delphi发送消息控制滚动条使用示例

本文为大家详细介绍下delphi实现发送消息控制滚动条,主要函数及用法如下,感兴趣的朋友可以参考下哈   1.Perform 函数 复制代码 代码如下: DBGrid1.Perform(WM_VSCROLL,SB_PAGEDOWN,0); //控制滚动条,向后翻页 DBGrid1.Perform(WM_VSCROLL,SB_PAGEUP,0); //控制滚动条,向前翻页 2.SendMessage 函数 复制代码 代码如下: SendMessage(DBGrid1.Handle,WM_VSCRO