51微控制器中的工作暫存器組什麼時候用到?怎麼

時間 2021-08-30 09:55:54

1樓:匿名使用者

一般情況下,都是用的是第一個暫存器組,即r0~r7對應00h~07h,當使用中斷的時候,為了避免使用工作暫存器造成的相互影響,常常使用其他工作暫存器組。比如:

void t0isr() interrupt 1 using 2 就是使用10h~17h這一組工作暫存器。

2樓:mist_紫櫻陪林皎看星星

很多數值運算的時候都需要用到這個暫存器組,非常頻繁。

比如延時電路,配合djnz 這類的指令,後面基本上都是暫存器。

3樓:天邊之約

在不同的子程式裡使用,比較方便;

子程式中使用工作暫存器,通用性比較強;

尤其是對做比較複雜的資料運算處理。

clr 0d3h ;主程式,置暫存器0區

clr 0d4h

mov 41h,#01h ;一個43h=41h+42h的簡單例子

mov 42h,#03h

lcall ad01

mov a,43h..

...ad01:

push acc

push psw

setb 0d3h ;置暫存器1區clr 0d4h

mov r1,41h

mov r2,42h

mov a,r1

clr c

add a,r2

mov 43h,a

pop psw

pop accret

4樓:七彩鏡

工作暫存器組除了r0和r1可用於片內記憶體和頁面記憶體的間址訪問外,在51彙編中是通用的,並無特殊規定它們的用途。但工作暫存器組存取速度比記憶體快,在快速運算中應用會比較方便。通常的用法是,0組暫存器(psw中rs0/rs1 = 0),用於程式。

其它三組暫存器可用於中斷等特殊用途,那樣可以減少中斷的壓棧等現場保護的開銷。

而在c51中,工作暫存器組用於引數傳遞,指標和區域性變數儲存,是通用的。通常不宜將它們定義成全域性變數,因為c已將它們看成通用的,你不知道程式執行時什麼時候會改變它,不恰當的使用容易是程式崩潰。

51微控制器中的4個工作暫存器組,什麼時候用到?有多箇中斷的時候嗎

5樓:泉晶燕雋桂

一般情況下,都是用的是第一個暫存器組,即r0~r7對應00h~07h,當使用中斷的時候,為了避免使用工作暫存器造成的相互影響,常常使用其他工作暫存器組。比如:

void

t0isr()

interrupt

1using

2就是使用10h~17h這一組工作暫存器。

mcs-51微控制器有幾個工作暫存器?如何選擇?

6樓:愛芯工作室

8051有4組工作暫存器,每組有8個位元組(r0-r7),選擇是由psw的rs1 rs0位來定的

如果你是c的話,不用去理會,系統自動分配

如果是彙編,預設00組就可以了,不由去分配它,忘了切換回來會很容易出現問題

希望能幫到你

7樓:獨小林

4個 通用工作暫存器組

由rs0 rs1的取值確定

每個的工作暫存器組由r0~r7 組成

8樓:匿名使用者

工作暫存器有4組,每組都是8個工作暫存器r0~r7,通過psw中的rs1、rs0兩位來選擇使用哪一組,如果不選,預設是選擇第0組。

rs1rs0組合為00時,選中第0組工作暫存器,r0~r7地址為00h~07h;

rs1rs0組合為01時,選中第1組工作暫存器,r0~r7地址為08h~0fh;

rs1rs0組合為10時,選中第2組工作暫存器,r0~r7地址為10h~17h;

rs1rs0組合為11時,選中第3組工作暫存器,r0~r7地址為18h~1fh。

9樓:都市黑豹

要看具體的牌子吧,和你要使用的暫存器

mcs 51微控制器片內的ram的暫存器區有多少個單元

做而論道 mcs 51微控制器片內的ram的暫存器區,共有32個單元。分成四個區,每個區都有8個單元,稱為r0 r7。但是隻有一個區,是當前工作區,才可以用r0 r7來定址。 資料儲存器ram mcs 51 微控制器內部有256b的隨機儲存單元在物理上和邏輯上可以分為兩個地址空間,前者有128個位元...

51微控制器 組合語言裡的 暫存器 是預設定義的麼

做而論道 是的,用 keil 程式設計,它能自動識別組合語言中的暫存器名稱。不需要另外再說明。mov p1,aah 應為 mov p1,0aah 如果你願意,也可以對已有的暫存器 地址,重新命名。使用 equ 偽指令即可。 特殊功能暫存器是預設了的,像00 7fh的通用ram,如果你要命名,就可以按...

關於51微控制器定時器的問題,關於51微控制器使用兩個定時器進行控制的問題

工作方式1是16位的自動重灌定時計數器,能裝的最大數為65536 0 65535 那麼初值為65536 50000 15536 0x3cb0 就是你說的50ms溢位一次 12m的晶振,一個時鐘週期剛好1us,50000us 50ms 如果你需要1秒的定時,可以在定時器計數器中斷裡設一個計數變數x,進...