當前位置:歷史故事大全網 - 歷史天氣 - 分析at89s52單片機的存儲器結構

分析at89s52單片機的存儲器結構

1.程序存儲器

設計人員編寫的程序存放在微處理器的程序存儲器中。

at89s52具有64kb程序存儲器尋址空間,它是用於存放用戶程序、數據和表格等信息,程序存儲器的結構如圖1所示。

圖1 at89s52程序存儲器的結構

at89s52片內片外的程序存儲器在統壹邏輯空間中,地址從0000h~ffffh,***有64k字節範圍。引腳接高電平時,程序從片內程序存儲器0000h開始執行,即訪問片內存儲器。當pc值超出片內rom容量時,會自動轉向片外程序存儲器空間執行。引腳接低電平時,迫使系統全部執行片外程序存儲器0000h開始存放的程序。

2.數據存儲器

at89s52 有256 字節片內數據存儲器。地址為00h~ffh。這256個單元***分為兩部分。其壹是地址從00h~7fh單元(***128個字節)為用戶數據ram。從80h~ffh地址單元(也是128個字節)為特殊寄存器(sfr)單元。高128 字節與特殊功能寄存器重疊,也就是說高128字節與特殊功能寄存器有相同的地址,而物理上是分開的。

在00h~1fh***32個單元中被均勻地分為四塊,每塊包含八個8位寄存器,均以r0~r7來命名,稱這些寄存器為通用寄存器。這四塊中的寄存器都稱為r0~r7,利用psw的第3和第4位(rs0和rs1),即可選中這四組通用寄存器。

內部數據存儲器的20h—2fh單元為位尋址區,可作為壹般單元用字節尋址,也可對它們的位進行尋址,位尋址區地址如表1所示

表1 ram位尋址區地址表

3. 中斷服務程序的入口地址

在程序存儲區中,為中斷服務程序保存了壹段中斷服務程序的入口地址:其中壹組特殊單元是0003h—0032h,各個單元各有用途,它們被分為六段,每個段8個字節,專門留給中斷服務程序使用,被稱為中斷矢量區。at89s52***有8個中斷源,6個中斷矢量,它們的定義如下表2所,

表2 中斷服務程序的入口地址

4.特殊功能寄存器sfr(special? function register)

特殊功能寄存器是指有特殊用途的寄存器集合,也稱為專用寄存器,本質上是壹些具有特殊功能的片內ram單元,反映單片機的運行狀態,很多功能也通過特殊功能寄存器來定義和控制程序的執行。

at89s52單片機內部高128(80~ffh)地址分配給特殊功能寄存器。這個地址空間和芯片內數據存儲器的高128字節地址完全重疊,但兩者在物理硬件上是完全獨立的,用尋址方式來區分這個完全重疊的地址空間。使用直接尋址方式訪問這個地址空間時,訪問的是特殊功能寄存器;使用間接尋址方式訪問這個地址空間時,訪問的是數據存儲器。

at89s52有32個特殊功能寄存器,它們被離散地分布在內部ram的80h~ffh地址中,這些寄存的功能已作了專門的規定,用戶不能修改其結構。

5.幾個註意問題

(1)地址的重疊性

單片機中的所有存儲器都必須分配地址,可以尋址的地址範圍為64kb,數據存儲器與程序存儲器都占用相同的地址。

程序存儲器中片內片外0000h~0ffffh低4kb地址完全重疊,但是我們使用引腳進行區分:=0時,選擇片外,=1時,選擇片內,這樣就完全區分開來了。

數據存儲器中片內外0000h~00ffh的256個單元地址完全重疊,片內外數據的訪問采用不同指令來區分:mov指令訪問片內數據存儲器,movx指令訪問片外數據存儲器。

(2)程序存儲器(rom)與數據存儲器(ram)的區分

程序存儲器(rom)與數據存儲器(ram)的區分在使用上是嚴格區分的,程序存儲器只能放置程序指令及常數表格,對程序存儲器中數據的訪問只可以使用movc指令。而數據存儲器則存放數據,片內外的操作指令分別用mov,movx進行操作。

(3)位地址空間的區域劃分

片內ram中的20h~2fh的128位,以及sfr中的位地址,這些位尋址單元與位指令集構成了位處理器系統

  • 上一篇:湖南大學讀MBA需要什麽條件?
  • 下一篇:[如何使用牛津版高中英语教材]高中英语牛津译林版教材录音
  • copyright 2024歷史故事大全網