国产一卡2卡三卡4卡麻豆_了解最新日韩草逼视频_h片在线播放一区_国产激情影视在线_好了av四色综合无码久久_欧美黑白双插OOR720P_日本精品中文字幕在线_秋霞午夜手机影院_亚洲国产一区二区3da毛片_欧美杂交深喉video中文字幕

深圳市晧辰電子科技有限公司

干貨 | RAM在單片機里有什么用?

時間:2020-4-29閱讀:524
分享:

單片機就是個小計算機,大計算機少不了的數據存儲系統,單片機一樣有,而且往往和CPU集成在一起,更加顯得小巧靈活。

 

直到90年代初,國內容易得到的單片機就是8031:不帶存儲器的芯片,要想工作,還必須外加RAM和ROM,單片機成了3片機......

 

現在不同了,大的小的又是51,又是AVR又是STC,還有什么430,PIC等等,都各說各的好,可是誰也不敢說“我不要存儲器”。

 

單片機的數據存儲手段

 

程序存儲器ROM

 

程序存儲器里面存放的是單片機的靈魂:工作程序。

 

小的可能只有1KB,多只能裝1024條8位數據,因為實際指令還有許多2字節,3字節指令,所以它還裝不下1024條指令。大的也有128KB的。這些8位數據,要么在工廠里做模子光刻進去,要么一次性的燒寫進去。

 

業余或開發,多也就是用編程器這么一個特殊工具,把調試成功的機器碼裝載進去,或者像AVR單片機那樣自己花幾塊錢做一條下載線,把電腦里這些東西灌進去(或許是AVR吸引人之處)。

 

它一旦進駐電腦的程序存儲器中,除了借助上述裝置便不能自由改寫,在單片機運行時,只是從其中讀出指令或固定的數據,所以給程序存儲器一個“只讀存儲器”的別名,簡寫為ROM,包括用編程器寫紫外線擦除內容的EPROM、用電擦除的EEPROM和現在新興的FLASH ROM。

 

 

一次性寫入的ROM,僅用于電路和程序固定的批量產品中,實際工作起來,都是一樣的。

 

為了定位ROM中的數據,每個8位存儲單元都有一個固定的“地址”,通常用16進制數表示。例如,對于一個所謂4K的ROM,地址從0000H到0FFFH(即從0000,0001...4095),單片機運行時從哪個地址取數據,*由程序本身決定,并不要我們干預。

 

記住,給單片機一通電,它經過一個短暫的復位過程,立即轉向ROM的低地址0000H,在這里面放置的往往是一條“跳轉”指令,它從這里一步跳到另一個地址:程序的真正起始地址,例如51機的0080H。

 

ROM是程序存儲器,除了指令外,還包括運行程序必須的某些固定數據,例如:數據表。假如,我們要求在單片機的接口上輸出00H到FFH(255)按正弦半波變化的數值,每秒10000次。如果硬要它按照公式一個個計算,對于它來說未免力不從心。可是我們可以把預先計算好的數值存入ROM中,到時候直接取出不是好多了?

 

又如一個重要的應用:大家一定見過不少單片機的東西上面都有數碼顯示,那些個數字其實就是用單片機的口線控制數碼管的字段電極電位。這些字形也是存放在ROM中的字模表,各個字模和0-9的數字(機器內當然是0000-0101二進制數)對應起來。常見的共陽極7段數碼管,必須在陽極加正電,7個陰極都是地電位,才能顯示數字"8",數字8對應的顯示字碼值是二進制數“10000000“(那個1對應的是小數點,高電位不讓它顯示)。

 

數據存儲器RAM

 

這是個可以隨時存取數據的一塊存儲器,也就是可以讀(取)也可以寫(存)的存儲器,簡稱RAM。

 

現在的單片機里面使用的RAM,屬于靜態RAM或SRAM,這個和電腦用的內存條有所不同。只要你把數據寫入SRAM后,不斷電或者不清除掉,這個數據就一直保存在那里。電腦用的是動態RAM,要不斷給它加刷新脈沖才能保存數據。

 

因為單片機處理的信息量比電腦小很多,所以它帶的RAM也比較少:從*不帶、帶128、256、...1K、2K,到4K,比ROM少多了。

 

因為實際上RAM只是作為數據臨時存放的地方,除非進行圖像處理需要存放大量的數據外。一般對于執行較簡單任務的單片機,有這么多也夠用,如果實在不夠用也只能采取外加SRAM如6116、6264等等來擴展。

 

 

為了對RAM單元存取8位二進制數,當然也得和ROM一樣用“地址”來標示它的具體位置。假如某單片機有1K(1024)RAM,它的地址也是從0000到1024,或16進制數的0000H到03FFH。可見,和ROM的地址是一樣的。

 

會不會混淆不清?

 

不會,因為讀ROM是由單片機的程序指針或轉移指令或查表指令進行,而這些指令是不會進入RAM區的;讀寫RAM是另外的數據傳送指令,也不會進入ROM區。這點也是和電腦不同之處,后者程序和數據都在內存條里面,地址不同,如果竄位了就會造成不可預見后果。單片機的這種存儲器結構也稱為哈佛結構。

 

RAM在單片機里的用途

 

RAM在單片機里的用途,主要是存放臨時數據。

 

例如用單片機測溫,每秒測1次,顯示1分鐘的平均值(1分鐘更新一次):

 

我們先通過傳感器、放大電路、A/D轉換,把溫度這個模擬量轉變為成比例的二進制數,然后每秒鐘1次把數字量通過輸入口順序存入到單片機的RAM中,然后對他們進行兩兩求和再平均的計算,后的數值顯示出來,然后把這60個存儲單元統統寫0清除舊數據,下次又是如此循環進行。

 

結語

 

另外在單片機里面還有若干寄存器,數量不多但是作用很大,除了暫存數據,還可以交換、加工、傳遞等等,以及隨時記錄單片機當前處于什么狀態,輸入輸出口也是作為特殊功能的寄存器存在,具體各有不同,就不是隨便說說可以搞清楚的,要看有關書籍了。

會員登錄

×

請輸入賬號

請輸入密碼

=

請輸驗證碼

收藏該商鋪

X
該信息已收藏!
標簽:
保存成功

(空格分隔,最多3個,單個標簽最多10個字符)

常用:

提示

X
您的留言已提交成功!我們將在第一時間回復您~

以上信息由企業自行提供,信息內容的真實性、準確性和合法性由相關企業負責,化工儀器網對此不承擔任何保證責任。

溫馨提示:為規避購買風險,建議您在購買產品前務必確認供應商資質及產品質量。

撥打電話
在線留言
主站蜘蛛池模板: 泸州市| 田林县| 南川市| 彭州市| 聊城市| 滁州市| 苍梧县| 裕民县| 偃师市| 双鸭山市| SHOW| 凤台县| 威远县| 胶南市| 尉氏县| 个旧市| 天峨县| 五华县| 政和县| 金溪县| 寿阳县| 甘南县| 东山县| 白玉县| 定兴县| 珲春市| 永嘉县| 三原县| 长葛市| 二连浩特市| 吴旗县| 循化| 苍山县| 登封市| 泰宁县| 榆树市| 桐柏县| 麻城市| 伊金霍洛旗| 北海市| 沂水县|