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系列微控制器),注意留出堆疊空間。
關於微控制器TMOD問題,問個微控制器問題 TMOD 0x21 設定定時器1為工作方式2 求教這句話什麼意思
生活如歌 1 t1方式0 tmod 0x00.t1方式1 tmod 0x10因為t1t0都在tmod裡設定,高四位t1低四位t0 2 p3.4是t0計數器輸入引腳,此時只要設定tmod中的d2位即可 c t位 即tmod 0x04,啟動計數後就可以計數了,此時一般計數初值為0 3 查詢方式時要不停地...
關於微控制器的考試問題,關於微控制器的考試題目
30 序列 31 cy 進借位位 32 序列資料傳送 33 迴圈34 pop direct 35 reti 36 立即數定址 37 暫存器間接定址 38 t0 th0 tl0 39 here jnb tf0 tf1 here 40 6 41 沒有16位的定時器,不過有乙個可以當做16位的定時器用 4...
關於微控制器儲存器的問題,idata,data,badata,xdata,pdata
關於51微控制器記憶體問題,一直是個疑惑大家的問題,因為51微控制器是個很另類的微控制器。下面我給樓主講解一下 51微控制器之所以另類,是因為,他定址記憶體的空間,不是靠匯流排,是用指令的方式。51微控制器有以下幾個記憶體模組組成 1 rom或者flash,叫程式儲存區,你寫的程式是存在這裡面的,上...