有反相器。
-i 37A 读控制字节。可看到如屏幕截图所示,PC返回0C(当前LED关闭)。为打开LED,位3必须清除,可用F7h与上控制字节的读数。对于读数0C,清除位3得到04。将其写入控制字节会开启LED.
-o 37A 04 开启LED。

并口软件工具
图3给出了并口软件的屏幕截图,该软件专为本篇应用程序中的硬件设计。可从以下地址下载: http://files.dalsemi.com/system_extension/AppNotes/AN3230/ParallelPort.exe 屏幕截图可能与所下载的程序稍微有出入,因为软件有可能改进了或者增添了功能。

软件缺省的LPT地址为378h。如果发现软件不能
与硬件通信,可以选择不同端口的地址。最容易判断软件是否与硬件通信的方法是单击LED On和LED Off按钮。如果成功,单击Test按钮,它控制D1 (U1A),从U1B读入值。读数结果会显示在状态栏里。
忽略同步脉冲。如果你希望使用示波器捕捉2线通信,可以使能同步脉冲,将示波器探针放到DB25的引脚17上,作为触发器。
到此,可以准备与你已连接的2线设备通信了。确保设备的SDA, SCL和GND连接到硬件上。确保74HC05的VCC尽可能等于设备的VCC。
有两种方法可以与设备通信,首先需要确保软件知道2线设备从地址通信。软件缺省地址为A0 (hex),这恰好为数字电压表的地址,虽然这常取决于设备地址引脚,如果有许多的话。要改变2线设备地址,在编辑框中键入地址,单击“Change”。如果不知道2线设备的地址,请检查设备数据手册。
最容易读写一个或者两个字节设备寄存器的方法是使用软件中的“One and Two Byte Reads/Writes”部分。该部分适合对设备编程/配置,因为2线设备中所有细节(start, stop, ACK, NACK, 等)自动隐藏。只需要输入需要的存储器地址去读或者读或者写。如果希望写,用需要的数据填充“DATA”域。
与设备通信的另外一种方法是用“2-Wire Functions”部分,如果需要学习2线设备协议,这部分功能很适合。在演示例子之前,需要解释几个按钮的含义。“Send Write”按钮是用2线地址从2线地址域,将LSB (R/W位)屏蔽为0,然后发送8位。“Send Read”按钮是用同样的2线地址,但是将LSB (R/W位)屏蔽为1,指示下一步将进行读操作。8位数据发送。“Bus Reset”按钮在SCL输出9个时钟周期,重新设置2线设备总线。
例子(使用缺省的从地址)
1. 写存储器地址7Fh到01h。
Start
Send Write
Data [7F]
Data [01]
Stop
2. 读存储器地址7Fh (一个字节)。
Start
Send Write
Data [7F]
Start——通