Delphi编程中如何实现对并口操作?

时间:2022-06-27 10:16:22
Delphi编程中,需要向并口输出一些数据,如何实现?各位Delphi高手,请多多指教。

11 个解决方案

#1


直接读写端口,端口号为378H. 直接写端口的程序如下

   ASM
                    mov cl,$10 {loads loopcounter with 16}
                    mov dx,ecpDFifoAddress
                    @Loop16Bytes:  {return of loop}
                      mov al,[ebx] {send a byte of the data}
                      out dx,al
                      inc ebx
                    dec cl

#2


您的例子"ecpDFifoAddress"是口地址吗,子程序要怎样写?

#3


只要直接想378H口地址写数据就可以了,
我做过一个动态库,不止能不能满足你
直接对断口操作
上面的ecpDFifoAddress 就是并口地址,直接将这段汇编代码嵌入你的程序中即可

#4


用ASM直接写端口378h方法,在Windows NT或Windows 2000下
出现不能使用特权指令(privilege instruction) Out出错信息,
该如何解决?

#5


这是使用者的权限问题,你登陆的用户没有操作硬件的权限,要么用超级用户登陆,要么为用户设置相应权限

#6


meijg:我以超级用户(Administrator)登陆仍无法直接写端口378h,
出错信息为:...exception class EPrivilege with message 'Privileged instruction'.
能否具体说明需要设置哪些权限?

#7


看来在nt 下是不行的,你在98下试过吗,可以用吗

#8


98可以,NT、windwos 2000没成功。

#9


98可以,NT、windwos 2000没成功。NT 下有何解决办法?

#10


to hyoupeng:
给你的信都退回来了,请另告知你的email地址

#11


我已用其它方法解决该问题,谢谢大家的支持。

#1


直接读写端口,端口号为378H. 直接写端口的程序如下

   ASM
                    mov cl,$10 {loads loopcounter with 16}
                    mov dx,ecpDFifoAddress
                    @Loop16Bytes:  {return of loop}
                      mov al,[ebx] {send a byte of the data}
                      out dx,al
                      inc ebx
                    dec cl

#2


您的例子"ecpDFifoAddress"是口地址吗,子程序要怎样写?

#3


只要直接想378H口地址写数据就可以了,
我做过一个动态库,不止能不能满足你
直接对断口操作
上面的ecpDFifoAddress 就是并口地址,直接将这段汇编代码嵌入你的程序中即可

#4


用ASM直接写端口378h方法,在Windows NT或Windows 2000下
出现不能使用特权指令(privilege instruction) Out出错信息,
该如何解决?

#5


这是使用者的权限问题,你登陆的用户没有操作硬件的权限,要么用超级用户登陆,要么为用户设置相应权限

#6


meijg:我以超级用户(Administrator)登陆仍无法直接写端口378h,
出错信息为:...exception class EPrivilege with message 'Privileged instruction'.
能否具体说明需要设置哪些权限?

#7


看来在nt 下是不行的,你在98下试过吗,可以用吗

#8


98可以,NT、windwos 2000没成功。

#9


98可以,NT、windwos 2000没成功。NT 下有何解决办法?

#10


to hyoupeng:
给你的信都退回来了,请另告知你的email地址

#11


我已用其它方法解决该问题,谢谢大家的支持。