小計算機、大計算機中少不了數(shù)據(jù)存儲系統(tǒng),單片機一樣有,而且往往和CPU集成在一起,更加顯得小巧靈活。 直到90年代初,國內(nèi)容易得到的單片機就是8031:不帶存儲器的芯片,要想工作,還必須外加RAM和ROM,單片機成了3片機......
現(xiàn)在不同了,大的小的,又是51,又是AVR又是STC,還有430,PIC等,都各說各的好,可是誰也不敢說“我不要存儲器”。
1
單片機的數(shù)據(jù)存儲手段
程序存儲器里存放著單片機的靈魂:工作程序。小的可能只有1KB,最多只能裝1024條8位數(shù)據(jù),因為實際指令還有許多2字節(jié),3字節(jié)指令,所以它還裝不下1024條指令;大的有128KB。這些8位數(shù)據(jù),要么在工廠里做模子光刻進去,要么一次性的燒寫進去。
不管是業(yè)余愛好還是實際開發(fā),最多也就是用編程器這么一個特殊工具,把調(diào)試成功的機器碼裝載進去,或者像AVR單片機那樣自己花幾塊錢做一條下載線,把電腦里這些東西灌進去(這或許是AVR的吸引人之處)。 它一旦進駐電腦的程序存儲器中,除了借助上述裝置便不能自由改寫,在單片機運行時,只是從其中讀出指令或固定的數(shù)據(jù),所以給程序存儲器一個“只讀存儲器”的別名,簡寫為ROM,包括用編程器寫紫外線擦除內(nèi)容的EPROM、用電擦除的EEPROM和現(xiàn)在新興的FLASH ROM。
一次性寫入的ROM,僅用于電路和程序固定的批量產(chǎn)品中,實際工作起來,都是一樣的。
為了定位ROM中的數(shù)據(jù),每個8位存儲單元都有一個固定的“地址”,通常用16進制數(shù)表示。例如,對于一個所謂4K的ROM,地址從0000H到0FFFH(即0000,0001...4095),單片機運行時從哪個地址取數(shù)據(jù),完全由程序本身決定,并不要我們干預。
記住,給單片機一通電,它經(jīng)過一個短暫的復位過程,立即轉(zhuǎn)向ROM的最低地址0000H,在這里面放置的往往是一條“跳轉(zhuǎn)”指令,它從這里一步跳到另一個地址:程序的真正起始地址,例如51機的0080H。
ROM是程序存儲器,除了指令外,還包括運行程序必需的某些固定數(shù)據(jù),例如:數(shù)據(jù)表。假如,我們要求在單片機的接口上輸出00H到FFH(255),按正弦半波變化的數(shù)值,每秒10000次。如果硬要它按照公式一個個計算,對于它來說未免力不從心。可是我們可以把預先計算好的數(shù)值存入ROM中,到時候直接取出不是好多了? 另一個重要的應用:不少單片機上都有數(shù)碼顯示,那些數(shù)字其實就是用單片機的口線控制數(shù)碼管的字段電極電位。這些字形也是存放在ROM中的字模表,各個字模和0-9的數(shù)字(機器內(nèi)當然是0000-0101二進制數(shù))對應起來。常見的共陽極7段數(shù)碼管,必須在陽極加正電,7個陰極都是地電位,才能顯示數(shù)字"8",數(shù)字8對應的顯示字碼值是二進制數(shù)“10000000“(那個1對應的是小數(shù)點,高電位不讓它顯示)。
-
單片機
+關注
關注
6067文章
44976瀏覽量
650249 -
編程器
+關注
關注
9文章
399瀏覽量
42980
原文標題:ROM在單片機里有什么用?
文章出處:【微信號:Mouser-Community,微信公眾號:貿(mào)澤電子設計圈】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
什么是單片機的ADC接口
如何實現(xiàn)51單片機與PC機的串行通信
單片機怎么寫入程序
51單片機的主要邏輯功能部件是什么
單片機的中斷機制
單片機的存儲空間不夠用了,有哪些解決辦法?
便宜的單片機-英銳恩ENMCU系列OTP單片機
8位單片機為何不會被高端單片機取代?
單片機hex文件反編譯成C語言的過程
單片機燒錄程序用什么軟件
單片機燒錄程序可以重新燒嗎
單片機燒錄程序的線比單片機上的少還能燒錄嗎
單片機燒錄程序的基本步驟是什么
藍牙模塊如何實現(xiàn)單片機和手機端數(shù)據(jù)互傳

評論