1.ROM:只讀存儲(chǔ)器,單片機(jī)的只讀存儲(chǔ)區(qū)大多用于存儲(chǔ)程序固又稱程序存儲(chǔ)器。
51單片機(jī)是EPROM,所謂的EPROM是可擦除的只讀存儲(chǔ)器??梢园言瓉淼某绦虿脸?,再寫一個(gè)新的進(jìn)去。
斷電后是可以保存的,數(shù)據(jù)存儲(chǔ)器(RAM)是不能保存的。
RAM只能在程序執(zhí)行的時(shí)候不斷地重新存儲(chǔ)定義的變量。如int x,int y
可以通過code這個(gè)指令來將定義的變量放在ROM,而不是RAM中,節(jié)省RAM資源
2.RAM:隨機(jī)存取存儲(chǔ)器,用于存儲(chǔ)定義的變量等,速度快
51單片機(jī)的RAM存儲(chǔ)容量遠(yuǎn)小于ROM,但是速度非常之快
內(nèi)部詳細(xì)圖示
內(nèi)部的結(jié)構(gòu)看似十分復(fù)雜,但是大致上可以分為兩個(gè)部分:運(yùn)算器(紅色框)和控制器(藍(lán)色框)。
運(yùn)算器:主要作用是進(jìn)行加減乘除和邏輯運(yùn)算
內(nèi)部的結(jié)構(gòu)可以上網(wǎng)查詢
控制器:控制單片機(jī)的各種操作
程序執(zhí)行過程
1.程序地址
程序開始的時(shí)候,要先知道第一條程序的地址,這個(gè)通過PC(程序計(jì)數(shù)器)知道。
比如剛開始的時(shí)候地址是0000H,這個(gè)是16進(jìn)制的。
當(dāng)這個(gè)地址送給地址寄存器后,即取出第一條指令后,PC自動(dòng)加1,準(zhǔn)備取出下一條指令。
2.程度讀取
地址寄存器知道指令的地址后,就從ROM(只讀存儲(chǔ)器)里面取出地址所指向的一條指令。
并把取出來的指令放到指令寄存器中,經(jīng)過指令編碼器編譯
3.數(shù)據(jù)處理
指令有可能要用到加減乘除和賦值語句的判斷。經(jīng)過指令編碼器,就知道要取出那些定義的數(shù)據(jù)或者哪些賦值語句。
通過總線來調(diào)取我們要用到的數(shù)據(jù)。并通過運(yùn)算器來運(yùn)算。
比如說我們定義了int x和int y,這兩個(gè)數(shù)據(jù)放在RAM中。
當(dāng)我們?nèi)〕隽艘粋€(gè)a = x + y 的指令后,需要x和y的值來計(jì)算。
那么通過上一張圖的取數(shù)據(jù)的過程后取出了x和y的數(shù)據(jù)
通過運(yùn)算器來運(yùn)算。
如圖,取出x和y進(jìn)入黑色框(運(yùn)算器)中來的到最終結(jié)果
最終的結(jié)果還會(huì)通過a這個(gè)變量存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器(RAM)中
4.操作器件
當(dāng)然,除了計(jì)算這種步驟外,還有一種情況就是來直接控制IO口的高低電平或者其他的器件了。
說明
本單片機(jī)運(yùn)作過程是筆者查閱了資料后所得,并非一定正確。如若不正,請(qǐng)指正。
評(píng)論
查看更多