二.脉冲信号的软件采集方法
脉冲信号可以通过软件进行采集,这需要相关的硬件将脉冲信号经计算机总线读入计算机,实现这一功能的Add-on Card就是数字输入板或脉冲计数板。为了不增加硬件的投入,用打印口进行数字信号采集比较经济有效[2],它具有如下优点:
LPT打印口是计算机与生俱来的设备接口,占用计算机固定的地址,不容易发生冲突。
LPT接口卡在市场上随处可见,价格比较便宜,成本比较低。
该类接口卡使用比较普通,性能比较稳定,可靠性好。
LPT并行接口的针脚排列[3]
LPT并行接口是一个25芯的D型母接头,其针脚排列如下: 
管脚分布为:
1 STOBE 10 ACKN
2 DATA0 11 BUSY
3 DATA1 12 PAPE
4 DATA2 13 SELEC
5 DATA3 14 AUTO FEED
6 DATA4 15 ERROR
7 DATA5 16 INIT
8 DATA6 17 NOT USED
9 DATA7 18…25 GND
注:17号脚原来是安排/SELEC信号使用的,现行标准取消该使用功能。
三.LPT的端口地址及功能
当DOS或WINDOWS启动后,LPT占用的端口地址是固定的。以LPT1为例,用下面的方法获取LPT1的地址。
-DEBUG
D:0040 0008 0009 78 03 X.
上面的显示表示:LPT1占用的地址是十六进制的378,它是LPT1的基地址,除此之外,在相邻的内存空间还分配着它的状态端口和控制端口。
确切的分配是:
378 LPT1的基地址 可写
379 LPT1的状态端口 可读
37A LPT1的控制端口可读写
为了正确读入传感器信号A和B,将A信号接至D型头的12脚,将B信号接至D型头的13脚。
3、从端口中读入外部信号
3.3.1. A、B信号的读取
D型头的12脚与13脚与状态端口379是相对应的,如果从端口读入的数据为DATA的话,那么:(DATA and 32)/32则为A信号的状态,为零则表示A信号为低电平,为1则表示A信号为高电平。(DATA and 16)/16则为B信号的状态,为零则表示B信号为低电平,为1则表示B信号为高电平。
3.3.2. A+、B+、A-、B-信号的获得
A+、B+、A-、B-信号(脉冲上升沿)可通过下面的方法获得:
初始时读入A、B信号将它们写入变量,如OLDA、OLDB,以后循环读入A、B信号并写入变量NEWA、NEWB。用新值减旧值,如果结果是0则外部信号未变化,如果为1则为上升沿,如果为-1则为下降沿。
3.3.3. A非与B非信号的获得
通过简单的计算就可得到A非及B非,用助记符NOTA和NOTB来表示,则:NOTA=1-NEWA,<span




