对利用打印口读写存储器24cxx的质疑
试验一:观察开机过程中,计算机打印口的电平变化
具体做法:利用下述电路,接在计算机打印口上,观察各个发光二极管的亮灭变化情况。
观察结果:在机器自检阶段,接在打印口上的输出端口378H的8个发光二极管闪个不停;在windows98启动过程中,这几个发光二极管也要闪几下。发光二极管在闪动时是有的亮有的灭,肉眼无法分辨其规律。Windows98启动完成后,各台机器的发光二极管亮灭情况也不同。
观察结论:机器硬件不同,操作系统不同,打印口上378H端口的各输出线的电平高低无规律。
试验二:编写打印口读数据程序
具体做法:利用windows98下的程序设计软件Delphi,编写一段代码来读取打印口上的数据:启动好Delphi后,在设计窗体中放一个按钮button1,双击该按钮,切换到代码窗口,可以看到Delphi已为我们做好了框架:
procedure Tform1.Button1Click(Sender: Tobject);
begin
end;
我们在begin前一行加入变量声明:var t:byte;
在begin
与end中间输入以下代码:
asm mov dx , $378
in al , dx
mov t , al
end;
form1.Button1.Caption:=inttostr(t);
运行程序后,我们可以随时读取打印口上的378H端口的数据。
观察结果:以其中一次为例,按下button1按钮后,按钮上显示的数字即为从端口读得的数据,我们读得为108,利用windows自带的“计算器”程序,把这个十进制数字转换成二进制数字,为“01101100”;同时观察得接在打印口上的各发光二极管的亮灭情况是:“灭灭亮亮灭亮亮灭”。
观察结论:这一次打印口上的2~9脚的电平高低情况是:“低低高高低高高低”。
试验三:测试打印口输入输出电流能力。
具体做法:
把指针式万用表拨至25毫安档,黑表笔接打印口的某个低电平端,红表笔瞬间接触某个高电平端。
观察结果:如果高低电平端直接相连,其电流肯定大于10毫安。
《对利用打印口读写存储器24cxx的质疑》