久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2508|回復(fù): 2
收起左側(cè)

從設(shè)計(jì)角度理解51單片機(jī)存儲(chǔ)結(jié)構(gòu)與尋址方式

[復(fù)制鏈接]
ID:266429 發(fā)表于 2018-6-4 17:19 | 顯示全部樓層 |閱讀模式
一、這樣理解數(shù)據(jù)存儲(chǔ)器
單片機(jī)的工作機(jī)制并不復(fù)雜,最主要的包括兩大系統(tǒng),即數(shù)據(jù)處理系統(tǒng)和數(shù)據(jù)存取系統(tǒng)。
打個(gè)比方說,你在做算術(shù)時(shí),流程是這樣的:你先把需要處理的兩個(gè)數(shù)據(jù)從題目上找來,然后按計(jì)算規(guī)則放在你的作業(yè)本上,然后對這兩個(gè)數(shù)據(jù)進(jìn)行算術(shù)計(jì)算,然后將結(jié)果寫在計(jì)算式后面,然后你可能還要將計(jì)算結(jié)果寫在別的地方如卷子上。
在這個(gè)流程中,算術(shù)計(jì)算是依靠你的大腦的處理來得到的,你的大腦就是數(shù)據(jù)處理系統(tǒng),而把數(shù)據(jù)拿過來就是數(shù)據(jù)的“取”,將結(jié)果寫在卷子上就是“存”。在這其中,“存”“取”所用到的介質(zhì),就是存儲(chǔ)器。
數(shù)據(jù)處理與數(shù)據(jù)存取,是單片機(jī)的核心,單片機(jī)對數(shù)據(jù)進(jìn)行什么樣的處理,我們只需給它一個(gè)命令,它就會(huì)自己去實(shí)現(xiàn),我們并不需要知道它的詳細(xì)的處理過程;而對于數(shù)據(jù)從哪里取、取后放在什么地方、處理后的結(jié)果需要放在什么地方,這個(gè)就得程序員來一個(gè)一個(gè)地安排了,單片機(jī)自己是不會(huì)做的,也就是如果你不告訴它需要處理的數(shù)據(jù)在什么地方,處理完成后的結(jié)果需要放在哪,它是不會(huì)自己來自動(dòng)安排的。當(dāng)然,我們這里說的是匯編語言和機(jī)器語言。
另外說一句:所計(jì)算出來的結(jié)果是作什么用的即其用途是什么,那就是另外一件事了。這些用途之類的處理,并不是單片機(jī)的核心功能,而只是其拓展功能,核功能仍是數(shù)據(jù)處理與數(shù)據(jù)存取。
學(xué)習(xí)與理解匯編語言編程原理其實(shí)很簡單,一是記住單片機(jī)本身有哪些數(shù)據(jù)處理命令,這個(gè)通過多編程就可以記住了;第二就是對數(shù)據(jù)進(jìn)行合理的存取位置安排與計(jì)劃,這個(gè)只要你理解了存儲(chǔ)器的設(shè)置機(jī)理,你就可以很好地做到。
二、這樣理解程序存儲(chǔ)器
我們在做算術(shù)題時(shí),用到的“存取”,只是對數(shù)據(jù)的操作,這些數(shù)據(jù),我們要么寫在草稿紙上要么寫在作業(yè)本上或卷子上。這個(gè)在單片機(jī)中,對應(yīng)的,就是數(shù)據(jù)存儲(chǔ)類存儲(chǔ)器,即教科書上所說的數(shù)據(jù)存儲(chǔ)器,只對需要處理的數(shù)據(jù)和計(jì)算結(jié)果進(jìn)行存取操作。
以上做法,在題目簡單計(jì)算步驟較少需處理的數(shù)據(jù)較少時(shí),你可以只用你的大腦來記憶控制整個(gè)計(jì)算流程就行了,但是,當(dāng)計(jì)算工作量很大時(shí),特別是需要很長時(shí)間比如得幾天,那么你就不能只憑大腦來控制整個(gè)計(jì)算流程了,你得先寫一個(gè)計(jì)算的流程書來說明整個(gè)計(jì)算步驟,然后你就按這個(gè)流程書一步一步地來進(jìn)行計(jì)算,每執(zhí)行一步都做個(gè)標(biāo)記以表示你已經(jīng)做完這一步了,這樣,不管多復(fù)雜的計(jì)算題,你都不會(huì)弄亂。
其實(shí),單片機(jī)本身是沒有一個(gè)能夠控制整個(gè)計(jì)算流程的大腦的,它的每一步操作,包括從哪里取數(shù)據(jù)、對數(shù)據(jù)進(jìn)行什么樣的處理、處理后的結(jié)果存在哪,都必須由程序員事先告訴它。怎么告訴它?這就是我們所寫的程序即前面說的流程書。這些寫好的程序要交給單片機(jī)即存入單片機(jī)內(nèi)(或單片機(jī)能找到的地方),單片機(jī)才能按這個(gè)寫好的程序來一步一步地按程序員的要求來執(zhí)行。這個(gè)存放程序的地方,就是單片機(jī)的程序存儲(chǔ)器。在這里,我們還知道了為什么我們要給單片機(jī)寫程序。
有一點(diǎn)要說明的是,單片機(jī)中寫在程序中的需要處理的數(shù)據(jù)是存在程序存儲(chǔ)器中的,至于其如何區(qū)分指令與數(shù)據(jù),想知道的可以百度一下(我發(fā)誓不是給百度做廣告)。
三、這樣理解數(shù)據(jù)存儲(chǔ)器的種類
數(shù)據(jù)存儲(chǔ)器的分類方法之一,就是其距離數(shù)據(jù)處理器的時(shí)間距離(不是物理距離),這個(gè)距離,決定了單片機(jī)存取數(shù)據(jù)所花費(fèi)的時(shí)間,直接影響到程序運(yùn)行的時(shí)間。為什么我要在這里說時(shí)間?因?yàn)檫@直接關(guān)系到單片機(jī)的運(yùn)行速度,單片機(jī)的工作原理很簡單,但在芯片設(shè)計(jì)上,設(shè)計(jì)師最主要的精力并不是功能方面的,而是提高運(yùn)行速度,它決定著你的芯片能否賣得出去并賣出個(gè)好價(jià)錢。所以,數(shù)據(jù)存儲(chǔ)器作為單片機(jī)的核心之一,其設(shè)計(jì)布置,以保證提高運(yùn)行速度為根本。
還是以做算術(shù)題為例,就只做兩個(gè)數(shù)據(jù)的算術(shù)計(jì)算時(shí),這兩個(gè)數(shù)據(jù)其實(shí)是就放在你眼前的一張紙,你抬眼就能找到它。這是第一種情況。
當(dāng)數(shù)據(jù)多了時(shí),你的數(shù)據(jù)就要記在一個(gè)本子上了,找數(shù)據(jù)時(shí)你可能就要翻本子了,這個(gè)是第二種情況,比第一種情況多花一些時(shí)間。
當(dāng)數(shù)據(jù)量更大、而你的本子記不下了時(shí),怎么辦?那你就要記在別的本子上了。這就是第三種情況了。這時(shí)問題就來了,你放在手上的只有第一個(gè)本子,你的這個(gè)本子是編了頁碼的,你在這個(gè)本子上找數(shù)據(jù)是根據(jù)頁碼來找的,你增加了一個(gè)本子后,怎么才能在這第二個(gè)本子上找到你所需要的數(shù)據(jù)?跟在第一個(gè)本子的后面續(xù)編頁碼么?還是采用其它方法?這里我們暫不討論,只說明一下,這第三種情況,其所花費(fèi)的時(shí)間,與采用的尋找數(shù)據(jù)的方法有直接關(guān)系,但最好的情況,也不過是與第二種情況所花費(fèi)的時(shí)間一樣多,基本上都會(huì)超過第二種情況。(思考一下,為什么片外RAM可以從地址0000開始,但片外ROM則不能)
從以上三種情況來看,存儲(chǔ)結(jié)構(gòu)的設(shè)計(jì),將直接關(guān)系到單片機(jī)的運(yùn)行速度,而我們知道,第一種情況是最快的,所以,在結(jié)構(gòu)設(shè)計(jì)時(shí),應(yīng)盡可能多的將存儲(chǔ)器放在你眼前,這個(gè)放在單片機(jī)眼前的,就是累加器、B寄存器之類的,抬眼就能找到的。在物理設(shè)計(jì)上,它們與數(shù)據(jù)處理器是直接電路連接的即專用且直通方式,是每一個(gè)這類寄存器一個(gè)專用“車道”與數(shù)據(jù)處理器連接,同時(shí)設(shè)計(jì)了一個(gè)專用機(jī)器指令,對應(yīng)于匯編指令,也是每一個(gè)這類寄存器有一條專用指令。這些單元,其實(shí)在芯片硬件電路設(shè)計(jì)中是屬于CPU部分的,而不是在RAM中,我們可以稱之為核心存儲(chǔ)單元。
第二種情況,對應(yīng)的就是書上所說的片內(nèi)數(shù)據(jù)存儲(chǔ)器中的一部分,這部分就是編了頁碼的本子(這里有一點(diǎn)要說明的是,核心存儲(chǔ)單元其實(shí)也在這個(gè)本子上占了頁碼的)。這一類,我們稱之為片內(nèi)編碼式存儲(chǔ)單元即書上所說的片內(nèi)RAM。
第三種情況,對應(yīng)的就是片外編碼式存儲(chǔ)單元即片外RAM。
四、這樣理解尋址方式
好了,從上面所述,單片機(jī)用到的存儲(chǔ)器其實(shí)就只有四種:三種數(shù)據(jù)存儲(chǔ)類和一種程序存儲(chǔ)類。
單片機(jī)在對數(shù)據(jù)處理前和處理后,所做的事就是對數(shù)據(jù)的存與取,所謂尋址方式,就是找數(shù)據(jù)存數(shù)據(jù),通俗地說是倒騰數(shù)據(jù),專業(yè)一點(diǎn)的說法是數(shù)據(jù)傳送,從這個(gè)存儲(chǔ)器到那個(gè)存儲(chǔ)器,不過有一點(diǎn),單片機(jī)的設(shè)計(jì)上,有些存儲(chǔ)器之間是不能直接進(jìn)行數(shù)據(jù)倒騰的,而是必須通過A寄存器等的。需要說明的是,單片機(jī)在運(yùn)行時(shí),程序存儲(chǔ)器中的內(nèi)容是不可改變的,所以運(yùn)行時(shí)對程序存儲(chǔ)器只有“取”操作,而沒有“存”操作。
明白了存儲(chǔ)器的設(shè)計(jì)分類,明白了所謂尋址不過是數(shù)據(jù)倒騰,那你自然明白所謂的尋址方式是怎么回事了,甚至,你可以不管所謂的尋址方式,你在編程時(shí)只要清楚你準(zhǔn)備如何安排數(shù)據(jù)的存取位置,然后你從現(xiàn)成的匯編指令中找到合適的數(shù)據(jù)存取指令并應(yīng)用之就行了。
PS:個(gè)人覺得教科書中的尋址方式分類法,并不能反映數(shù)據(jù)倒騰的根本,甚至?xí)屓酥淙欢恢渌匀,?huì)僵化你的編程,所以,我們要多角度來理解數(shù)據(jù)的倒騰方式以全面了解之。
PS2:所謂的位操作,我們其實(shí)知道,利用現(xiàn)有的匯編指令可以實(shí)現(xiàn)對任一存儲(chǔ)單元中任一位的操作,但那屬于軟件操作。而單片機(jī)中給定的位操作指令,都是硬件實(shí)現(xiàn),即操作指令發(fā)出后,對位的操作過程全部由芯片內(nèi)的硬件邏輯電路來實(shí)現(xiàn),在電路上這樣設(shè)計(jì)的目的,只是為了快速實(shí)現(xiàn)。這個(gè)電路,就是書中所說的位處理器。
PS3:數(shù)據(jù)傳送指令,還有一種分類方法,那就是專用傳送指令和通用傳送指令。專用傳送指令是指直通車式存儲(chǔ)單元之間的數(shù)據(jù)傳送,不同的直通車式存儲(chǔ)單元之間的數(shù)據(jù)傳送,每一樣都專門有一個(gè)機(jī)器指令,這樣設(shè)計(jì)的目的,同樣是為了快速。通用傳送指令就是一條指令可以用于多個(gè)存儲(chǔ)單元,只需在該指令后面寫上要操作的存儲(chǔ)單元就是了。當(dāng)然,這種說法,針對的是機(jī)器指令。
回復(fù)

使用道具 舉報(bào)

ID:272269 發(fā)表于 2018-6-4 23:12 | 顯示全部樓層
贊一個(gè),好資料,51黑有你更精彩!!!
回復(fù)

使用道具 舉報(bào)

ID:266429 發(fā)表于 2018-6-24 09:54 | 顯示全部樓層
jizi 發(fā)表于 2018-6-4 23:12
贊一個(gè),好資料,51黑有你更精彩!!!

    謝謝。我寫這個(gè)帖子,最主要的原因,還是因?yàn)榭吹綁镌谠O(shè)計(jì)理論方面的探討不多,不能理解設(shè)計(jì)理論,則就最多只能做到知其然而不知其所以然,然后編程時(shí)就只能照抄別的人程序。純屬個(gè)人性格,不喜歡照抄別人的東西,而是希望一切都在自己頭腦中,做到在編程時(shí)全部程序都從自己手中流暢地寫出。
   還有就是,對現(xiàn)有的教材都不太滿意,特別是在基礎(chǔ)理論方面,只是照抄原設(shè)計(jì)者出的書,這也導(dǎo)致了芯片設(shè)計(jì)和程序編制人才培養(yǎng)跟不上需要,這也是現(xiàn)在只能跟在別人后面亦步亦趨的原因之一。
    我寫的所有帖子,自認(rèn)為都是有新意的,相對來說更接近于對根本的探究,對與不對另說,僅是希望能改變思維方式而去探本求源。
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕三区 | 91免费福利在线 | 91精品国产91久久久久久最新 | 日韩视频在线播放 | 另类一区 | 久久婷婷国产香蕉 | 亚洲一区二区三区在线免费 | 精品一区二区三区四区 | 久久精品一区二区三区四区 | 91免费版在线观看 | 国产亚洲一区精品 | 孕妇一级毛片 | 日本亚洲一区 | 一级片免费在线观看 | 精品国产91 | 中文字幕专区 | 日韩二三区 | 久草青青草 | 99热最新 | 精产国产伦理一二三区 | 中文字幕日韩一区 | 国产小u女发育末成年 | 精品国产一区二区久久 | 国产精品久久久久一区二区三区 | 精品国产欧美 | 久久久av| 国产成人精品在线 | 国产在线播放一区二区三区 | 日本不卡视频在线播放 | 人人做人人澡人人爽欧美 | 中文字幕在线一区二区三区 | 国内精品久久久久久久 | 亚洲精品乱码久久久久久蜜桃91 | 夜夜艹| 亚洲一区二区中文字幕 | 草草在线观看 | 亚洲成人毛片 | 爽爽免费视频 | 亚洲国产一区二区三区在线观看 | 亚洲国产黄色av | 中文字幕免费视频 |