<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 對利用打印口讀寫(xiě)存儲器24cxx的質(zhì)疑

對利用打印口讀寫(xiě)存儲器24cxx的質(zhì)疑

作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò ) 收藏

作者Email: cscxh@pub.sz.jsinfo.net

有不少電子愛(ài)好者都讀過(guò)這樣一篇文章:《一款實(shí)用的串行E2PROM讀寫(xiě)軟件――24C》,有部分燒友也親自動(dòng)手制作了該電路。該軟件可以利用計算機的口上的輸出端口378H端口和379H的輸入端口,對24進(jìn)行讀寫(xiě)。378H端口是輸出端口,對應計算機口的2腳到9腳。經(jīng)我試用,效果相當不錯。但有一次我在對計算機口做了幾個(gè)小試驗后,我不禁驚出一身冷汗!現寫(xiě)出來(lái)與大寫(xiě)一起來(lái)探討:

試驗一:觀(guān)察開(kāi)機過(guò)程中,計算機打印口的電平變化

具體做法:利用下述電路,接在計算機打印口上,觀(guān)察各個(gè)發(fā)光二極管的亮滅變化情況。

觀(guān)察結果:在機器自檢階段,接在打印口上的輸出端口378H的8個(gè)發(fā)光二極管閃個(gè)不停;在windows98啟動(dòng)過(guò)程中,這幾個(gè)發(fā)光二極管也要閃幾下。發(fā)光二極管在閃動(dòng)時(shí)是有的亮有的滅,肉眼無(wú)法分辨其規律。Windows98啟動(dòng)完成后,各臺機器的發(fā)光二極管亮滅情況也不同。

觀(guān)察結論:機器硬件不同,操作系統不同,打印口上378H端口的各輸出線(xiàn)的電平高低無(wú)規律。

試驗二:編寫(xiě)打印口讀數據程序

具體做法:利用windows98下的程序設計軟件Delphi,編寫(xiě)一段代碼來(lái)讀取打印口上的數據:?jiǎn)?dòng)好Delphi后,在設計窗體中放一個(gè)按鈕button1,雙擊該按鈕,切換到代碼窗口,可以看到Delphi已為我們做好了框架:

procedure Tform1.Button1Click(Sender: Tobject);

begin

end;

我們在begin前一行加入變量聲明:var t:byte;

beginend中間輸入以下代碼:

asm mov dx , $378

in al , dx

mov t , al

end;

form1.Button1.Caption:=inttostr(t);

運行程序后,我們可以隨時(shí)讀取打印口上的378H端口的數據。

觀(guān)察結果:以其中一次為例,按下button1按鈕后,按鈕上顯示的數字即為從端口讀得的數據,我們讀得為108,利用windows自帶的“計算器”程序,把這個(gè)十進(jìn)制數字轉換成二進(jìn)制數字,為“01101100”;同時(shí)觀(guān)察得接在打印口上的各發(fā)光二極管的亮滅情況是:“滅滅亮亮滅亮亮滅”。

觀(guān)察結論:這一次打印口上的2~9腳的電平高低情況是:“低低高高低高高低”。

試驗三:測試打印口輸入輸出電流能力。

具體做法:把指針式萬(wàn)用表?yè)苤?/SPAN>25毫安檔,黑表筆接打印口的某個(gè)低電平端,紅表筆瞬間接觸某個(gè)高電平端。

觀(guān)察結果:如果高低電平端直接相連,其電流肯定大于10毫安。

現在我們回過(guò)來(lái)再看看在網(wǎng)上廣泛流傳的這款用打印口讀寫(xiě)的電路:

該電路中可能為了給IC提供足夠的電流,把打印口的4、5、6、7腳并接在一起。

潛在的危險:假如在打印口讀寫(xiě)軟件未啟動(dòng)時(shí)甚至計算機機電源未開(kāi)時(shí),該電路就已經(jīng)連到了計算機的打印口上,那么開(kāi)機后必然會(huì )有一段時(shí)間打印口上的4567各引腳的電平有的為高有的為低。高電平端竭力輸出電流,低電平竭力吸收電流,鬼知道打印口什么時(shí)候就要報銷(xiāo)!不過(guò),如果打印口讀寫(xiě)軟件已啟動(dòng),我測得打印口上45674個(gè)引腳均為高電平。

我做試驗的環(huán)境是:

明致M748MR主板,賽揚400CPU

Windows 98 SE

Delphi用的是5.0、6.07.0三個(gè)版本,編寫(xiě)上述程序時(shí)均成功。

我暗自慶幸沒(méi)有用新買(mǎi)的計算機作試驗,也慶幸我的老主板沒(méi)有報銷(xiāo)。打印口的額定輸入和輸出電流到底可以達到多少?到底用上述電路會(huì )不會(huì )損壞計算機的打印口呢?希望高手們再作指點(diǎn)!

在很久很久以前的計算機主板上,打印口的378H端口用的是74LS374一類(lèi)的IC,這種IC的筋骨還比較硬朗,即使壞了,更換一塊就是了??墒乾F在的主板上好象找不到這種IC了,要是哪天打印口報銷(xiāo)的話(huà),麻煩就大了。如果燒友們還在使用上述電路的話(huà),我建議在計算機打印口上4567各腳各接一個(gè)二極管,二極管的負極引線(xiàn)端均接在24Vcc電源端,這樣可以徹底防止電流倒灌!



關(guān)鍵詞: cxx 打印 存儲器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>