① 單片機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在單片機里的用途,主要是存放臨時數據,例如用單片機測溫,每秒測1次,顯示1分鍾的平均值(1分鍾更新一次);我們先通過感測器,放大電路,A/D轉換,把溫度這個模擬量轉變為成比例的二進數,然後每秒鍾1次把數字量通過輸入口順序存入到單片機的RAM中,然後對他們進行兩兩求和再平均的計算(題外話:要單片機進行「除法「運算比較麻煩,例外的是除以2,4,8。。。卻非常簡單!----運用「右移」指令1,2,3次便可)最後的數值顯示出來,然後把這60個存儲單元統統寫0清除舊數據,下次又如此這般地循環進行。。。
② 單片機應用程序一般存放在哪一個存儲器中
單片機的應用程序通常存儲在只讀存儲器(ROM)中。這種存儲器是非易失性的,意味著一旦數據被寫入,即使關閉電源,數據也會保留下來。與隨機存儲器(RAM)不同,ROM不支持數據的隨機寫入,它的數據在整機製造過程中被寫入,並且在整個使用過程中只能讀取,不能修改。由於ROM中存儲的數據在斷電後不會丟失,且結構簡單,使用方便,它非常適合用來存放單片機的固化程序和數據。
數據存儲器則由讀寫存儲器RAM組成,它可以被單片機直接讀寫。RAM的容量可以擴展到64k,用於存儲實時數據。在8051單片機中,內部有256個單元的RAM,其中00H到7FH地址范圍用於內部RAM,80H到FFH地址范圍則用於專用寄存器。在使用單片機時,應優先考慮使用內部存儲器,因此了解其結構和地址分配非常重要。
8051單片機的內部數據存儲器地址范圍從00H到FFH,共有256個位元組。這個空間分為兩部分:00H到7FH是內部數據RAM,用於存儲數據;80H到FFH是特殊功能寄存器的地址空間。在00H到1FH的區域內,還專門安排了四組工作寄存器,每組佔用8個RAM位元組,分別記為R0到R7。