找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

3課:單片機(jī)存儲器結(jié)構(gòu)

  [復(fù)制鏈接]
ID:1 發(fā)表于 2013-5-21 02:44 | 顯示全部樓層 |閱讀模式

單片機(jī)內(nèi)部存儲結(jié)構(gòu)分析
   我們來思考一個問題,當(dāng)我們在編程器中把一條指令寫進(jìn)單片要內(nèi)部,然后取下單片機(jī),單片機(jī)就可以執(zhí)行這條指令,那么這條指令一定保存在單片機(jī)的某個地方,并且這個地方在單片機(jī)掉電后依然可以保持這條指令不會丟失,這是個什么地方呢?這個地方就是單片機(jī)內(nèi)部的只讀存儲器即ROM(READ ONLY MEMORY)。為什么稱它為只讀存儲器呢?剛才我們不是明明把兩個數(shù)字寫進(jìn)去了嗎?原來在89C51中的ROM是一種電可擦除的ROM,稱為FLASH ROM,剛才我們是用的編程器,在特殊的條件下由外部設(shè)備對ROM進(jìn)行寫的操作,在單片機(jī)正常工作條件下,只能從那面讀,不能把數(shù)據(jù)寫進(jìn)去,所以我們還是把它稱為ROM。

   數(shù)的本質(zhì)和物理現(xiàn)象:我們知道,計(jì)算機(jī)能進(jìn)行數(shù)學(xué)運(yùn)算,這可令我們非常的難以理解,計(jì)算機(jī)嗎,我們雖不了解它的組成,但它總只是一些電子元器件,怎么能進(jìn)行數(shù)學(xué)運(yùn)算呢?我們做數(shù)學(xué)題如37+45是這樣做的,先在紙上寫37,然后在下面寫45,然后大腦運(yùn)算,最后寫出結(jié)果,運(yùn)算的原材料:37、45和結(jié)果:82都是寫在紙上的,計(jì)算機(jī)中又是放在什么地方呢?為了解決這個問題,先讓我們做一個實(shí)驗(yàn):這里有一盞燈,我們知道燈要么亮,要么不亮,就有兩種狀態(tài),我們能用’0’和’1’來代替這兩種狀態(tài),規(guī)定亮為’1’,不亮為’0’,F(xiàn)在放上兩盞燈,一共有幾種狀態(tài)呢?我們列表來看一下:

狀態(tài)
表達(dá)
0 0
0 1
1 0
1 1

  請大家自已寫上3盞燈的情況000 001 010 011 100 101 110 111

  我們來看,這個000,001,101 不就是我們學(xué)過的的二進(jìn)制數(shù)嗎?本來,燈的亮和滅只是一種物理現(xiàn)象,可當(dāng)我們把它們按一按的次序排更好后,燈的亮和滅就代表了數(shù)字了。讓我們再抽象一步,燈為什么會亮呢?看電路1,是因?yàn)檩敵鲭娐份敵龈唠娖剑o燈通了電。因此,燈亮和滅就能用電路的輸出是高電平還是低電平來替代了。這樣,數(shù)字就和電平的高、低聯(lián)系上了。(請想一下,我們還看到過什么樣的類似的例程呢?(海軍之)燈語、旗語,電報(bào),甚至紅、綠燈)

什么是位: 
  通過上面的實(shí)驗(yàn)我們已經(jīng)知道:一盞燈亮或者說一根線的電平的高低,能代表兩種狀態(tài):0和1。實(shí)際上這就是一個二進(jìn)制位,因此我們就把一根線稱之為一“位”,用BIT表示。

什么是字節(jié):
  一根線能表于0和1,兩根線能表達(dá)00,01,10,11四種狀態(tài),也就是能表于0到3,而三根能表達(dá)0-7,計(jì)算機(jī)中常常用8根線放在一起,同時計(jì)數(shù),就能表過到0-255一共256種狀態(tài)。這8根線或者8位就稱之為一個字節(jié)(BYTE)。不要問我為什么是8根而不是其它數(shù),因?yàn)槲乙膊恢。(?jì)算機(jī)世界是一本人造的世界,不是自然界,很多事情你無法問為什么,只能說:它是一種規(guī)定,大家在以后的學(xué)習(xí)過程中也要注意這個問題)

存儲器的工作原理:

1、存儲器構(gòu)造

   存儲器就是用來存放數(shù)據(jù)的地方。它是利用電平的高低來存放數(shù)據(jù)的,也就是說,它存放的實(shí)際上是電平的高、低,而不是我們所習(xí)慣認(rèn)為的1234這樣的數(shù)字,這樣,我們的一個謎團(tuán)就解開了,計(jì)算機(jī)也沒什么神秘的嗎。


圖2

圖3

  讓我們看圖2。單片機(jī)里面都有這樣的存儲器,這是一個存儲器的示意圖:一個存儲器就象一個個的小抽屜,一個小抽屜里有八個小格子,每個小格子就是用來存放“電荷”的,電荷通過與它相連的電線傳進(jìn)來或釋放掉,至于電荷在小格子里是怎樣存的,就不用我們操心了,你能把電線想象成水管,小格子里的電荷就象是水,那就好理解了。存儲器中的每個小抽屜就是一個放數(shù)據(jù)的地方,我們稱之為一個“單元”。

  有了這么一個構(gòu)造,我們就能開始存放數(shù)據(jù)了,想要放進(jìn)一個數(shù)據(jù)12,也就是00001100,我們只要把第二號和第三號小格子里存滿電荷,而其它小格子里的電荷給放掉就行了(看圖3)?墒菃栴}出來了,看圖2,一個存儲器有好多單元,線是并聯(lián)的,在放入電荷的時候,會將電荷放入所有的單元中,而釋放電荷的時候,會把每個單元中的電荷都放掉,這樣的話,不管存儲器有多少個單元,都只能放同一個數(shù),這當(dāng)然不是我們所希望的,因此,要在結(jié)構(gòu)上稍作變化,看圖2,在每個單元上有個控制線,我想要把數(shù)據(jù)放進(jìn)哪個單元,就給一個信號這個單元的控制線,這個控制線就把開關(guān)打開,這樣電荷就能自由流動了,而其它單元控制線上沒有信號,所以開關(guān)不打開,不會受到影響,這樣,只要控制不一樣單元的控制線,就能向各單元寫入不一樣的數(shù)據(jù)了,同樣,如果要某個單元中取數(shù)據(jù),也只要打開對應(yīng)的控制開關(guān)就行了。

2、存儲器譯碼
  那么,我們怎樣來控制各個單元的控制線呢?這個還不簡單,把每個單元元的控制線都引到集成電路的外面不就行了嗎?事情可沒那么簡單,一片27512存儲器中有65536個單元,把每根線都引出來,這個集成電路就得有6萬多個腳?不行,怎么辦?要想法減少線的數(shù)量。我們有一種辦法稱這為譯碼,簡單介紹一下:一根線能代表2種狀態(tài),2根線能代表4種狀態(tài),3根線能代表幾種,256種狀態(tài)又需要幾根線代表?8種,8根線,所以65536種狀態(tài)我們只需要16根線就能代表了。

半導(dǎo)體存儲器的分類

  按功能能分為只讀和隨機(jī)存取存儲器兩大類。所謂只讀,從字面上理解就是只能從里面讀,不能寫進(jìn)去,它類似于我們的書本,發(fā)到我們手回之后,我們只能讀里面的內(nèi)容,不能隨意更改書本上的內(nèi)容。只讀存儲器的英文縮寫為ROM(READ ONLY MEMORY)

所謂隨機(jī)存取存儲器,即隨時能改寫,也能讀出里面的數(shù)據(jù),它類似于我們的黑板,我能隨時寫東西上去,也能用黑板擦擦掉重寫。隨機(jī)存儲器的英文縮寫為RAM(Random Access Memory)這兩種存儲器的英文縮寫一定要記牢。

注意:所謂的只讀和隨機(jī)存取都是指在正常工作情況下而言,也就是在使用這塊存儲器的時候,而不是指制造這塊芯片的時候。不然,只讀存儲器中的數(shù)據(jù)是怎么來的呢?其實(shí)這個道理也很好理解,書本拿到我們手里是不能改了,能當(dāng)它還是原材料——白紙的時候,當(dāng)然能由印刷廠印上去了。

順便解釋一下其它幾個常見的概念。

  PROM,稱之為可編程存儲器。這就象我們的練習(xí)本,買來的時候是空白的,能寫東西上去,可一旦寫上去,就擦不掉了,所以它只能用寫一次,要是寫錯了,就報(bào)銷了。(現(xiàn)在已經(jīng)被淘汰)

  EPROM,稱之為紫外線擦除的可編程只讀存儲器。它里面的內(nèi)容寫上去之后,如果覺得不滿意,能用一種特殊的辦法去掉后重寫,這就是用紫外線照射,紫外線就象“消字靈”,能把字去掉,然后再重寫。當(dāng)然消的次數(shù)多了,也就不靈光了,所以這種芯片能擦除的次數(shù)也是有限的——幾百次吧。(現(xiàn)在已經(jīng)被淘汰)

   EEPROM,也叫 E2PROM稱之為電可擦可編程只讀存儲器,它和EEPROM類似,寫上去的東西也能擦掉重寫,但它要方便一些,不需要光照了,只要用電就能擦除或者重新改寫數(shù)據(jù),所以就方便許多,而且壽命也很長(幾萬到幾十萬次不等)。

  FLASH,稱之為閃速存儲器,屬于EEPROM的改進(jìn)產(chǎn)品,它的最大特點(diǎn)是必須按塊(Block)擦除(每個區(qū)塊的大小不定,不同廠家的產(chǎn)品有不同的規(guī)格), 而EEPROM則可以一次只擦除一個字節(jié)(Byte)。FLASH現(xiàn)在常用于大容量存儲,比如u盤

  再次強(qiáng)調(diào),這里的所有的寫都不是指在正常工作條件下。不管是PROM還是EPROM,它們的寫都要有特殊的條件,一般我們用一種稱之為“編程器”的設(shè)備來做這項(xiàng)工作,一旦把它裝到它的工作位置,就不能隨便改寫了。


下一課:4課:第一個單片機(jī)小程序

評分

參與人數(shù) 10黑幣 +78 收起 理由
陸少 + 12
17314504393 + 30 贊一個!
marry;me + 5 贊一個!就是匯編現(xiàn)在用的不多了
zycwswws + 5
phoenix_me + 5 絕世好帖!
hongfa1000 + 1
wodetianna + 5 贊一個!
G·暖途 + 5 贊一個!
chen_zhouge + 5 贊一個!
msifortinet + 5 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:50462 發(fā)表于 2013-5-21 10:59 | 顯示全部樓層

回帖獎勵 +1

前幾年學(xué)過,都忘記了。這資料不錯,謝謝!
回復(fù)

使用道具 舉報(bào)

ID:50551 發(fā)表于 2013-5-25 18:10 | 顯示全部樓層
了解很多
回復(fù)

使用道具 舉報(bào)

ID:50805 發(fā)表于 2013-6-8 07:38 | 顯示全部樓層
能不能多給一些具體的例子,地址分配這一塊總該覺比較模糊
回復(fù)

使用道具 舉報(bào)

ID:52939 發(fā)表于 2013-8-11 16:30 | 顯示全部樓層
受益匪淺啊   感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:52654 發(fā)表于 2013-8-18 10:35 | 顯示全部樓層
比喻很形象{:soso_e179:}
回復(fù)

使用道具 舉報(bào)

ID:53820 發(fā)表于 2013-8-31 09:15 | 顯示全部樓層
謝謝分享!。。!
回復(fù)

使用道具 舉報(bào)

ID:54965 發(fā)表于 2013-9-11 22:04 | 顯示全部樓層
一天看一點(diǎn)
回復(fù)

使用道具 舉報(bào)

ID:57069 發(fā)表于 2013-11-19 23:42 | 顯示全部樓層
這資料很好啊,通俗易懂,比看枯燥的專業(yè)書有意思多了。
回復(fù)

使用道具 舉報(bào)

ID:58037 發(fā)表于 2013-12-19 16:54 | 顯示全部樓層
收益,非常感謝此論壇的幫助!
回復(fù)

使用道具 舉報(bào)

ID:58111 發(fā)表于 2013-12-22 15:33 來自手機(jī) | 顯示全部樓層
謝謝樓主,個人覺得你寫的比那書寫的還好
回復(fù)

使用道具 舉報(bào)

ID:58263 發(fā)表于 2013-12-26 22:24 | 顯示全部樓層
這節(jié)很重要
回復(fù)

使用道具 舉報(bào)

ID:59436 發(fā)表于 2014-3-5 15:30 | 顯示全部樓層
很好,學(xué)習(xí)了,謝謝
回復(fù)

使用道具 舉報(bào)

ID:59987 發(fā)表于 2014-4-5 11:20 | 顯示全部樓層
像樓主這樣的高人才配做大學(xué)老師,現(xiàn)在的大學(xué)老師上課一點(diǎn)都沒有趣味,只知道照本宣科PPT 都睡著了,原本美好的單片機(jī)學(xué)習(xí)興趣就是被大學(xué)老師磨砂了...
回復(fù)

使用道具 舉報(bào)

ID:60228 發(fā)表于 2014-4-18 10:41 | 顯示全部樓層
學(xué)習(xí)了,thanks。
回復(fù)

使用道具 舉報(bào)

ID:61875 發(fā)表于 2014-5-15 14:56 | 顯示全部樓層
感謝樓主學(xué)習(xí)了。
回復(fù)

使用道具 舉報(bào)

ID:62343 發(fā)表于 2014-5-28 17:30 | 顯示全部樓層
有些懵。
回復(fù)

使用道具 舉報(bào)

ID:61153 發(fā)表于 2014-6-5 22:39 | 顯示全部樓層
又學(xué)到了
回復(fù)

使用道具 舉報(bào)

ID:63013 發(fā)表于 2014-6-16 22:10 | 顯示全部樓層
樓主好強(qiáng)大真的
回復(fù)

使用道具 舉報(bào)

ID:63647 發(fā)表于 2014-7-5 21:39 來自手機(jī) | 顯示全部樓層
感謝樓主,比我在教材上學(xué)習(xí)好多了,一點(diǎn)都不乏味
回復(fù)

使用道具 舉報(bào)

ID:64206 發(fā)表于 2014-7-21 15:51 | 顯示全部樓層
感謝樓主
回復(fù)

使用道具 舉報(bào)

ID:64075 發(fā)表于 2014-7-21 16:34 | 顯示全部樓層
Good,good。
回復(fù)

使用道具 舉報(bào)

ID:64543 發(fā)表于 2014-7-29 19:50 | 顯示全部樓層
這資料不錯,謝謝!
回復(fù)

使用道具 舉報(bào)

ID:64575 發(fā)表于 2014-8-1 13:14 | 顯示全部樓層
太棒了
回復(fù)

使用道具 舉報(bào)

ID:64634 發(fā)表于 2014-8-4 16:12 | 顯示全部樓層
初學(xué)者,先學(xué)單片機(jī)還是先學(xué)C語言?
回復(fù)

使用道具 舉報(bào)

ID:65477 發(fā)表于 2014-8-29 13:51 | 顯示全部樓層
要是四年前我知道這個論壇該多好啊,現(xiàn)在都畢業(yè)了
回復(fù)

使用道具 舉報(bào)

ID:65592 發(fā)表于 2014-9-9 22:54 | 顯示全部樓層
學(xué)習(xí)了....
回復(fù)

使用道具 舉報(bào)

ID:66453 發(fā)表于 2014-9-21 18:52 | 顯示全部樓層
樓主厲害
回復(fù)

使用道具 舉報(bào)

ID:66955 發(fā)表于 2014-10-4 16:55 | 顯示全部樓層
這資料很好啊,通俗易懂,比看枯燥的專業(yè)書有意思多了。
回復(fù)

使用道具 舉報(bào)

ID:68700 發(fā)表于 2014-11-12 16:21 | 顯示全部樓層
通俗易懂,好!
回復(fù)

使用道具 舉報(bào)

ID:67837 發(fā)表于 2014-12-15 15:26 | 顯示全部樓層
初學(xué)者,跟您學(xué)習(xí)啦
回復(fù)

使用道具 舉報(bào)

ID:70525 發(fā)表于 2014-12-16 12:04 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:70104 發(fā)表于 2014-12-20 12:17 | 顯示全部樓層
認(rèn)真學(xué)習(xí)中
回復(fù)

使用道具 舉報(bào)

ID:72978 發(fā)表于 2015-1-29 21:54 | 顯示全部樓層
大學(xué)的時候很喜歡匯編,對這些搞得很清楚,好多年不用了,都忘完了
回復(fù)

使用道具 舉報(bào)

ID:69497 發(fā)表于 2015-2-1 16:26 | 顯示全部樓層
清晰明了。學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

ID:73847 發(fā)表于 2015-2-24 15:27 | 顯示全部樓層
謝謝分享,要好好學(xué)習(xí)。
回復(fù)

使用道具 舉報(bào)

ID:75710 發(fā)表于 2015-3-30 19:59 | 顯示全部樓層
細(xì)致解析,贊一個
回復(fù)

使用道具 舉報(bào)

ID:64888 發(fā)表于 2015-4-5 22:58 來自手機(jī) | 顯示全部樓層
形象生動!
回復(fù)

使用道具 舉報(bào)

ID:74408 發(fā)表于 2015-4-9 20:15 | 顯示全部樓層
寫的太好了!看了不少的資料,重來沒發(fā)現(xiàn)講的這么通俗易懂的!樓主辛苦另了!期望出來更多更好的類似的教程
回復(fù)

使用道具 舉報(bào)

ID:76437 發(fā)表于 2015-4-10 17:17 | 顯示全部樓層
這套課程可不可以打包下載
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表