利用Delphi 3.0开发微机数据采集与处理软件系统
Windows版“无线电话务模拟训练系统”软件过程中选择了Delphi3.0,利用Delphi的IDE环境编写VCL构件,结合虚拟设备驱动程序(.vxd)实现⑴的功能。
2、VCL构件主要属性、方法、事件、过程介绍
⑴通用属性、方法、过程
·ActiveHW:Boolean:该属性只读且运行时有效,如果虚拟设备驱动程序正常工作,则ActiveHW为True,否则为False。
·OpenDriver:该方法加载虚拟设备驱动程序,为其分配内存,使程序具有直接访问系统硬件的能力。如果虚拟设备驱动程序加载成功,ActiveHW属性被设置为True,否则为False。
·CloseDriver:该方法关闭虚拟设备驱动程序,释放为其分配的内存。如果虚拟设备驱动程序关闭成功,ActiveHW被设置为False。
⑵I/O端口访问
·HardAccess:Boolean:该属性决定虚拟设备驱动程序采用何种方式访问I/O端口。如果HardAccess为False,I/O访问速度较快,但若指定I/O地址已被其它驱动程序占用,I/O访问可能失败;如果HardAccess为True,I/O访问速度稍慢,但能保证若指定I/O地址已被其它驱动程序占用,I/O访问仍能进行。
·Port[Index:Word]:Byte:该方法数据类型为Byte—字节。(读/写指定地址的I/O端口,参数Index为指定I/O端口地址,数据类型为Word—字,下同)
·PortW[Index:Word]:Word:该方法数据类型为Word—字。
·PortL[Index:Word]:dWord:该方法数据类型为DWord—双字。
I/O读写代码实例:
withmyPortdo
begin
{...}
Port[$2F0]:=$47;//向地址为2F0H的I/O端口写一个字节的数据47H
{...}
myInpute:=Port[$2F9];//从地址为2F9H的I/O端口读一个字节的数据,并赋给变量
//myInpute
{...}
end;
⑶硬件中断调用
与DOS不同,在Windows操作系统中,硬件中断调用功能被隐藏或屏蔽起来,Windows一般不允许直接调用硬件中断。为此,需使用以下属性、事件、方法:
·OnHwInterrupt:TnotifyEvent:该事件通知系统一个硬件中断已经被调用。应将中断服务程序放在该事件中。
·IRQNumber:Byte:该属性指定欲调用的中断号(IRQ1—15),不支持0号中断(IRQ0—系统时钟)。
·SetIRQ:该方法将IRQNumber指定的中断分配给OnHwInterrrupt过程,并将IsIRQSet属性设置为True。
·UnmaskInterrupt:该方法解除Windows对IRQNumber指定中断的屏蔽,当中断产生时,将调用OnHWInterrupt事件,并将Mas 《利用Delphi 3.0开发微机数据采集与处理软件系统(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/140500.html
2、VCL构件主要属性、方法、事件、过程介绍
⑴通用属性、方法、过程
·ActiveHW:Boolean:该属性只读且运行时有效,如果虚拟设备驱动程序正常工作,则ActiveHW为True,否则为False。
·OpenDriver:该方法加载虚拟设备驱动程序,为其分配内存,使程序具有直接访问系统硬件的能力。如果虚拟设备驱动程序加载成功,ActiveHW属性被设置为True,否则为False。
·CloseDriver:该方法关闭虚拟设备驱动程序,释放为其分配的内存。如果虚拟设备驱动程序关闭成功,ActiveHW被设置为False。
⑵I/O端口访问
·HardAccess:Boolean:该属性决定虚拟设备驱动程序采用何种方式访问I/O端口。如果HardAccess为False,I/O访问速度较快,但若指定I/O地址已被其它驱动程序占用,I/O访问可能失败;如果HardAccess为True,I/O访问速度稍慢,但能保证若指定I/O地址已被其它驱动程序占用,I/O访问仍能进行。
·Port[Index:Word]:Byte:该方法数据类型为Byte—字节。(读/写指定地址的I/O端口,参数Index为指定I/O端口地址,数据类型为Word—字,下同)
·PortW[Index:Word]:Word:该方法数据类型为Word—字。
·PortL[Index:Word]:dWord:该方法数据类型为DWord—双字。
I/O读写代码实例:
withmyPortdo
begin
{...}
Port[$2F0]:=$47;//向地址为2F0H的I/O端口写一个字节的数据47H
{...}
myInpute:=Port[$2F9];//从地址为2F9H的I/O端口读一个字节的数据,并赋给变量
//myInpute
{...}
end;
⑶硬件中断调用
与DOS不同,在Windows操作系统中,硬件中断调用功能被隐藏或屏蔽起来,Windows一般不允许直接调用硬件中断。为此,需使用以下属性、事件、方法:
·OnHwInterrupt:TnotifyEvent:该事件通知系统一个硬件中断已经被调用。应将中断服务程序放在该事件中。
·IRQNumber:Byte:该属性指定欲调用的中断号(IRQ1—15),不支持0号中断(IRQ0—系统时钟)。
·SetIRQ:该方法将IRQNumber指定的中断分配给OnHwInterrrupt过程,并将IsIRQSet属性设置为True。
·UnmaskInterrupt:该方法解除Windows对IRQNumber指定中断的屏蔽,当中断产生时,将调用OnHWInterrupt事件,并将Mas 《利用Delphi 3.0开发微机数据采集与处理软件系统(第2页)》