0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)的擴(kuò)展技術(shù)

汽車電子技術(shù) ? 來源:嵌入式悅翔園 ? 作者:JamesBin ? 2023-02-17 14:45 ? 次閱讀

單片機(jī)內(nèi)部存儲(chǔ)器和I/o口資源有限,多數(shù)情況下需要外部擴(kuò)展。

一、擴(kuò)展方法和內(nèi)容

圖片

二、總線介紹

單片機(jī)并行擴(kuò)展的典型結(jié)構(gòu)是總線結(jié)構(gòu)。

各擴(kuò)展部件通過總線與單片機(jī)連接起來,相當(dāng)于系統(tǒng)中各部件掛在總線上,分時(shí)利用總線與CPU通訊。

當(dāng)選中某部件時(shí),可對(duì)該部件進(jìn)行讀寫及控制,而其它部件與總線間處于“高阻態(tài)”,相當(dāng)于與總線斷開。

圖片

單片機(jī)系統(tǒng)的三總線構(gòu)造方法如下:

以P0口線作數(shù)據(jù)總線/低位地址總線4以P2口線作高位地址總線

采用功能引腳形成控制總線

圖片

以P0口線作數(shù)據(jù)總線/低位地址總線:先由P0口線作地址總線,把低8位地址送鎖存器,由鎖存器提供給系統(tǒng);然后再將P0口線作數(shù)據(jù)總線讀寫數(shù)據(jù),從而實(shí)現(xiàn)地址總線的低8位地址信號(hào)和數(shù)據(jù)總線共用P0口線而不產(chǎn)生沖突。

以P2口線作高位地址總線:P2口線最多可提供8位高位地址,加上P0口線提供的低8位地址,最多可提供16位地址,可使單片機(jī)系統(tǒng)的尋址范圍最大達(dá)到64KB。

采用功能引腳形成控制總線:由 RD(P3.6引腳)和 WR(P3.7引腳)作為讀寫選通信號(hào)線;由ALE作為地址鎖存信號(hào)線,以配合P0口實(shí)現(xiàn)分時(shí)復(fù)用;PSEN以作為片外程序存儲(chǔ)器讀選通信號(hào)線;以EA作為片內(nèi)和片外程序存儲(chǔ)器的選擇信號(hào)。

存儲(chǔ)器的基本操作控制包括片選控制和讀寫操作控制。

**線選法:**地位地址線(A0A10)實(shí)現(xiàn)片內(nèi)尋址,高位地址線線(A11A13)實(shí)現(xiàn)片選。線選法連線簡單,但地址空間不連續(xù),適用于擴(kuò)展容量較小且芯片數(shù)目較少的情況。

圖片

譯碼法:通過譯碼器將高位地址線轉(zhuǎn)換為片選信號(hào)。譯碼法能有效利用存儲(chǔ)空間,且地址連續(xù),適用于多芯片下的擴(kuò)展。常用譯碼器芯片有74138等。

圖片

三、儲(chǔ)存擴(kuò)展

地址線: 地址是由P0和P2口提供的。ROM的地址線(A0~A15)中,低8位A0~A7通過鎖存器74LS373與P0口連接,高8位A8~A11直接與P2口的P2.0~P2.7連接。

**數(shù)據(jù)線:**片外ROM的8位數(shù)據(jù)線直接與單片機(jī)的P0口相連。

圖片

控制線: CPU執(zhí)行ROM中存放的程序指令時(shí),取指階段就是對(duì)ROM進(jìn)行讀操作。讀操作控制線有以下幾條:

地址鎖存信號(hào)ALE、片選信號(hào)CS、讀選通信號(hào)OE、片外程序存儲(chǔ)器的選用控制信號(hào)EA

圖片

地址鎖存信號(hào)ALE: 單片機(jī)的ALE管腳與鎖存器的鎖存使能端G相連,用于單片機(jī)從片外ROM在讀指令時(shí)給出低8位地址的鎖存信號(hào)。

**片選信號(hào)CS:**低電平有效。如果系統(tǒng)中只擴(kuò)展了一片程序存儲(chǔ)器芯片,可將該片選端直接接地,使該芯片一直有效。若同時(shí)擴(kuò)展多片,需通過線選法或譯碼法來完成片選工作。

**讀選通信號(hào)OE:**低電平有效。該引腳接8051的片外ROM讀選通信號(hào)端PSEN。在訪問片外程序存儲(chǔ)器時(shí),只要該端出現(xiàn)負(fù)脈沖,即可從ROM中讀出指令或數(shù)據(jù)。

**片外程序存儲(chǔ)器的選用控制信號(hào)EA:**當(dāng)EA引腳接高電平時(shí),CPU只訪問單片機(jī)內(nèi)部的程序存儲(chǔ)器并執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令,但當(dāng)程序存儲(chǔ)量超過內(nèi)部程序存儲(chǔ)器的最大容量時(shí),將自動(dòng)轉(zhuǎn)去執(zhí)行單片機(jī)外部程序存儲(chǔ)器內(nèi)的程序。當(dāng)輸入信號(hào)引腳接低電平(接地)時(shí),CPU只訪問外部程序存儲(chǔ)器并執(zhí)行外部程序存儲(chǔ)器中的指令。

在執(zhí)行片外ROM讀指令時(shí),單片機(jī)自動(dòng)進(jìn)行的操作時(shí)序:

(1)首先由PO口和P2口給出16位地址,然后ALE出現(xiàn)下降沿通知鎖存器將P0口的低8位地址鎖存;

(2)PSEN出現(xiàn)低電平,使片外ROM有效;

(3)根據(jù)鎖存器和P2口提供的地址取出指令并送P0口,由P0口讀入單片機(jī)執(zhí)行。

在上述過程中,數(shù)據(jù)存儲(chǔ)器RAM讀寫信號(hào)端WR和RD一直處于高電平狀態(tài),使RAM與總線隔離。

四、控制程序

根據(jù)下圖電路編寫程序用數(shù)碼管顯示0-9共10個(gè)數(shù)字循環(huán)顯示。

圖片

#include 
unsigned char led[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//字型碼 


int main(void)
{
    unsigned char i;
    while(1)
  {
      for(i=0;i<10;i++)//循環(huán)顯示10個(gè)數(shù)字
          {
               P1=led[i];
                   delay();//延時(shí)一段時(shí)間
                 }
  }
}


void delay()//延時(shí)函數(shù)
{
     int i,j;
      for(i=0;i<3000;i++)
    for(j=0;j<5;j++);
}

五、數(shù)據(jù)儲(chǔ)存擴(kuò)展

數(shù)據(jù)存儲(chǔ)器RAM的擴(kuò)展主要用到以下3個(gè)控制信號(hào):

**ALE:**低8位地址鎖存控制信號(hào),通常接地址鎖存器的LE引腳;

**WR:**外部RAM寫信號(hào),低電平有效,接數(shù)據(jù)存儲(chǔ)器的WE引腳;

**RD:**外部RAM讀信號(hào),低電平有效,接數(shù)據(jù)存儲(chǔ)器的OE引腳。

圖片

在執(zhí)行片外RAM讀寫指令時(shí),單片機(jī)自動(dòng)進(jìn)行的操作時(shí)序與讀ROM相似:

(1)首先由PO口和P2口給出16位地址,然后ALE出現(xiàn)下降沿將P0口的低8位地址鎖存;

(2)在讀數(shù)據(jù)時(shí),RD出現(xiàn)低電平,WR出現(xiàn)高電平,使讀片外RAM有效,并根據(jù)鎖存器和P2口提供的地址取出數(shù)據(jù)并送P0口,由P0口讀入單片機(jī)。

(3)在寫數(shù)據(jù)時(shí)首先將數(shù)據(jù)加載到P0口,然后RD引腳出現(xiàn)高電平,WR引腳出現(xiàn)低電平,使寫片外RAM有效,并根據(jù)鎖存器和P2口提供的地址將P0口上的數(shù)據(jù)寫入片外RAM。

六、程序舉例

根據(jù)圖8-4編寫程序?qū)?a href="http://wenjunhu.com/v/tag/1221/" target="_blank">數(shù)碼管顯示0-9共10個(gè)數(shù)字的字型碼存儲(chǔ)到6264中,然后從6264中循環(huán)讀出字型碼并送數(shù)碼管顯示。

圖片

#include 
#include  
unsigned char led[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//字型碼


int main(void)
{
    unsigned char i;
    for(i=0;i<10;i++)//存儲(chǔ)10個(gè)數(shù)字字型碼
  XBYTE[0x8000+i]=led[i];  
  while(1)
  {
      for(i=0;i<10;i++)//循環(huán)顯示10個(gè)數(shù)字
       {
           P1=XBYTE[0x8000+i];
           delay();//延時(shí)一段時(shí)間
      }
  }    
}
void delay()//延時(shí)函數(shù)
{
     int i,j;
      for(i=0;i<30000;i++)
    for(j=0;j<5;j++);
}

對(duì)輸入/輸出口功能的擴(kuò)展,可以利用簡單的TTL電路或MOS電路,也可以使用結(jié)構(gòu)較為復(fù)雜的可編程接口芯片。

MCS-51單片機(jī)將I/O口與片外RAM統(tǒng)一編址,兩者合在一起使用同一個(gè)64KB的外擴(kuò)展地址空間,因而,I/O口的輸入、輸出指令也就是片外數(shù)據(jù)存儲(chǔ)器的讀/寫指令。

圖片

簡單輸入擴(kuò)展主要采用三態(tài)數(shù)據(jù)緩沖器實(shí)現(xiàn),目的是使被選通的輸入設(shè)備能獨(dú)占數(shù)據(jù)總線向單片機(jī)輸入數(shù)據(jù),而未被選通的設(shè)備與數(shù)據(jù)總線隔離。常用的三態(tài)數(shù)據(jù)緩沖器芯片有74LS244等。

簡單輸出擴(kuò)展主要采用三態(tài)數(shù)據(jù)鎖存器實(shí)現(xiàn),目的是使單片機(jī)能通過數(shù)據(jù)總線向被選通的設(shè)備輸出數(shù)據(jù),而未被選通的設(shè)備與數(shù)據(jù)總線隔離。常用的三態(tài)數(shù)據(jù)鎖存器芯片有74LS273等。

8051單片機(jī)使用74LS373和74LS245展I/O口,分別連接發(fā)光二極管和撥碼開關(guān),要求編寫控制程序,通過開關(guān)的撥動(dòng)控制發(fā)光二極管的亮滅。

圖片

#include 
#include      
#define PORT XBYTE[0xFFFF] //地址寫什么都可以
int main(void)
{
    unsigned char temp;
    while(1)
    {
      temp=PORT; //讀存儲(chǔ)單元操作,即通過74LS245獲取開關(guān)數(shù)據(jù)
      PORT=temp; //寫存儲(chǔ)單元操作,即通過74LS373用開關(guān)數(shù)據(jù)控制發(fā)光二極管
    }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635287
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7492

    瀏覽量

    163833
  • i/o
    i/o
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    4593
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    詳解單片機(jī)擴(kuò)展技術(shù)

    單片機(jī)內(nèi)部存儲(chǔ)器和I/o口資源有限,多數(shù)情況下需要外部擴(kuò)展。
    發(fā)表于 12-01 13:40 ?1438次閱讀

    MCS-51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)

    1 MCS-51單片機(jī)系統(tǒng)擴(kuò)展的基本概念2 程序存儲(chǔ)器擴(kuò)展技術(shù)3 數(shù)據(jù)存儲(chǔ)器擴(kuò)展4 輸入/輸出口擴(kuò)展
    發(fā)表于 12-01 14:39 ?65次下載
    MCS-51<b class='flag-5'>單片機(jī)</b>系統(tǒng)<b class='flag-5'>擴(kuò)展</b><b class='flag-5'>技術(shù)</b>

    單片機(jī)存儲(chǔ)擴(kuò)展技術(shù),下載

    單片機(jī)存儲(chǔ)擴(kuò)展技術(shù): 1.    只讀存儲(chǔ)器(ROM) (1) 掩模工藝ROM (2)可一次性編程ROM(PROM) (3)紫外線擦除可改寫ROM(EPROM)
    發(fā)表于 04-28 15:23 ?0次下載

    MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù)

    MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù):在MCS-51單片機(jī)的的內(nèi)部雖已集成了很多資源,但這類單片機(jī)屬于一種“通用”的
    發(fā)表于 09-20 18:22 ?22次下載

    8051單片機(jī)系統(tǒng)擴(kuò)展與接口技術(shù)

    8051單片機(jī)系統(tǒng)擴(kuò)展與接口技術(shù):第一節(jié)   8051 單片機(jī)系統(tǒng)擴(kuò)展概述第二節(jié) 
    發(fā)表于 10-10 18:42 ?87次下載

    MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù)

    MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù) MCS-51單片機(jī)有一個(gè)全雙工的串行口,實(shí)現(xiàn)單片機(jī)和外設(shè)的串行數(shù)據(jù)傳送.該口既可作為全雙工異步通信收發(fā)器
    發(fā)表于 04-09 14:38 ?34次下載

    MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù)(三)

    MCS-51單片機(jī)的系統(tǒng)擴(kuò)展技術(shù)簡述
    發(fā)表于 07-16 12:59 ?21次下載

    MCS-51單片機(jī)系統(tǒng)擴(kuò)展技術(shù)

    1  MCS-51單片機(jī)系統(tǒng)擴(kuò)展的基本概念2  程序存儲(chǔ)器擴(kuò)展技術(shù)3  數(shù)據(jù)存儲(chǔ)器擴(kuò)展4  輸入/輸
    發(fā)表于 09-28 20:55 ?53次下載

    單片機(jī)的多串口擴(kuò)展技術(shù)的設(shè)計(jì)

    針對(duì)大多數(shù)單片機(jī)都只有一個(gè)串口的局限, 在多數(shù)情況下限制它們的應(yīng)用。利用單片機(jī)串口擴(kuò)展技術(shù), 以MCS51 系列單片機(jī)8751 為例進(jìn)行串行
    發(fā)表于 10-28 17:04 ?246次下載
    <b class='flag-5'>單片機(jī)</b>的多串口<b class='flag-5'>擴(kuò)展</b><b class='flag-5'>技術(shù)</b>的設(shè)計(jì)

    單片機(jī)外部擴(kuò)展資源與應(yīng)用

    單片機(jī)外部擴(kuò)展資源與應(yīng)用,單片機(jī)學(xué)習(xí)資料,新手可以下載學(xué)習(xí),適用于初學(xué)者
    發(fā)表于 07-15 17:21 ?6次下載

    單片機(jī)的多串口擴(kuò)展技術(shù)的設(shè)計(jì)

    單片機(jī)的多串口擴(kuò)展技術(shù)的設(shè)計(jì),感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-02 19:49 ?15次下載

    如何對(duì)51單片機(jī)進(jìn)行外部擴(kuò)展

    最近在項(xiàng)目中用到51單片機(jī),因?yàn)槟承l件限制,51單片機(jī)片上程序不是很大,需要進(jìn)行外部擴(kuò)展。
    的頭像 發(fā)表于 11-07 17:16 ?1.5w次閱讀

    單片機(jī)教程之單片機(jī)總線與存儲(chǔ)器的擴(kuò)展資料說明

    本文檔的詳細(xì)介紹的是單片機(jī)教程之單片機(jī)總線與存儲(chǔ)器的擴(kuò)展資料說明主要內(nèi)容包括了:1.單片機(jī)系統(tǒng)總線和系統(tǒng)擴(kuò)展方法,2.程序存儲(chǔ)器的
    發(fā)表于 02-14 17:34 ?27次下載
    <b class='flag-5'>單片機(jī)</b>教程之<b class='flag-5'>單片機(jī)</b>總線與存儲(chǔ)器的<b class='flag-5'>擴(kuò)展</b>資料說明

    單片機(jī)應(yīng)用開發(fā)技術(shù)基于Proteus單片機(jī)仿真和C語言編程第二版教學(xué)課件

    ,第四章 單片機(jī)C語言編程,第五章 鍵盤和顯示,第六章 定時(shí)器和中斷,第七章 單片機(jī)串行通信,第八章 AD和DA轉(zhuǎn)換器,第九章 單片機(jī)擴(kuò)展技術(shù)
    發(fā)表于 05-28 08:00 ?0次下載
    <b class='flag-5'>單片機(jī)</b>應(yīng)用開發(fā)<b class='flag-5'>技術(shù)</b>基于Proteus<b class='flag-5'>單片機(jī)</b>仿真和C語言編程第二版教學(xué)課件

    單片機(jī)與嵌入式系統(tǒng)的學(xué)習(xí)課件合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)與嵌入式系統(tǒng)的學(xué)習(xí)課件合集免費(fèi)下載包括了:單片微型計(jì)算機(jī)概述及預(yù)備知識(shí),MCS-51系列單片機(jī)系統(tǒng)結(jié)構(gòu),匯編語言指令格式,匯編語言程序設(shè)計(jì),MCS-51單片機(jī)
    發(fā)表于 05-21 08:00 ?17次下載
    <b class='flag-5'>單片機(jī)</b>與嵌入式系統(tǒng)的學(xué)習(xí)課件合集免費(fèi)下載