關於微控制器的問題,如果程式中要要到三組工作暫存器Rn,如何切換 SP的初值是否要修改?若要,如何修改

2021-09-04 02:40:43 字數 1306 閱讀 7108

1樓:匿名使用者

以下是個示範,依次切換到工作區0到3

org 0000h

sjmp main

org 0030h

main:

mov sp,#5fh ;將sp設定到60h以後的ram區mov a,#0

lcall setrn

lcall delay

mov a,#1

lcall setrn

lcall delay

mov a,#2

lcall setrn

lcall delay

mov a,#3

lcall setrn

lcall delay

sjmp $

setrn:

jnz setrn1 ;a=0工作區0clr rs0

clr rs1

retsetrn1:

jnz setrn2 ;a=1工作區1setb rs0

clr rs1

retsetrn2:

jnz setrn3 ;a=2工作區2clr rs0

setb rs1

retsetrn3:

jnz setrn1 ;a=3工作區3setb rs0

setb rs1

retdelay:

mov r0,#10

delay1:

mov r1,#100

djnz r1,$

djnz r0,delay1ret

2樓:藏在水中的人

利用 psw :程式狀態字暫存器的 rs1位與rs0位 選擇暫存器區 或者直接定址

sp的初值要跳過 暫存器使用的地址

位4-3: rs1-rs0:暫存器區選擇。

rs1 rs0 暫存器區 地址

0 0 0 0x00-0x07

0 1 1 0x08-0x0f

1 0 2 0x10-0x17

1 1 3 0x18-0x1f

3樓:做而論道

如果程式中要要到三組工作暫存器rn,如何切換?sp的初值是否要修改?

是要修改。

若要,如何修改?

mov sp, #nn ;nn的範圍:18h~7fh (51系列微控制器),注意留出堆疊空間。

關於微控制器及就業問題,關於微控制器及就業問題

重要的不是哪個型號的微控制器,8位微控制器和32位微控制器是2大陣營,各有應用領域,16位作為雞肋不被看好,8位用於簡單控制,32位多用於帶作業系統的複雜控制,各有各的的優勢,不過隨著技術的升級,32位微控制器 跟8位一樣時8位就算淘汰了,所以32位是個趨勢。微控制器相關就業也看硬體還是軟體,但都是...

微控制器高阻態問題,關於微控制器i o口的高阻態問題

呵呵,這個問題真的有點意思啊,還真沒碰到過能輸出高阻的微控制器呢,呵呵。估計樓主是搞錯意思,gps的高頻訊號是會對系統造成干擾的 天線 或者 布板的走線 地線 等等 這邊設定成高阻的意思估計是 原來是 輸出的io口 在輸出完畢後為了保證這個io不產生多餘的 高頻干擾 將它再設定成 輸入 並選中內部上...

關於微控制器試題程式設計序 16位(兩位元組)加法

in r2r3,r4r5 out r2r3r4 add16 mov a,r3 add a r5 mov b,a mov a,r2 addc a,r4 mov r3,a clr a addc a,0 mov r2,a mov r4,bret 如何編寫微控制器中4位元組十六進位制數的加法程式 你是彙編還...