freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

c51單片機的存儲器結構-資料下載頁

2025-05-13 03:19本頁面
  

【正文】 執(zhí)行第四條指令 POP 41H,出棧過程同第四條指令,示意圖如圖 316( d)所示。當數據取出后,堆棧指針又回到初始狀態(tài),如圖 315所示。但原來進棧的數還存于堆棧中,直到下次進棧的數據將其覆蓋。 該程序,是將 40H和 41H的數據交換,進棧兩次,出棧兩次,所以堆棧指針 SP的值,仍為初始值 2FH,堆棧指針的初始值指向的單元,是不能用于存放堆棧數據的,第一個入棧的數據,是該單元的地址加 1單元。 系統(tǒng)復位時堆棧指示器的值為 07H,即指向的是工作寄存器區(qū) 0組的 R7單元,如圖 317所示,第一個入棧的數放于08H單元,但堆棧一般開辟在用戶區(qū)( 30H~7FH)中。堆棧的深度是由數據連續(xù)進棧的次數來決定的。若根據某個程序設計的需要,需要 16個單元堆棧來存儲數據,堆棧開辟在40H到 4FH單元,則堆棧指示器 SP的初始值應付 3FH,第一個入棧的數放入 40H中,在程序的設計中, 40H~41H中不能用于其它的數據的存放,否則數據被覆蓋。若實際進棧的數據超出了 16個單元,則堆棧溢出,溢出的單元在 50H以上,這些單元沒有數據,則沒有影響,否則影響原有數據。堆棧指針始終指向的是堆棧的棧頂位置。 SP ( 81 H ) 07 H07 H08 H09 H0 AH00 H7 FHR 7R 0R 1R 2R 0注:★ 51子系列中,共有 18個 SFR(特殊功能寄存器), 占用 21個單元,我們先學 5個 SFR(共 6個單元), 其余 SFR在后面的學習中,會逐步的給大家介紹。 ★ 這 18個 SFR, 21個單元中,字節(jié)地址能被 8整除的單 元是可以進行位尋址的,也就是說字節(jié)地址的后面 一位是 0或者 8,都是可以進行位尋址的( bit)。 ★ 可位尋址的單元,可以用位地址、位編號或位定 義,在尋址中都稱之為位尋址( bit)。 ★ 系統(tǒng)復位后,各寄存器的值如表 34所示。 程序存儲器 程序存儲器的作用是用來存放程序和數表(固定不變的常數)。 AT89S51單片機內部有 4K的程序存儲器FlashROM,外部最多可擴展 64K的程序存儲器,內外程序存儲器采用統(tǒng)一編址的方法,即共用 64K的地址,地址范圍0000H~FFFFH,不管是內部還是外部都是用指令 MOVC來訪問。如圖 318所示。 0000 HFFFFH0 FFFH1000 H內部程序儲存器 4 K( ROM )外部程序儲存器可擴展64 K( ROM ) ● 8051(80C51)系列有 64K ROM 的尋址區(qū),地址范圍0000H~FFFFH,用于存放程序。 ● 其中低 4K( 0000H~0FFFH) 的地址區(qū)可以為片內 ROM 和片外 ROM共用,但不能同時使用 (由外引腳 決定 )。 ● 高 60K(1000H~FFFFH) 的地址區(qū)為片外 ROM所專用。 注: ★ 低 4K共用地址,這樣出現(xiàn)一個地址兩個單元,地址不能 唯一,這在計算機中是不允許的; ★ 解決方法,通過單片機的外引腳 來實現(xiàn): a、當 =0時, CPU直接訪問外 ROM(0000H→FFFFH) , 內部不用; b、 當 =1時, CPU先訪問內部 ROM( 0000H→0FFFH ) 結束后,再去訪問外部 ROM ( 1000H→FFFFH ),外部低 4K不用,也 就是說外部低 4K無需擴展,這種情況下, 外部最多可擴展 60K。 2. CPU對程序存儲器中程序的訪問 CPU對存儲器的訪問也就是執(zhí)行程序,程序存儲器的主要作用是用來存放程序,那 CPU怎么去執(zhí)行程序呢?怎么知道哪一條指令先執(zhí)行?哪一條指令后執(zhí)行呢?其實計算機根本不認程序,只認程序存儲器的單元地址,先從低字節(jié)地址單元開始取指令執(zhí)行,然后取高字節(jié)地址單元指令執(zhí)行,而CPU這些操作,都是通過程序計數器 PC(程序指針)來實現(xiàn), PC是一個 16位的寄存器,不可尋址(無地址),用戶不可操作,系統(tǒng)復位后( PC)= 0000H,每取一個單元程序執(zhí)行后, PC會由硬件自動加 1,去取下一個單元來執(zhí)行,以此類推,直到遇到轉移指令為止,轉移時 CPU會將轉移位置的地址直接付給 PC,從這個新的地址開始,又重復上述過程。 由于 CPU只認存儲器的地址不認程序,哪怎樣保證程序的正確執(zhí)行呢?只能由用戶,根據 CPU訪問程序存儲器的特點,將目標程序(二進制語言程序)按上述特點來存放,也就是將先要執(zhí)行的指令,放在低字節(jié)單元,后執(zhí)行的指令放在高字節(jié)單元。又由于 PC復位后指向 0000H單元,故主程序的第一條指令必須放在 0000H開始的單元, 0000H也就是主程序的入口地址。 目標程序的存放是通過編譯軟件中的偽指令來實現(xiàn)的,編譯軟件的作用是檢查語法錯誤和生成目標程序(二進制語言程序),偽指令用于編譯的過程(匯編)中,其中偽指令ORG就是給出程序存放在程序存儲器中的起始地址。 3. CPU對程序存儲器中數表的訪問 數表即在數據處理過程中用到的一些固定不變的常數,如 值 ,要由指令來讀出。 80C51單片機中,僅有兩條指令,即 MOVC A , @A+PC和 MOVC A , @A+DPTR,這兩條指令比較麻煩,我們在后面給大家介紹。 注:★ 不管是程序還是數表,在程序存儲器中都是二進制 數,程序只能由 CPU直接訪問并執(zhí)行,數表只能由 上述的兩條指令來讀取,在編程時要注意避免將數表 當程序來執(zhí)行。 ★ 由于 ROM只能讀不能寫(軟件),那程序和數表的 存入,需要專用的設備,即編程器,編程器就是將編 譯軟件編譯成的目標程序和數表存放到指定的程序 存儲器的位置中。
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1