單片機程序存儲器
A. 51單片機的存儲器有哪些
51單片機的存儲器主要包括以下幾個部分:
1. 程序存儲器(ROM或Flash):用於存儲固件程序,單片機上電後從這里開始執行。程序存儲區分為片內和片外,目前許多51單片機片內已具備64KB容量,因此很少需要外擴片外Flash或Rom。無論是片內還是片外,用Code修飾的常量在程序運行過程中不可更改。
2. 內部RAM:包括低128位(00-7F)和高128位(80-FF)。
- 低128位RAM(data):用於定義變數,如定義一個unsigned char類型的變數Var。
- 高128位RAM(idata):同樣用於定義變數,但訪問速度相對較慢。
- 特殊功能寄存器(SFR)(80-FF):用於定義Sfr類型的變數,操作這些變數相當於操作特殊的寄存器,但需注意不要隨意定義Sfr變數。
3. 外部RAM(64KB,0000-FFFF):可以擴展至65536個位元組。前256個位元組可以用Pdata修飾,也可以用Xdata修飾,而超過256個位元組的部分只能用Xdata修飾。
4. Pdata和Xdata:兩者均可修飾外部RAM的第一頁(256個位元組),但Pdata僅適用於第一頁,而Xdata適用於整個64KB外部RAM。Pdata使用R0和R1進行定址,速度快且代碼體積小;Xdata使用16位的DPTR進行定址。
綜上所述,51單片機的內存結構包括程序存儲器、內部低128位RAM(data)、內部高128位RAM(idata)、特殊功能寄存器(SFR)以及外部65536個位元組的RAM。需要注意的是,不同內核的單片機(如ARM)其存儲器結構可能有所不同。
B. 單片機的程序存儲器有哪些類型
單片機的程序存儲器是專門用來存放程序和常數的,有掩模ROM、OTPROM、EPROM、FlashROM等類型。
掩模這種形式的程序存儲器適用於成熟、大批量生產的產品,如彩色電視機等家電產品中的單片機。用戶把應用程序代碼交給半導體製造廠家,單片機在生產時,程序就被固化到晶元中,因此晶元一旦生產出來,程序就無法改變了。
採用EPROM的單片機具有可以靈活修改程序的優點,但存在需要紫外線擦除、較費時間的缺點。
在自己做試驗或樣機的研發階段,推薦使用Flash單片機,它有電寫入、電擦除的優點,使得修改程序很方便,可以提高開發速度。
對於初具規模的產品可選用0TP單片機,它不但能免去較長的產品掩膜時間,加快產品的上市時間,而且方便程序的修改,能夠對產品進行及時的調整和升級。
程序存儲器的容量可根據程序的大小確定。8位單片機片內程序存儲器的最大容量能達到64KB,不夠時還可以擴展。