存儲器單元的檢查_第1頁
存儲器單元的檢查_第2頁
存儲器單元的檢查_第3頁
存儲器單元的檢查_第4頁
存儲器單元的檢查_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1頁,講稿共49頁,2023年5月2日,星期三單片機的存儲器有哪些類型?單片機存儲器的地址空間如何分配?如何對不同的存儲器單元空間進行檢查?涉及問題第2頁,講稿共49頁,2023年5月2日,星期三單片機的存儲器采用哈佛體系結構。程序存儲器和數據存儲器互相獨立,有各自的尋址機構和尋址方式。

通用微機的存儲器結構采用普林斯頓體系結構。只有一個存儲器邏輯空間,可隨意安排ROM或RAM,訪問時用同一種指令。單片機的存儲器有哪些類型?參見教材《單片機的C51應用程序設計》第5、6頁

第3頁,講稿共49頁,2023年5月2日,星期三內部存儲資源外部擴展存儲資源

片內程序存儲器片外程序存儲器片內數據存儲器片外數據存儲器從物理地址看分兩大類、4個存儲地址空間:參見教材《單片機的C51應用程序設計》第6頁

第4頁,講稿共49頁,2023年5月2日,星期三程序存儲器用于存放程序及表格常數。在單片機應用時,只能讀,不能寫。數據存儲器用于存放程序運行所需要的給定參數和運行結果。在單片機應用時,既能讀,又能寫。第5頁,講稿共49頁,2023年5月2日,星期三KeilC51的Memory窗口能顯示各種存儲區(qū)的內容。如何對不同的存儲器單元進行檢查?參見教材《單片機的C51應用程序設計》第316頁

單片機存儲器的地址空間如何分配?不同的單片機,存儲器的地址空間有所不同。第6頁,講稿共49頁,2023年5月2日,星期三程序存儲器參見教材《單片機的C51應用程序設計》第5頁、第59頁

以8051為例存儲容量:64KB

地址范圍:0000H~FFFFH第7頁,講稿共49頁,2023年5月2日,星期三片內與片外程序存儲器的選擇

EA引腳接高電平---片內以8051為例參見教材《單片機的C51應用程序設計》第5頁

、第59、60頁

第8頁,講稿共49頁,2023年5月2日,星期三

EA引腳接低電平---片外以8051為例參見教材《單片機的C51應用程序設計》第5頁

、第60頁

第9頁,講稿共49頁,2023年5月2日,星期三

程序存儲器低端的幾個特殊單元

以8051為例參見教材《單片機的C51應用程序設計》第6頁

第10頁,講稿共49頁,2023年5月2日,星期三1、打開實驗例程→實驗1→C51→工程文件。2、編譯。3、調試,查看反匯編窗口、程序存儲器的情況。4、運行,查看反匯編窗口、P1口的情況。思考:1、反匯編窗口中出現了幾種語言?2、程序存儲器中存放的是什么?3、能修改程序程序存儲器的內容嗎?演示第11頁,講稿共49頁,2023年5月2日,星期三反匯編窗口(DissamblyWindow)點擊View→DissamblyWindow可以打開反匯編窗口。該窗口可以顯示反匯編后的代碼、源程序和相應反匯編代碼的混合代碼。可以在該窗口進行在線匯編、利用該窗口跟蹤已找行的代碼、在該窗口按匯編代碼的方式單步執(zhí)行。KeilC51中的參見教材《單片機的C51應用程序設計》第314頁

第12頁,講稿共49頁,2023年5月2日,星期三存儲器觀察窗口(MemoryWindow)在調試狀態(tài)下,選擇主菜單View下的MemoryWindow選項,可打開或關閉存儲器觀察窗口。存儲器觀察窗口分4頁,分別是Memory#1~Memory#4。每一頁都可以顯示程序存儲器、內部數據存儲器和外部數據存儲器的值。參見教材《單片機的C51應用程序設計》第316頁

KeilC51中的第13頁,講稿共49頁,2023年5月2日,星期三通過在Address后的編緝框內輸入“字母:數字”即可顯示相應內存值,其中字母可以是C、D、I、X、S。例如:C:30C:0X500C:1000H字符存儲空間C片內及片外ROMD直接尋址的片內RAMI間接尋址的片內RAMX片外RAMS系統(tǒng)占用空間第14頁,講稿共49頁,2023年5月2日,星期三在存儲器窗口的地址欄處輸入C:0000H后回車,則可以觀看所有單片機片內程序存儲器從地址0開始的單元內容,即查看程序的二進制代碼。下面用橫線畫出來的部分就是已經編輯的源程序轉化成的機器語言的十六進制數(對應的機器碼)。第15頁,講稿共49頁,2023年5月2日,星期三如果在存儲器窗口的地址欄處輸入D:30H后回車,則可以觀看單片機片內數據存儲器30H單元開始的內容。如果在存儲器窗口的地址欄處輸入I:10后回車,顯示10號單元開始的內部數據存儲器的內容。該部分是間接尋址方式。如果在存儲器窗口的地址欄處輸入X:0x1000后回車,顯示從1000H單元開始的外部數據存儲器的內容。第16頁,講稿共49頁,2023年5月2日,星期三第一部份又有多個選擇項,其中Decimal項是一個開關,如果選中該項,則窗口中的值將以十進制的形式顯示,否則按默認的十六進制方式顯示。Unsigned和Signed則分別代表無符號形式和有符號形式。Unsigned和Signed后分別有三個選項。Char:以單字節(jié)方式顯示。Int:將相鄰雙字節(jié)組成整型數方式顯示。Long:將相鄰四字節(jié)組成長整型方式顯示。第17頁,講稿共49頁,2023年5月2日,星期三究竟從哪一個單元開始的相鄰單元則與你的設置有關。以整型為例,如果你輸入的是I:0,那么00H和01H單元的內容將會組成一個整型數;如果你輸入的是I:1,01H和02H單元的內容全組成一個整型數,以此類推。第三部份的ModifyMemoryatX:xx用于更改鼠標處的內存單元值,選中該項即出現一個對話框,可以在這個對話框內輸入要修改的內容。

第18頁,講稿共49頁,2023年5月2日,星期三這些窗口的顯示值可以以各種形式顯示,如十進制、十六進制、字符型等,改變顯示方式的方法是點鼠標右鍵,在彈出的快捷菜單中選擇。

該菜單用分隔條分成三部份,其中第一部份與第二部份的三個選項為同一級別。選中第一部份的任一選項,內容將以整數形式顯示。選中第二部份的Ascii項則將以字符型式顯示。選中Float項將相鄰四字節(jié)組成的浮點數形式顯示。選中Double項則將相鄰8字節(jié)組成雙精度形式顯示。

第19頁,講稿共49頁,2023年5月2日,星期三1、打開實驗例程→實驗1→ASM→工程文件,編譯調試,查看程序存儲器的情況,說明程序代碼存放的地址。2、打開實驗例程→實驗2→ASM→工程文件。修改工程設置,選擇軟件仿真。編譯調試,查看程序存儲器的情況,說明程序代碼存放的地址。3、在第2步的基礎上,運行程序。如有問題,查找原因,修改程序,直至能夠運行。思考:第一條指令要放在程序存儲器的哪個地方?我來演示第20頁,講稿共49頁,2023年5月2日,星期三數據存儲器參見教材《單片機的C51應用程序設計》第5頁、第60頁以8051為例存儲容量:256B

地址范圍:00H~FFH存儲容量:64KB

地址范圍:0000H~FFFFH片內、片外數據存儲器獨立編址。第21頁,講稿共49頁,2023年5月2日,星期三

工作寄存器區(qū):共32個字節(jié),分成4個工作寄存器組,每組8個單元。寄存器0組:地址00H~07H;寄存器1組:地址08H~0FH;寄存器2組:地址10H~17H;寄存器3組:地址18H~1FH。以8051為例參見教材《單片機的C51應用程序設計》第5頁、第60頁第22頁,講稿共49頁,2023年5月2日,星期三當前工作寄存器組選擇

PSW寄存器中:

以8051為例參見教材《單片機的C51應用程序設計》第5頁、第60、61頁第23頁,講稿共49頁,2023年5月2日,星期三位尋址區(qū):共16個單元,128位以8051為例第24頁,講稿共49頁,2023年5月2日,星期三通用RAM區(qū)

30H~7FH,共80字節(jié)

數據緩沖

堆棧一般設置在這個區(qū)域先進后出,后進先出堆棧指針SP指示棧頂復位時SP=07H

系統(tǒng)初始化通常重新設置以8051為例參見教材《單片機的C51應用程序設計》第8頁、第61頁第25頁,講稿共49頁,2023年5月2日,星期三與運算器相關3個

ACCBPSW與定時/計數器相關6個

TH0,TL0TH1,TL1TMODTCON指針類3個

SPDPH,DPL與口相關7個

P0,P1,P2,P3SBUFSCONPCON與中斷相關2個

IEIP

特殊功能寄存器

SFR

(SpecialFunctionRegister)

51系列單片機共21個SFR

單片機中各功能部件所對應的寄存器參見教材《單片機的C51應用程序設計》第7頁、第64、65頁第26頁,講稿共49頁,2023年5月2日,星期三序號標識符名稱字節(jié)地址位地址1ACC累加器E0HE0H~E7H2BB寄存器F0HF0H~F7H3PSW程序狀態(tài)字D0HD0H~D7H4SP堆棧指針81H5DPH數據指針(高8位)83H6DPL數據指針(低8位)82H7P0P0口80H80H~87H8P1P1口90H90H~97H9P2P2口A0HA0H~A7H10P3P3口B0HB0H~B7H11IP中斷優(yōu)先級控制寄存器B8HB8H~BFH12IE中斷允許控制寄存器A8HA8H~AFH13TMOD定時器/計數器方式控制寄存器89H第27頁,講稿共49頁,2023年5月2日,星期三14TCON定時器/計數器控制寄存器88H88H~8FH15T2CON定時器/計數器2控制寄存器C8HC8H~CFH16TH0定時器/計數器0(高字節(jié))8CH17TL0定時器/計數器0(低字節(jié))8AH18TH1定時器/計數器1(高字節(jié))8DH19TL1定時器/計數器1(低字節(jié))8BH20TH2定時器/計數器2(高字節(jié))CDH21TL2定時器/計數器2(低字節(jié))CCH22RLDH定時器/計數器2重自動裝載(高字節(jié))CBH23RLDL定時器/計數器2重自動裝載(低字節(jié))CAH24SCON串行口控制寄存器98H98H~9FH25SBUF串行數據緩沖器99H26PCON電源控制及波特率選擇寄存器97H第28頁,講稿共49頁,2023年5月2日,星期三

與運算器相關的寄存器(3個)1、累加器ACC,8位。提供操作數,存結果。2、寄存器B,8位。主要用于乘、除法運算。3、程序狀態(tài)字寄存器PSW,8位。

P:奇偶標志位。ACC中結果有奇數個1時P=1,否則P=0。

OV:溢出標志位。有溢出時OV=1,否則OV=0;

RS1、RS0:當前工作寄存器組選擇位;

F0:用戶標志位,由用戶自己定義;

AC:輔助進位、借位標志;

CY:進位、借位標志。有進位、借位時CY=1,否則CY=0;D7D6D5D4D3D2D1D0CyACF0RS1RS0OV/P第29頁,講稿共49頁,2023年5月2日,星期三寄存器觀察窗口(ProjectWindow)在調試狀態(tài)下,選擇主菜單View下的ProjectWindow選項,可打開或關閉工程項目窗口。工程項目窗口中的寄存器頁(Regs)給出了當前的工作寄存器組(r0~r7)和系統(tǒng)寄存器的值。系統(tǒng)寄存器組有一些是實際存在的寄存器如a、b、sp、dptr、pc、psw等特殊寄存器,有一些是實際中并不存在或雖然存在卻不能對其操作的如PC、Status等。KeilC51中的第30頁,講稿共49頁,2023年5月2日,星期三寄存器及其存儲器映射如下圖:第31頁,講稿共49頁,2023年5月2日,星期三每當程序中執(zhí)行到對某寄存器的操作時,該寄存器會以反色(藍底白字)顯示。用鼠標單擊然后按下F2鍵,即可修改該值。在執(zhí)行程序的過程中可以看到,這些值會隨著程序的執(zhí)行發(fā)生相應的變化。

第32頁,講稿共49頁,2023年5月2日,星期三思考:1、R2共變化了幾次?R2的這幾個數值分別對應哪幾個存儲單元?2、通過什么可以切換當前工作寄存器組?切換當前工作寄存器組有什么用處?我來演示

ORG0000HMOVR2,#30HMOVPSW,#08HMOVR2,#45HMOVPSW,#10HMOVR2,#91HMOVPSW,#18HMOVR2,#0C2HEND打開一個含匯編語言文件的工程項目,修改程序,編譯通過。調試,單步運行,查看R2、PSW、片內數據存儲器的變化。第33頁,講稿共49頁,2023年5月2日,星期三思考:1、單片機的位尋址區(qū)主要有兩大塊,它們分別為哪兩大部分?2、位地址與字節(jié)地址是如何區(qū)分的?我來演示

ORG0000HCPL00HCPL7FHCPL80HCPLP0.1CPLCMOV20H,#34HMOV20H,CEND打開一個含匯編語言文件的工程項目,修改程序,編譯,調試,單步運行,查看并講述片內數據存儲器、P0口的變化。第34頁,講稿共49頁,2023年5月2日,星期三思考:1、SP怎么變化?2、數據的傳送有什么規(guī)律?我來演示

ORG0000H MOVSP,#60H PUSHACC PUSHB PUSH30H PUSH31H POP40H POP41HPOP42HPOP43H END打開一個含匯編語言文件的工程項目,修改程序,編譯,調試,單步運行,修改變量值,查看SP、ACC、B、片內數據存儲器的變化。第35頁,講稿共49頁,2023年5月2日,星期三第5次作業(yè)教材《單片機的C51應用程序設計》P398、8051內部RAM低128字節(jié)可分成幾個區(qū)域?其中通用寄存器區(qū)的字節(jié)地址范圍為多少?如何實現寄存器組的切換?可位尋址區(qū)的字節(jié)地址和位地址范圍分別為多少?第36頁,講稿共49頁,2023年5月2日,星期三實驗二

實驗科目:單片機應用及C51編程

實驗名稱:存儲器單元的檢查第37頁,講稿共49頁,2023年5月2日,星期三一、實驗目的學習利用KeilC51軟件對51單片機內RAM、片外RAM、片內外ROM及特殊功能寄存器等不同存儲器單元空間的檢查方法,加深對單片機存儲器地址空間分配的理解。第38頁,講稿共49頁,2023年5月2日,星期三二、實驗內容通過單步執(zhí)行簡單的匯編程序,利用KeilC51軟件提供的寄存器窗口、內存窗口、片內ROM及片外ROM窗口觀察各存儲器空間的內容,掌握不同空間的不同檢查方法。第39頁,講稿共49頁,2023年5月2日,星期三三、儀器設備計算機KeiluVision3軟件第40頁,講稿共49頁,2023年5月2日,星期三四、實驗步驟一、基本任務1、建立一個文件夾(以自己的學號姓名命名),建立一個新工程(以姓名拼音命名),在工程中新建一個匯編程序文件(以姓名拼音命名),并把文件添加到當前工程中。第41頁,講稿共49頁,2023年5月2日,星期三2、輸入下列程序。3、編譯,修改錯誤,直至通過。

ORG0000HMOVA,#34HADDA,#34HMOVR7,AADDA,#34HMOV34H,AMOVB,AMOVDPTR,#1000HMOVX@DPTR,AMOVDPTR,#0000HMOVA,#01HMOVCA,@A+DPTRMOVP1,AEND

第42頁,講稿共49頁,2023年5月2日,星期三4、調試,查看程序存儲器的內容。5、單步運行,查看工作寄存器、特殊寄存器、片內數據存儲器、片外數據存儲器的內容。6、更改工作寄存器、SFR、片內RAM、片外RAM的內容。7、單擊“RST”按鈕讓CPU復位。8、全速運行。第43頁,講稿共49頁,2023年5月2日,星期三二、提高任務1、移除除工程中的原文件,添加新文件。2、輸入下列程序。3、編譯,調試,查看程序存儲器的內容。4、單步運行,查看SP、R2、片內RAM的變化。

ORG0000H MOVSP,#64H MOVR2,#30H PUSH02H MOVPSW,#08H MOVR2,#45H PUSH0AH MOVPSW,#10H MOV

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論