官术网_书友最值得收藏!

1.5 ATmega 16 單片機的存儲器組織

ATmega 16單片機的存儲器分為獨立尋址的Flash程序存儲器、片內SRAM數據存儲器和EEPROM 3部分,均采用線性編址,其結構如圖1-3所示。

圖1-3 ATmega 16單片機的存儲器組織

1.程序存儲器Flash

ATmega 16單片機具有16KB(8KB)的在線可編程Flash用以存放指令代碼。因為所有的AVR指令都是16位或者32位的,故Flash組成8KB×16位的形式。Flash存儲器被分為兩個區(qū):引導(Boot)程序區(qū)和應用程序區(qū)。

ATmega 16的程序計數器PC為13位,因此可以尋址整個8KB的Flash空間。因為ATmega 16單片機的程序計數器PC是13位寬,故可尋址8KB的Flash空間。Flash存儲器至少可以擦寫10000次。

2.數據存儲器SRAM

ATmega 16具有1120B的片內SRAM,由通用寄存器組(R0~R31)、I/O寄存器和數據存儲器SRAM組成。

ATmega 16單片機的SRAM采用線性編制。最低地址段0x0000~0x0001F是寄存器組,依次設置為R0~R31共32個8位通用寄存器。其中最后6個寄存器R26~R31組成X、Y、Z 3個16位的寄存器,用于存放間接尋址的地址指針,如圖1-4所示。

圖1-4 ATmega 16單片機的X、Y、Z寄存器結構

從0x0020~0x005F設置為I/O寄存器,I/O寄存器支持專用的I/O指令訪問和SRAM地址訪問。當用IN和OUT指令訪問I/O寄存器時,地址單元為0x00~0x3F;而把I/O寄存器視做普通SRAM訪問時,地址單元則為0x0020~0x005F。

I/O空間中保留的位應改寫為“1”,而保留的地址單元一般不應該對其進行操作,否則會對程序的執(zhí)行產生難以預測的影響。表1-2是ATmega 16單片機的寄存器映射表。

表1-2 ATmega 16單片機的I/O空間

(續(xù)表)

直接給用戶使用的SRAM單元為0x006F~0x045F共1024字節(jié),這部分SRAM單元用于存放在程序執(zhí)行過程中定義的各種變量。

3.數據存儲器EEPROM

ATmega 16單片機具有512字節(jié)的EEPROM,可以通過對相關的寄存器進行操作來實現對EEPROM按字節(jié)進行讀寫。EEPROM的擦寫次數在100000次以上。

主站蜘蛛池模板: 邯郸市| 衢州市| 阿拉善右旗| 安龙县| 娄底市| 正镶白旗| 玛沁县| 航空| 抚州市| 榕江县| 隆子县| 大安市| 嘉定区| 西峡县| 镇远县| 凤冈县| 武乡县| 启东市| 朝阳市| 平舆县| 新沂市| 阿巴嘎旗| 锦州市| 于都县| 黄山市| 安远县| 嘉兴市| 高州市| 韶山市| 颍上县| 巢湖市| 龙海市| 通化市| 铁岭市| 横山县| 寿光市| 资讯 | 永安市| 句容市| 博湖县| 绵竹市|