8086 IO讀寫操作


  如圖所示,通過8086來讀寫io口,實現流水燈以及開關。本電路是基於8086最小模式下的三總線結構添加的,三總線結構原理較為復雜本篇就不對其原理進行介紹了,大家可以自行查閱相關引腳的功能從而實現。

本文僅介紹io端口的實現,和代碼邏輯部分。

 點擊查看大圖

概述:本文使用45h和40h兩個端口,40h端口使用開關模擬白天或黑夜,45端口則控制LED的亮滅。

1.輸出端口

輸出口由譯碼電路、74ls373鎖存器、以及8個LED燈構成。下面一一介紹。

(1).譯碼電路

  譯碼電路使用的是基本門電路實現的,大家也可以使用可編程並行接口芯片8255來實現,這里不做介紹。

如圖所示當使用指令out 45h,al時,RD引腳為低電壓,(注意這是8086CPU的引腳,上面有一個橫線表示低電平有效。文中的橫線默認不標出。讀者自行對比圖片。相同的標簽是連接到一起的本文的RD連接的是WR)M/IO為低電壓。地址45H也就是0010 0101B,我們將相應位置的地址線接上一個非門,之后將地址接入到一個8輸入的或門上,當地址是45h時,進行或運算的結果是0,其它地址則一定是1,

再將其與讀寫信號RD以及M/IO相連接。其輸出引腳命名為OUT1,將其作為片選信號接入鎖存器的LE引腳。這樣,這個模塊實現的功能是當8086對45h端口進行寫操作時,OUT1為高電平,其它情況為低電平。

(2).鎖存器

 

8086cpu共有16根數據線,當發送的地址是偶地址時,數據線的低8位有效,當發送奇地址時數據線的高8位有效。

OUT1接入LE,當LE為高電壓時鎖存器的數據可以被改寫,LE為低電壓時數據鎖存。

(3)LED燈

LED采用的是共陰極的接法,當發送的數據是01h時,led0處的電壓為12V,

LED的標壓是2.2V,額定電流是10mA。

我們需要用一個電阻分走12-2.2=9.8V的電壓。而額定電流是10mA,於是限流電阻應該是9.8X10x10e-2=0.98歐姆。

 2.輸入端口

輸入端口的電路與輸出端口類似就不一一介紹了。這里使用的是74HC245雙向數據緩存器,AB/BA引腳控制數據的方向,高電平代表數據從A到B。低電平則相反。CE低電平時芯片有效。與上文的鎖存器相反。所以直接用與門。

地址上40h的二進制是0100 0000B所以只需要將AB6接非門即可。由於是讀操作。WR需要接一個非門。我們只需要用到一個Bit的數據,A1~A7接地即可。A0接開關。開關另一端接VCC。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM