單片機I/O口的擴展

2020-12-12 有屋有無

單片機I/O (輸入/輸出)接口是其與外設交換數字信息的橋梁。事實上,真正用作I/O口線的只有P1口的8位I/O線和P3口的某些位線。在多數應用系統中,MCS-51單片機都需要外擴I/O接口電路。

一、首先清楚I/O接口(Interface)和I/O埠(Port)的概念。

I/O埠:簡稱I/O口,指具有埠地址的寄存器或

緩衝器。

I/O接口:是指單片機與外設間的I/O接口晶片。

一個I/O接口晶片可以有多個I/O埠,(1)數據口(2)命令口(3)狀態口

二、I/O埠編址是給所有I/O接口中的寄存器編址。

I/O埠編址兩種方式:獨立編址與統一編址。

1.獨立編址方式

I/O寄存器地址空間和存儲器地址空間分開編址,但

需專門讀寫I/O的指令和控制信號。

2.統一編址方式

I/O寄存器與數據存儲器單元同等對待,統一編址。

不需要專門的I/O指令,直接使用訪問數據存儲器的指

令進行I/O操作,簡單、方便且功能強。

三、I/O口的擴展主要有以下幾種方法:

1.簡單的I/O口擴展

2.通過可編程通用I/O擴展晶片進行擴展

3.通過串行口擴展

四、簡單I/O擴展

簡單I/O口的擴展是通過系統外總線進行的。簡單的I/O口擴展晶片可選用帶輸出鎖存端的三態門電路,如74LS373、74LS377、74LS273、74LS245及8282等。

下圖為由74LS373及8282構成的8位並行輸入輸出I/O口,其中74LS373用作輸出口,8282用作輸入口,口地址為:BFFFH(輸出口)7FFFH(輸入口)。

I/O擴展

數據的輸入與輸出通過下述指令進行:

輸出數據: MOV DPTR,#0BFFFH ;指向輸出口

MOVX @DPTR,A ;輸出數據

輸入數據: MOV DPTR,#7FFFH ;指向輸入口

MOVX A,@DPTR ;輸入數據

相關焦點

  • TMS320VC5410A I/O口的多種擴展與I2C接口模擬
    ,同時5410a的片上外設沒有i2c接口,所以,當5410a需要控制外圍晶片或與其他晶片進行通信時(如i2c通信),必須擴展通用i/o口,本文首先介紹5410通用i/o口的多種擴展方式,然後針對每種擴展方式實現與語音晶片tlv320aic23的i2c通信。
  • 單片機IO口擴展技術
    本文引用地址:http://www.eepw.com.cn/article/201611/319300.htm MCS-51單片機的並行口有P0、P1、P2和P3,由於P0口是地址/數據總線口,P2口是高8位地址線,P3口具有第二功能
  • 為何要對單片機作 I/O 擴展?51怎樣訪問外部接口晶片?
    什麼要對MCS-51單片機作I/O擴展?答:因為MCS-51單片機本身提供的輸入、數出口線只有P1口和部分P3口線 。所以,多數的單片機應用系統中都要作I/O擴展。單片機怎要訪問外部接口晶片?答:因為MCS-51單片機的外部數據存儲器RAM和I/O口是統一編址的 。因此,用戶可以把外部64KB的數據存儲器RAM空間的一部分作為擴展外圍I/O的地址空間。
  • 怎樣處理單片機與鎖存器的關係? 為何要用串行口擴展 I/O?
    通過P0口擴展輸出口時,怎樣處理單片機與鎖存器之間的關係?答:當通過P0口擴展單片機的輸出口時,可以將鎖存器視為一個外部的RAM單元,輸出信號為WR。為什麼要用串行口擴展I/O接口?答:MCS-51串行口的方式0可以用於I/O擴展,其前題是串行口未被佔用。
  • 8051單片機I/O口的工作原理
    D鎖存器:在51單片機的32根I/O口線中都是用一個D觸發器來構成鎖存器的。D端是數據輸入端,CP是控制端(也就是時序控制信號輸入端),Q是輸出端,Q非是反向輸出端。多路開關:在51單片機中,不需要外擴展存儲器時,P0口可以作為通用的輸入輸出埠(即I/O)使用,對於8031(內部沒有ROM)的單片機或者編寫的程序超過了單片機內部的存儲器容量,需要外擴存儲器時,P0口就作為『地址/數據』總線使用。這個多路選擇開關就是用於選擇是做為普通I/O口使用還是作為『數據/地址』總線使用的選擇開關了。
  • 74HC595擴展IO口
    //當單片機的IO口不夠用時,可以用一般的數字集成電路74LS(HC)595擴展IO口用。//下面是51單片機74HC595的c51驅動本文引用地址:http://www.eepw.com.cn/article/201611/320302.htm#include#include #define
  • 「電路「芯」說」單片機IO擴展
    在我們選型時,往往單片機的內部資源LQFP48封裝的引腳就能滿足我們的需求,正當我們決定選用這個晶片時,發現正好少了幾個用作IO口的引腳,因此不得不選用更高一級別的LQFP64封裝,正由於這個原因,電路的成本增加了好幾塊RMB。其實解決單片機IO口不夠用的情況,除了選用引腳更多的晶片之外,還有一個簡單而便宜的方法,那就是IO口擴展。
  • 單片機實驗報告與心得體會
    串行口連接max232串行口轉換晶片,p1口留出作為一些控制量的輸入輸出用以擴展使用。在實驗板上可編寫鍵盤掃描程序、顯示程序、時間的設定及計時程序、從鍵盤上輸入兩個加數或減數顯示結果程序、位變量的邏輯運算程序及串行口和上位機通訊程序等,還可和其它課程相結合,進行實驗。
  • 51單片機P0口介紹
    第一功能為基本輸入輸出;第二功能是在系統擴展時,分時做為數據總路線和低8位地址總線。這裡重點介紹一下P0口的結構及其工作過程:P0口的1位(例如:P0.0)結構如圖本文引用地址:http://www.eepw.com.cn/article/201611/322199.htm
  • 單片機的一些常識
    (不重要的補充:c中idata做指針式的訪問效果很好)xdata:外部擴展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。pdata:外部擴展RAM的低256個字節,地址出現在A0-A7的上時讀寫,用movx ACC,@Rx讀寫。這個比較特殊,而且C51好象有對此BUG,建議少用。但也有他的優點,具體用法屬於中級問題,這裡不提。
  • 51單片機擴展IO口後擴展口的地址如何確定
    然後它說8255的A口、B口、C口、控制寄存器的地址分別為7FFCH、7FFDH、7FFEH、7FFFH。這個是怎麼算出來的?,P0口對應於地址低位。一般P2口用於控制信號,P0口作為數據通道。為此先把晶片的A7~A0與地址鎖存器的8位地址輸出對應聯接,剩下的高位地址(A10~A8)與P2口的P2.2~P2.0相連。這樣2716晶片的內存儲單元的問題就解決了。2)數據線的連接:程序存儲器的數據輸出引腳到P0口對應連接。3)控制信號線的連接:程序存儲器的擴展只涉及到外部存儲器選通信號PSEN,此信號與2716的OE端相接,以便進行存儲單元的讀出選通。
  • OLED顯示模塊與C8051F單片機的接口設計
    直接訪問方式是將模塊接口作為存儲器或i/o設備直接掛在mcu總線上,mcu以訪問存儲器或i/o設備方式對模塊進行操作,間接訪問方式是mcu通過軟體模擬控制時序對模塊進行操作。這裡介紹的是cygnal c8051f020單片機與vgs12864e的間接訪問接口設計。 c8051f020是美國cygnal公司推出的一種混合信號soc型號8位單片機,是集成度很高的混合信號系統級的晶片。
  • 寧波PLC編程培訓:PLC是單片機的擴展嗎
    plc是單片機的擴展嗎?首先,PLC的控制核心是單片機(MCU)。PLC程序的運行依賴於單片機內部固化程序的運行。由此可見,PLC可以看作是單片機在工控領域的一種應用。再者,既然單片機程序可已然以進行工業控制,為什麼會出現PLC呢?
  • 單片機教程:PIC單片機C語言程序設計(五)
    接前文:單片機教程:PIC單片機C語言程序設計(四)   九、C語言的運算符   C語言提供了30多個運算符,範圍很大,應用廣。其中,除法運算符又分兩種情況,一是整除, 口兩個整數相除,所得商舍尾數,僅取整數部分,如5/10等於0;二是實除,即兩個實數相除,所得商也是實數,如5.0/10等於0.5。   表4 算術和自增自減運算符
  • 基於MSP430單片機的冷媒中心控制系統的研製
    (1) msp430f149單片機 msp430f149是全自動汽車冷媒加注系統的控制中心,完成傳感器數據結果處理,開關量信號的檢測,鍵盤的識別,usart0和usart1兩個串口通信的管理,與cpld器件的通信與控制。德州儀器(ti)公司的msp430f149單片機是flash類型單片機,內置60kb+256位元組flash,2kb ram。
  • 「電路「芯」說」單片機ADC擴展
    單片機ADC擴展方案討論早在幾天前,我寫了一篇關於單片機IO口擴展的文章,接著有網友和我來討論關於ADC擴展的問題了,關於這個問題,這篇文章有詳細的討論。單片機ADC為何要擴展現在的主流MCU都內置了不止一個多通道的ADC,可以滿足我們平時的簡單應用,這些簡單應用是指應用在一些對模擬量採集速度不高,精度能接受的場合下。但是對於一些高精度,高速度的情況下,外置的專用ADC晶片仍然是我們必須要選擇的,哪怕以很高的金錢成本為代價。
  • 單片機的三總線結構(數據、地址、控制)
    51系列單片機具有完善的總線接口時序,可以擴展控制對象,其直接尋址能力達到64k (2的16次方) 。在總線模式下,不同的對象共享總線,獨立編址、分時復用總線,CPU通過地址選擇訪問的對象,完成與各對象之間的信息傳遞。數據總線:51單片機的數據總線為P0口,P0口為雙向數據通道,CPU從P0口送出和讀回數據。
  • 單片機IO口結構及上拉電阻
    這兩組口線用來作為CPU與外部數據存儲器、外部程序存儲器和I/O擴展口,而不能象P1、P3直接用作輸出口。它們一起可以作為外部地址總線,P0口身兼兩職,既可作為地址總線,也可作為數據總線。圖1 單片機P0口內部一位結構圖
  • MCS-51單片機P0口、P1口分別有哪些應用功能?
    MCS-51單片機P0口有哪些應用功能?答:P0口是三態雙向口,通稱數據總線口,因為只有該口能直接用於對外部存儲器的讀/寫操作。P0口還可以用來輸出外部存儲器的第8位地址。由於是分時輸出,故應在外部加鎖存器將此地址數據鎖存,地址鎖存信號用ALE。MCS-51單片機P1口有哪些應用功能?
  • PIC單片機C語言程序設計(5)
    其中,除法運算符又分兩種情況,一是整除, 口兩個整數相除,所得商舍尾數,僅取整數部分,如5/10等於0;二是實除,即兩個實數相除,所得商也是實數,如5.0/10等於0.5。表4 算術和自增自減運算符自增運算符++和自減運算符一有前綴運算符和後綴運算符兩種應用方式,兩者產生的效果有些不同:前綴運算符,如++i或--j,在使用j之前,先使j的值+1或-1;後綴運算符j++或j-。  在使用i之後,才使i的值加1或減1。