51系列微控制器如何實現工作暫存器組RO R7的選擇?開機復位後,CPU使用的是哪組工作暫存器?他們的地址是多

2021-04-18 17:46:30 字數 758 閱讀 1288

1樓:匿名使用者

mcs-51微控制器設

bai置4組工作寄存du器,由程式狀態字psw中rs1,rs0決定zhi,

0組:dao

內00h-07h

1組:08h-0fh

2組:10h-17h

3組:18h-1fh

開機復位後,cpu使用第容0組。地址為 00 01 02 03 04 05 06 07。在彙編中一般用r0 ~ r7暫存器定址方式使用它們,這種暫存器定址方式要快於以上的直接定址方式,並且比較好記。

2樓:匿名使用者

51單片

抄機有4組ro~r7工作暫存器bai,程式執行中具體使用哪一組du由程式狀態字psw的zhirs1及rs0(psw.4及psw.3)決定,可以設定這兩位來選dao擇暫存器組。

開機復位後,由於psw=00h,所以使用的為第0組暫存器。只要在程式執行過程中不對psw的rs1及rs0位進行設定,暫存器組就不會切換。至於它的具體地址如下:

0組:00h-07h;1組:08h-0fh;2組:

10h-17h;3組:18h-1fh 。一般會在發生中斷時切換暫存器組,這樣雖然暫存器的編號不變,但是定址的暫存器組改變了,所以不會改變中斷之前的程式中的暫存器值,但是中斷程式結束時一定要記住把暫存器組切換回來。

一定要注意當切換暫存器組後,雖然還是用ro~r7,但是其實體地址已經改變,所以是不同的暫存器。另外,如果程式沒有切換暫存器的必要的話,其它組的ro~r7也可用作通用暫存器,這樣可用其實際地址定址。

微控制器實現LED閃光程式,51微控制器實現用按鍵控制led的閃與不閃

感覺要求有些重複 1 每分鐘閃60次,那麼還手動幹嘛?2 一個開關按一下,亮一個,再按一下另一個亮,再按是都滅嗎?還是第一支亮?不能明白你到底想怎麼樣。手動,自動?每分鐘60次 自動閃亮?為什麼又要按?提問題,也要說清楚哦!這種程式設計不難,先會讓一隻led閃。然後不讓led閃,會用按鍵控制兩隻le...

51微控制器c語言如何實現中斷呼叫

你這個不是中斷呼叫,只是一種模式選擇。也就是按鍵1按下之後按照一種方式掃描顯示燈回,按鍵2按下之後答按照另一種方式顯示燈 很簡單的。我習慣用switch case 結構,想想就解決了。在你程式裡設定個檢測條件,檢測到按鍵後就無條件跳轉就ok了 include sbit d1 p2 0 sbit p1...

請教51微控制器高手 20,51微控制器如何使用?

mov a,020h mov 2fh,a mov a,021h mov 2eh,a mov a,022h mov 02dh,a q0 mov r2,00h 初始化r2用來存放0的個數。mov r1,020h q1 mov a,r1 r1地址對應的資料傳輸到ajnz q2 a是否為0 inc r2 為...