新闻  |   论坛  |   博客  |   在线研讨会
Windows下对并口编程
0750long | 2009-04-05 16:01:15    阅读:2722   发布文章

Windows下对并口编程 关键词: 并口    windows                                          

 

http://mubo814.bokee.com/inc/PortTalk.rar

在工程目录下拷进这两个文件:PortTalk.sys;PortTalk.h 。这两个文件已经放在附件里了。直接调用PortTalk.h里面的函数即可操作PC的任意地址,并口地址基址为0x378,以下是一个范例:

OpenPortTalk();  //打开地址操作

outportb(0x378,0xaa);  //向并口数据寄存器写0xaa;

inportb(0x379);  //读并口状态寄存器;

ClosePortTalk();  //关闭地址操作

我实验了一下,并口在ECP/EPP模式下不可以从外部数据线上读入数据,在BIOS里把并口模式改为EPP就可以了,让EPP读外部数据的操作方法如下:

EPP模式下控制口中有一个决定EPP数据口输入输出的位:第5位,把这一位写1则可以从外部读入数据,写0则EPP是输出数据的。程序如下:

//-----------------------读外部数据

    static CtrlWord;
    CtrlWord = inportb( 0x37A );
    CtrlWord |= 0x20;
    outportb(0x37A, CtrlWord);
    Edit1->Text = "0x" + IntToHex(inportb( 0x37C ),0);

//------------往外输出

    static i;
    static CtrlWord;
    CtrlWord = inportb( 0x37A );
    CtrlWord &= 0xDF;
    outportb(0x37A, CtrlWord);
    i = StrToInt( Edit4->Text );
    outportb(0x37C,i);

其中,EPP的数据口地址为0x37C,即基址0x378 + 4,我试了一下,其实用0x37C和0x378是一样的结果。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客