关于并口的引脚输出电平的问题!(倾囊面出,在线等候)!!!(200分)

  • 主题发起人 主题发起人 pwq1
  • 开始时间 开始时间
P

pwq1

Unregistered / Unconfirmed
GUEST, unregistred user!
我看了很多以前的问题,里面的解答通常比较简单。
有没有哪位高手可以告诉我并口各个引脚的地址,还有稍微详细点的汇编的例子啊?
谢谢各位了!
我有急用~
 
哈哈!
我也想知道!
沾光了!
 
慢慢看吧, 汇编以前写过一个针式打印机的控制程序,可以控制每一个针不过早就没了[:D]。

一、数据口(DATA PORT)
1)功能 :传送数据到口线上或从寄存器上读回数据
2)口地址 ;03BCH或0378H或0278H
3)传输方向:输出(OUTPuT)
4)与DB25的对应关系:

D7 D6 D5 D4 D3 D2 D1 D0

引脚9 引脚8 引脚7 引脚6 引脚5 引脚4 引脚3 引脚2

二、状态口(STATUS PORT)
1)功能 :读取打印机的状态信息
2)口地址 :03BDH或0379H或027gH
3)传输方向29入(INPuT)
4)与DB25的对应关系:
D7 D6 D5 D4 D3 D2 D1 D0
引脚11 引脚12 引脚13 引脚14 引脚15 X X X
三、控制口(CONTROL PORT)
1)功能t传送控制命令到打印机或从控制口读回控制命令
2)口地址:03BEH或037AH或027AH
3)传输方向:输出(OuTPuT)
4)与DB25的对应关系:
D7 D6 D5 D4 D3 D2 D1 D0
X X X IRQ 引脚17 引脚16 引脚14 引脚1
1.并行口的基地址为03BCH(LPTl)
并行口1与DB25管脚的对应表

DB25管脚 对应位 数据流向 打印机功能
1 03BEH Do 输出 控制口 -STROBE
2 03BCH Do 输出 数据口 Do
3 03BCH D1 输出 数据口 D1
4 03BCH D2 输出 数据口 D2
5 03BCH D3 输出 数据口 D3
6 03BCH D4 输出 数据口 D4
7 03BCH D5 输出 数据口 D5
8 03BCH D6 输出 数据口 D6
9 03BcH D7 输出 数据口 D7
10 03BDH D6 输入 状态口 -ACK
11 03BDH D7 输入 状态口 -BUSY
12 03BDH D5 输入 状态口 PE
13 03BDH D4 输入 状态口 SLCT
14 D3BEH D1 输出 控制口 -AUTOFEED
15 03BDH D3 输入 状态口 -ERROR
16 03BEH D2 输出 控制口 -INIT
17 03BEH D3 输出 控制口 -SLCTIN
18—25 无 接地 GROUND



2.并行口的基地址为0378H(可以是I—PTl、LPT2、LPT3中的任意一个
并行口2与DD25警脚对应表

DB25管脚 对应位 数据流向 打印机功能
1 037AH BIT0 输出 -STROB
2 0378H BIT0 输出 DATA0
3 0378H BITl 输出 DATAl
4 0378H BIT2 输出 DATA2
5 0378H BIT3 输出 DATA3
6 0378H BIT4 输出 DATA4
7 0378H BIT5 输出 DATA5
8 0378H BIT6 输出 DATA6
9 0378H RIT7 输出 DATA7
10 0379H EIT6 输入 -ACK
11 D379H BIT7 输入 BU5Y
12 0379H BIT5 输入 PE
13 0379H BIT4 输入 SLCT
14 037AH BIT1 输出 -AUTOFEED
15 0379H 8[T3 输入 -ERROR
16 037AH BIT2 输出 -INIT
17 037AH BIT3 输出 -SLCTIN
18一25 无 接地 GR0ukD



3.并行口的基地址为0278H(可以是LPTl、LPT2、I‘PT3中的任意一个)
并行口3与DD25管脚的对应表

DB25管脚 对应位 数据流向 打印机功能
1 027AH EIT0 输出 -STRUBE
2 0278H BITO 输出 DATA0
3 0278H BITl 输出 DATAl
4 0278H EIT2 4B出 DATA2
5 0278H BIT3 输出 DATA3
6 0278H BIT4 输巳 DATA4
7 0278H BIT5 输出 DATA5
8 0278H BIT6 输出 DATA6
9 0278H BIT7 输出 DATA7
10 0279H 团T6 输入 ACK
11 0279H BIT7 输入 -BusY

l2 0279H BIT5 输入 PE
13 0279H BIT4 输入 SLCT
14 027AH BIT2 输出 -AUToFtED
15 0279H BIT3 输入 -ERRoR
16 D27AH BIT2 输出 -INIT
l7 027AH BIT3 输出 -SLCTlN
18一25 无 接地GROUND

 
windbell:
谢谢你,你对我的帮助太大了.不过我还想请问一个问题,就是你能不能给我一个简单的例子啊?
比如说:我想让LPT1的第2和第5根为高电平,其他为低电平,用汇编写一下行吗?(最好包括函数声明和调用)
谢谢了。
分数一定奉上!
 
帮你揣一脚
 
mov dx,378h ;打印口基地址,也可能为3BCH
mov al,00001001b
out dx,al
 
可是al只有8位,而并口针却有25根,怎么表示啊?

lw86:
你程序里的00001001b是代表第二根针和第五根针吗?
怎么看的啊?


 
实际上,并口共有三个地址,基地址是数据口,另外两个是控制口和状态口,分别为输出
口和输入口,我上面的程序仅对数据口操作,也就是并口的2--9脚,有一些引脚是不能控
制的,因为是输入口用的,25针中还有多根接地。
000010001b是二进制,分别对应D7--D0,也就是9--2脚,为0则为低电平,为1就为高电平。
 
->想让LPT1的第2和第5根为高电平,其他为低电平
查看上面的表可以看到第2和第5为数据位,所以应当从数据口输出
lw86的例子就很好
 
10,11,12,13,14口可以输入数据的,
procedure getdata;
var
a:byte;
pin10,pin11,pin12,pin13:byte;
begin
asm
mov dx ,#379
mov al, dx
mov a,al
end;
a:=axor#80
pin10:=a and 80;
pin11:=a and 40;
pin12:=a and 20;
pin13:=a and 10;
end;
可以取四路数据,分别用10,11,12,13脚,不过顺序我忘了
 
昨天有事先下网了,有些问题还应该说明一下。
1. 你可以仔细读一下windbell的回复,他介绍的非常详细。
2. 目前PC机并口有三种工作模式:std,epp,ecp,std模式的数据口只支持输出,不支持输入,
epp,ecp模式的数据口可支持双向,并口的工作模式可在CMOS设置中设置。
3. 有一本并于并口编程的书,具体名字和出版社记不太清了,但是最近的书,你应该找得到,
这本书对并口使用介绍的很详细。
4. 你一定要搞清楚并口的引脚定义及其寄存器中每一位与并口物理引脚的关系以及是否经过
反相。
 
建议使用dlport
 
呵呵,看来楼主应该去翻翻硬件系统组成之类的书,很多的。
 
后退
顶部