⑴ 51單片機的Ri和Rn代表什麼
51單片機的Ri代表可間接定址的R0跟R1,i的值只有0和1;Rn代表R0-R7這7個工作寄存器,那個n的值可以是0-7,用於立即數的存取。
1、ACC---是累加器,通常用A表示。 這是個什麼東西,可不能從名字上理解,它是一個寄存器,而不是一個做加法的東西,為什麼給它這么一個名字呢?或許是因為在運算器做運算時其中一個數一定是在ACC中的緣故吧。
它的名字特殊,身份也特殊,稍後在中篇中我們將學到指令,可以發現,所有的運算類指令都離不開它。自身帶有全零標志Z,若A=0則Z=1;若A≠0則z=0。該標志常用作程序分枝轉移的判斷條件。
2、B--一個寄存器。 在做乘、除法時放乘數或除數,不做乘除法時,隨你怎麼用。
3、PSW-----程序狀態字。這是一個很重要的東西,裡面放了CPU工作時的很多狀態,藉此,我們可以了解CPU的當前狀態,並作出相應的處理。它的各位功能請看下錶:
⑵ 單片機語言中r1 r2 r0是什麼意思
R0~R7就和普通寄存器一樣用就行,只不過代碼的速度要比普通寄存器快一些。具體的延時時鍾可以參考代碼的執行周期,那裡R0~R7的執行周期是單寫的。
⑶ 單片機中寄存器間接定址為啥不能用R3,或者說R0,R1,與其他工作寄存器有何區別
51單片機的工作寄存器一共有4組 R0~R7,在RAM中地址的00H--1FH單元,分別是
0組:00H--07H單元、1組:08H--0FH單元、2組:10H--17H單元、3組:18H--1FH單元,
這四組中只有一組是當前工作寄存器,程序中使用的就是當前工作寄存器中的8個單元。選擇當前工作寄存器是由程序狀態字PSW中的第三第四位決定的。51單片機規定工作寄存器的R0、R1做為間接定址寄存器,用於定址內部或外部數據存儲器的256個單元。
⑷ 51單片機Ri與Rn是什麼關系
2者為獨立的。
Ri代表可間接定址的R0跟R1。i的值只有0,1
例如:
MOV A,@R0 ;
MOV @R1,A
Rn代表R0-R7這7個工作寄存器,那個n的值可以是0-7,用於立即數的存取;
例如:
MOV R7,A
⑸ 單片機寄存器中Ri和Rn中的前兩個怎麼區分
Rn:當前選定的寄存器區中的8個工作寄存器R0~R7,即n=0~7
Ri:當前選定的寄存器區中的2個寄存器R0,R1,既i=0,1.主要用於間接定址
兩者不互相包含,前者用於存儲立即數,後者用於存儲間接地址.
⑹ 51單片機怎麼擴大R0和R1的定址范圍
你提這個問題之前,需要先搞清楚標准51單片機對片外數據存儲器有哪兩種訪問方法。
一種是16位片外定址,通過 MOVX @DPTR 系列指令實現,即藉助16位的DPTR指針來訪問64kB空間的片外數據存儲器。此時P2口輸出高8位地址信號,P0口分時輸出低8位地址信號、輸入/輸出8位數據信號。
一種是8位片外定址(頁定址),通過 MOVX @Ri 系列指令實現,即藉助8位的Ri指針來訪問當前256B頁面的片外數據存儲器。此時P2口的狀態決定了高8位地址信號(即所謂的頁面號),P0口分時輸出8位頁面內地址信號、輸入/輸出8位數據信號。
所以你應該明白,對於你所提的需求,如果限制了不能使用DPTR,那麼顯然應該用第二種方法,即手工操作P2口切換頁面,之後通過 MOVX @Ri 系列指令來搬運數據。
例如要將X:4800h的16位元組搬運到X:EEF0h開始的16位元組空間內,你可以將R0初始化為00h、R1初始化為F0h,每次先將P2置為48h,MOVX A,@R0,然後將P2置為EFh,MOVX @R1, A,然後R0、R1累加,以此循環16次。
⑺ C51單片機中@Ri和R0 R1 是不是同等
不一樣的。
直接寫R0、R1是寄存器定址,讀寫的就是R0或R1的內容。而寫成@R0、@R1則是間接定址,真正訪問的是RAM,只是被訪問單元的地址在R0或者R1中,此時R0、R1相當於C語言中的指針變數。
⑻ 單片機課程中@Ri含義是什麼
@Ri這個符號是@R0或@R1 ,也就是寄存器R0或R1的值作為地址。例如:
mov R0,#32H
mov A,@R0
就是將32H單元的內容送給A
⑼ 單片機中 對指令操作時 Ri Rn PC 各是什麼意思。
Ri是可以作為間接定址的工作寄存器,只能是R0,R1
Rn是工作寄存器,R2至R7不能間接定址,n=0,1,2,3,4,5,6,7
PC是程序指針,指向ROM的,每運行一條指令,PC+1,只能通過跳轉指令修改PC
⑽ 51單片機中R0,R1,R2.....都表示的是什麼
stmib
r0!
,{r1,r2}
是指將r1,r2的值保存到r0指向的存儲單元中(r0自動加1)
ldmia
r0!
,{r1,r2}
是指將r0指向的單元中的數據讀出到r1,r2中(r0自動加1)