色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

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

單片機(jī)存儲(chǔ)擴(kuò)展方法與程序控制案例

GReq_mcu168 ? 來源:CSDN技術(shù)社區(qū) ? 作者:倪里 ? 2021-04-03 10:36 ? 次閱讀

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

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

276466cc-90fa-11eb-8b86-12bb97331649.png

二、總線介紹單片機(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)于與總線斷開。

281a20e8-90fa-11eb-8b86-12bb97331649.png

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

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

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

28531c22-90fa-11eb-8b86-12bb97331649.png

以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ǔ)器的基本操作控制包括片選控制和讀寫操作控制。

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

28c17406-90fa-11eb-8b86-12bb97331649.png

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

2915fb2a-90fa-11eb-8b86-12bb97331649.png

三、儲(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口相連。

29947b80-90fa-11eb-8b86-12bb97331649.png

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

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

2a5d7314-90fa-11eb-8b86-12bb97331649.png

地址鎖存信號(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)顯示。

2a82989c-90fa-11eb-8b86-12bb97331649.png

#include 《reg51.h》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引腳。

2ad6ab30-90fa-11eb-8b86-12bb97331649.png

在執(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 target="_blank">數(shù)碼管顯示0-9共10個(gè)數(shù)字的字型碼存儲(chǔ)到6264中,然后從6264中循環(huán)讀出字型碼并送數(shù)碼管顯示。

2b3ddba2-90fa-11eb-8b86-12bb97331649.png

#include 《reg51.h》#include 《absacc.h》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ò)展,可以利用簡(jiǎn)單的TTL電路或MOS電路,也可以使用結(jié)構(gòu)較為復(fù)雜的可編程接口芯片。

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

2b95aaa8-90fa-11eb-8b86-12bb97331649.png

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

簡(jiǎn)單輸出擴(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ā)光二極管的亮滅。

2c09393c-90fa-11eb-8b86-12bb97331649.png

#include 《reg51.h》#include 《absacc.h》 #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ā)光二極管 }}
編輯:lyn

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6042

    文章

    44617

    瀏覽量

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

    關(guān)注

    38

    文章

    7528

    瀏覽量

    164174

原文標(biāo)題:?jiǎn)纹瑱C(jī)擴(kuò)展技術(shù)

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)編程語言有哪些選擇

    單片機(jī)(Microcontroller Unit,MCU)編程是指為單片機(jī)編寫程序的過程,這些程序控制單片機(jī)的行為和功能。單片機(jī)廣泛應(yīng)用于嵌
    的頭像 發(fā)表于 11-01 14:13 ?871次閱讀

    單片機(jī)調(diào)試常見問題與解決方法

    單片機(jī)調(diào)試是嵌入式系統(tǒng)開發(fā)中的一個(gè)重要環(huán)節(jié),它涉及到對(duì)單片機(jī)程序的測(cè)試和優(yōu)化,以確保系統(tǒng)能夠正常工作。在調(diào)試過程中,開發(fā)者可能會(huì)遇到各種問題。 1. 程序無法燒錄到
    的頭像 發(fā)表于 11-01 14:11 ?1147次閱讀

    單片機(jī)怎么寫入程序

    單片機(jī)(Microcontroller Unit,MCU)是一種集成電路芯片,它將計(jì)算機(jī)的CPU、存儲(chǔ)器、輸入/輸出接口等功能集成在一個(gè)芯片上。單片機(jī)廣泛應(yīng)用于嵌入式系統(tǒng)和物聯(lián)網(wǎng)設(shè)備中。編寫
    的頭像 發(fā)表于 10-21 11:21 ?863次閱讀

    51單片機(jī)的主要邏輯功能部件是什么

    部件的操作。它包括算術(shù)邏輯單元(ALU),用于執(zhí)行算術(shù)和邏輯運(yùn)算。 2. 存儲(chǔ)程序存儲(chǔ)器(ROM):用于存儲(chǔ)程序代碼,通常是
    的頭像 發(fā)表于 10-18 12:49 ?533次閱讀

    單片機(jī)存儲(chǔ)空間不夠用了,有哪些解決辦法?

    當(dāng)單片機(jī)存儲(chǔ)空間不足時(shí),可以考慮幾種解決方法。一種是優(yōu)化程序代碼,刪除不必要的代碼和變量,提高代碼的效率和緊湊性;可以采用外部存儲(chǔ)
    發(fā)表于 10-15 22:33

    8位單片機(jī)為何不會(huì)被高端單片機(jī)取代?

    控制器選擇。 (1)架構(gòu):8位單片機(jī)通常采用馮諾依曼架構(gòu),其中程序和數(shù)據(jù)存儲(chǔ)器共享一條公共總線。它們還有一個(gè)哈佛架構(gòu),程序和數(shù)據(jù)
    發(fā)表于 09-24 16:51

    計(jì)算機(jī)進(jìn)行程序控制工作的基本原理是怎樣的

    計(jì)算機(jī)程序控制是計(jì)算機(jī)科學(xué)中的一個(gè)核心概念,它涉及到計(jì)算機(jī)如何根據(jù)預(yù)設(shè)的指令序列執(zhí)行任務(wù)。 1. 計(jì)算機(jī)硬件基礎(chǔ) 在深入程序控制之前,我們需要了解計(jì)算機(jī)的基本硬件組件,因?yàn)樗鼈兪?b class='flag-5'>程序控制
    的頭像 發(fā)表于 09-04 16:57 ?691次閱讀

    單片機(jī)hex文件反編譯成C語言的過程

    單片機(jī)和Hex文件簡(jiǎn)介 單片機(jī)(Microcontroller Unit,MCU)是一種集成了處理器、存儲(chǔ)器和輸入/輸出接口的微型計(jì)算機(jī)。它廣泛應(yīng)用于各種嵌入式系統(tǒng)和智能設(shè)備中。單片機(jī)
    的頭像 發(fā)表于 09-02 10:49 ?3762次閱讀

    keil可以讀出單片機(jī)程序

    Keil是一款廣泛應(yīng)用于單片機(jī)程序開發(fā)的軟件,它提供了包括C編譯器、宏匯編、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案。然而,關(guān)于Keil是否能直接“讀出”單片機(jī)程序
    的頭像 發(fā)表于 09-02 10:32 ?1193次閱讀

    單片機(jī)燒錄程序用什么軟件

    單片機(jī)燒錄程序單片機(jī)開發(fā)過程中的一個(gè)重要環(huán)節(jié),涉及到將編寫好的程序代碼通過燒錄器寫入單片機(jī)的ROM中,以實(shí)現(xiàn)對(duì)
    的頭像 發(fā)表于 09-02 10:05 ?1546次閱讀

    單片機(jī)燒錄程序可以重新燒嗎

    單片機(jī)(Microcontroller Unit, MCU)是一種集成電路芯片,它將計(jì)算機(jī)的CPU、存儲(chǔ)器、輸入/輸出接口等集成在一塊芯片上,用于控制各種電子設(shè)備。單片機(jī)燒錄
    的頭像 發(fā)表于 09-02 10:04 ?1457次閱讀

    單片機(jī)燒錄程序的線比單片機(jī)上的少還能燒錄嗎

    存儲(chǔ)器通常分為兩類:ROM(只讀存儲(chǔ)器)和RAM(隨機(jī)存取存儲(chǔ)器)。ROM用于存儲(chǔ)程序代碼,而RAM用于
    的頭像 發(fā)表于 09-02 09:54 ?594次閱讀

    單片機(jī)燒錄程序的串口線怎么連接

    單片機(jī)開發(fā)過程中,燒錄程序是一項(xiàng)重要的工作。而燒錄程序通常需要使用串口線來實(shí)現(xiàn)。本文將介紹單片機(jī)燒錄程序的串口線連接
    的頭像 發(fā)表于 09-02 09:50 ?2126次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序單片機(jī)開發(fā)過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的
    的頭像 發(fā)表于 09-02 09:47 ?1351次閱讀

    可編程序控制器系統(tǒng)概述

    AB可編程序控制器系統(tǒng)
    發(fā)表于 05-23 14:26 ?8次下載
    主站蜘蛛池模板: 美女图片131亚洲午夜| 老司机福利在 线影院| 99久久精品国产一区二区三区| 亚洲精品自在在线观看| 午夜爱情动作片P| 天天噜日日噜夜夜噜| 三级aa久久| 日日夜夜狠狠干| 日韩欧美中文字幕在线| 求个av网站| 日本特交大片免费观看| 青青娱乐网| 日本乱hd高清videos| 日本枯瘦娇小| 色吧.com| 午夜啪啪免费视频| 胸大美女又黄的网站| 亚洲国产在线视频中文字| 亚洲精品在线影院| 亚洲中文无码AV在线观看| 亚洲一区电影在线观看| 伊人国产在线播放| 2018国产天天弄谢| 9久高清在线不卡免费无吗视频| 99视频在线观看免费视频| chinese情侣自拍啪hd| 成年人免费观看视频网站| 高清日本片免费观看| 国产精品毛片AV久久97| 国产剧情福利AV一区二区| 国产午夜精品一区二区理论影院| 国语92电影网午夜福利| 久久re6热在线视频精品| 快播金瓶梅| 欧美高清另类video| 色即是空之甜性涩爱| 五月丁香婷姐色| 亚洲综合春色另类久久| 91久久夜色精品| 哒哒哒影院在线观看免费高清| 国产精品久久久久久久人人看|