哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

單片機存儲擴展方法與程序控制案例

GReq_mcu168 ? 來源:CSDN技術社區(qū) ? 作者:倪里 ? 2021-04-03 10:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

二、總線介紹單片機并行擴展的典型結(jié)構是總線結(jié)構。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

三、儲存擴展

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

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

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

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

地址鎖存信號ALE、片選信號CS、讀選通信號OE、片外程序存儲器的選用控制信號EA

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

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

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

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

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

在執(zhí)行片外ROM讀指令時,單片機自動進行的操作時序:

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

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

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

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

四、控制程序

根據(jù)下圖電路編寫程序用數(shù)碼管顯示0-9共10個數(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個數(shù)字 { P1=led[i]; delay();//延時一段時間 } }}

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

五、數(shù)據(jù)儲存擴展

數(shù)據(jù)存儲器RAM的擴展主要用到以下3個控制信號:

ALE:低8位地址鎖存控制信號,通常接地址鎖存器的LE引腳;

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

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

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

在執(zhí)行片外RAM讀寫指令時,單片機自動進行的操作時序與讀ROM相似:

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

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

(3)在寫數(shù)據(jù)時首先將數(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個數(shù)字的字型碼存儲到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++)//存儲10個數(shù)字字型碼 XBYTE[0x8000+i]=led[i]; while(1) { for(i=0;i《10;i++)//循環(huán)顯示10個數(shù)字 { P1=XBYTE[0x8000+i]; delay();//延時一段時間 } } }void delay()//延時函數(shù){ int i,j; for(i=0;i《30000;i++) for(j=0;j《5;j++);}

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

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

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

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

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

8051單片機使用74LS373和74LS245展I/O口,分別連接發(fā)光二極管和撥碼開關,要求編寫控制程序,通過開關的撥動控制發(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; //讀存儲單元操作,即通過74LS245獲取開關數(shù)據(jù) PORT=temp; //寫存儲單元操作,即通過74LS373用開關數(shù)據(jù)控制發(fā)光二極管 }}
編輯:lyn

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

    關注

    6078

    文章

    45573

    瀏覽量

    673419
  • 存儲器
    +關注

    關注

    39

    文章

    7754

    瀏覽量

    172169

原文標題:單片機擴展技術

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    單片機里的程序運行方式

    :它是單片機內(nèi)部的核心部件,決定了單片機的主要功能特性,由運算器和控制器兩大部分組成。 存儲器:8051單片機在系統(tǒng)結(jié)構上采用了哈佛型,將
    發(fā)表于 01-16 06:57

    學習單片機快速方法

    學習單片機的快速方法 先介紹下單片機。把單片機說成是電子信息類專業(yè)最重要的一門課程一點也不為過,你在街上看到的廣告彩燈、煙花表演、紅綠燈、自動開關門這些都可以用
    發(fā)表于 01-14 07:42

    單片機系統(tǒng)設計方法

    設計者應從軟硬兩方面消除.結(jié)合各種抵抗干擾的方法互相補充和完善.才能確保系統(tǒng)可靠、安全、正確地運行。單片機系統(tǒng)被干擾后會集中表現(xiàn)在幾個方面:控制狀態(tài)失效、采集數(shù)據(jù)誤差大、數(shù)據(jù)發(fā)生亂碼以及程序
    發(fā)表于 01-06 06:23

    單片機程序的執(zhí)行

    更快的SRAM中,以得到更快的執(zhí)行速度。而對于,單片機而言工作頻率也就幾M,幾十M,從Flash中與從RAM中讀的差異可能并不明顯,不會成為程序執(zhí)行的瓶頸。 而對于PC而言,F(xiàn)lash的速度太慢
    發(fā)表于 12-04 06:20

    單片機系統(tǒng)硬件的調(diào)試方法

    流量,并比較漏電流質(zhì)和存儲保護值,作為外部繼電報警的依據(jù)。除此之外.我們還需要根據(jù)機車系統(tǒng)的擴展升級需求.選擇合適型號單片機.其中高速、低功耗、抗干擾是單片機最基本的功能,其外圍電路模
    發(fā)表于 12-03 06:10

    單片機原理及應用詳解

    單片機(Microcontroller Unit, MCC) ?是一種集成計算機核心功能(CPU、存儲器、I/O接口等)的微型芯片,廣泛應用于嵌入式系統(tǒng)中。以下是其原理及應用的詳細介紹: 一、單片機
    的頭像 發(fā)表于 08-11 13:57 ?2758次閱讀

    單片機的儲存優(yōu)點是什么

    單片機作為嵌入式系統(tǒng)的核心,其儲存系統(tǒng)是實現(xiàn)數(shù)據(jù)存儲程序運行的關鍵部分。與獨立存儲芯片相比,單片機的儲存單元在集成度、功耗、可靠性等方面具
    的頭像 發(fā)表于 07-31 10:09 ?814次閱讀

    單片機采用什么電流控制

    單片機作為電子系統(tǒng)的控制核心,其電流控制涉及自身工作電流管理與外部設備電流驅(qū)動兩個層面。由于單片機內(nèi)部電路的特性,其自身工作電流較小,而控制
    的頭像 發(fā)表于 07-30 10:07 ?886次閱讀

    單片機怎么控制轉(zhuǎn)速

    ? ? ? ?在工業(yè)自動化、智能家居、機器人等領域,單片機控制電機轉(zhuǎn)速是實現(xiàn)精準運動控制的核心技術。通過結(jié)合硬件電路設計與軟件算法優(yōu)化,單片機可根據(jù)不同應用場景靈活調(diào)整電機轉(zhuǎn)速。以下從
    的頭像 發(fā)表于 07-25 13:58 ?1196次閱讀

    怎么測單片機系統(tǒng)頻率

    單片機系統(tǒng)頻率是指單片機工作時的時鐘頻率,它直接影響單片機的運行速度和處理能力,準確測量系統(tǒng)頻率對單片機應用開發(fā)、程序調(diào)試和性能優(yōu)化具有重要
    的頭像 發(fā)表于 07-25 11:39 ?1060次閱讀

    單片機是怎么控制

    單片機作為電子系統(tǒng)的控制核心,通過接收外部信號、執(zhí)行預設程序、驅(qū)動外部設備的方式實現(xiàn)控制功能,其控制過程涉及信號輸入、數(shù)據(jù)處理和指令輸出三個
    的頭像 發(fā)表于 07-23 13:59 ?1010次閱讀

    單片機怎么燒程序

    單片機程序是將編寫好的程序代碼寫入單片機內(nèi)部存儲單元,讓單片機按照預設邏輯工作的過程,是
    的頭像 發(fā)表于 07-23 11:47 ?1951次閱讀

    單片機直流電機調(diào)速原理

    在工業(yè)自動化、智能設備等領域,直流電機的調(diào)速控制至關重要,而單片機憑借其靈活的控制能力,成為實現(xiàn)直流電機精準調(diào)速的核心部件。單片機直流電機調(diào)速技術通過
    的頭像 發(fā)表于 07-17 13:42 ?900次閱讀

    單片機原理及應用

    本書全面系統(tǒng)地介紹了 MCS-51 系列單片機的基本結(jié)構、工作原理及應用技術。主要內(nèi)容包括:微型計算機的基礎知識、MCS-51 單片機的基本結(jié)構、匯編語言和 C51 語言程序設計方法、
    發(fā)表于 06-16 16:58

    STC單片機范例程序

    電子發(fā)燒友網(wǎng)站提供《STC單片機范例程序.zip》資料免費下載
    發(fā)表于 06-04 16:27 ?10次下載
    克拉玛依市| 岳西县| 万载县| 宁南县| 额济纳旗| 自贡市| 石泉县| 和静县| 二连浩特市| 弋阳县| 菏泽市| 微山县| 光泽县| 莲花县| 芜湖县| 通河县| 湘潭市| 建始县| 无为县| 杭州市| 涿州市| 精河县| 垫江县| 丹江口市| 英超| 镇安县| 七台河市| 长治市| 马关县| 仙游县| 承德市| 大邑县| 澜沧| 益阳市| 于都县| 阿克陶县| 大竹县| 五常市| 广饶县| 刚察县| 凤台县|