尼康|如何對接口芯片8255進行擴展

尼康|如何對接口芯片8255進行擴展

文章圖片

尼康|如何對接口芯片8255進行擴展

文章圖片


一般說來 , 可編程接口芯片都有存儲器及地址線 , 所謂可編程就是指CPU用指令將某數據寫入接口芯片的某個存儲器 , 接口芯片在接到CPU送來的數據后 , 自動翻譯該數據 , 然后執行該數據所代表的動作 。

不同的CPU對接口芯片的處理方式不同 , 某些CPU將接口芯片的存儲器和CPU本身使用的存儲器區別對待 , 將對接口芯片存儲器的操作稱為操作 , 而對CPU本身使用存儲器的操作稱為存儲器操作 , 并且I/O操作和存儲器操作使用不同的指令 , 這種方式叫I/O端口的獨立編址方式 。

這種方式的優點是I/O端口不占用存儲器的地址空間 , 存儲器空間和I/O空間獨立, 缺點是CPU中要單獨設置I/O端口訪問指令 , 增加CPU的復雜度 , INTEL公司的8086系列就是采用的這種結構 。
另一種處理方式為將接口芯片的存儲器當外部數據存儲器對待 , 而不需要單獨設置I/O端口的訪問指令 , 這種方式稱為統一編址 , 8051就是采用的這種方式 。
下面我們介紹一下接口芯片8255 。
8255是一個并行接口擴展芯片 。 它有一個8位的待擴展并行接口D0-D7 , 三個擴展后的8位并行接口PA , PB , PC 。 四個存儲器 , PA口存儲器 , PB口存儲器 , PC口存儲器和控制口存儲器 , 這四個存儲器由它的兩條地址線AO , A1來選擇 。
當A1A0為00的時候 , 8255將D0-D7與PA接通;
當A1A0為01的時候 , 8255將D0-D7與PB接通;
當A1A0為10的時候 , 8255將D0-D7與PC接通;
當A1A0為11的時候8255將D0-D7與內部控制接通 。
假設將兩片8K的數據存儲器和一片8255混合擴展成CPU的外部數據據存儲器 , 它們的片選信號的接法采用譯碼方式。
譯碼器74139的輸入端接CPU的P2.5和P2.6 。
當P2.6和P2.5為00時 , 譯碼器輸出端YO有效 , 選中第一片數據存儲器 , 可知第一片存儲器的邏輯地址為0000H-1FFFH以及8000H-9FFFFH , 每個物理單元有兩個邏輯地址
當P2.6和P2.5為01時 , 譯碼器輸出端Y1有效 , 選中第二片存儲器 , 第二片存儲器的地址為2000H-3FFFH以及0AOOOH-OBFFFH 。
當P2.6和P2.5為10時 , 譯碼器輸出端Y2有效 , 選中8255 ,, 則8255的邏輯地址4000H-5FFFH , 以及0C000H-0DFFFH 。
當P2.6和P2.5為11時 , 譯碼器輸出端Y3有效 , 沒有存儲器被選中 , 即這種情況下的地址為無效地址 , 包括6000H-7FFFH , 和0E000H-OFFFFH 。

【尼康|如何對接口芯片8255進行擴展】

    相關經驗推薦