關(guān) 閉

新聞中心

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

對(duì)利用打印口讀寫(xiě)存儲(chǔ)器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)手制作了該電路。該軟件可以利用計(jì)算機(jī)的口上的輸出端口378H端口和379H的輸入端口,對(duì)24進(jìn)行讀寫(xiě)。378H端口是輸出端口,對(duì)應(yīng)計(jì)算機(jī)口的2腳到9腳。經(jīng)我試用,效果相當(dāng)不錯(cuò)。但有一次我在對(duì)計(jì)算機(jī)口做了幾個(gè)小試驗(yàn)后,我不禁驚出一身冷汗!現(xiàn)寫(xiě)出來(lái)與大寫(xiě)一起來(lái)探討:

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

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

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

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

試驗(yàn)二:編寫(xiě)打印口讀數(shù)據(jù)程序

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

procedure Tform1.Button1Click(Sender: Tobject);

begin

end;

我們?cè)?/SPAN>begin前一行加入變量聲明:var t:byte;

beginend中間輸入以下代碼:

asm mov dx , $378

in al , dx

mov t , al

end;

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

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

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

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

試驗(yàn)三:測(cè)試打印口輸入輸出電流能力。

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

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

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

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

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

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

明致M748MR主板,賽揚(yáng)400CPU

Windows 98 SE

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

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

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



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

評(píng)論


相關(guān)推薦

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

關(guān)閉