若MCS 51微控制器的程式狀態字PSW中的RS1,RS

2021-04-20 18:34:58 字數 5541 閱讀 6768

1樓:

rs1,bairs0=11,即工作暫存器du3組(rs1,rs0的作用就是決zhi定使用哪一組工作暫存器dao)

r1的地版址即為19h

0組:權00h-07h

1組:08h-0fh

2組:10h-17h

3組:18h-1fh

這是硬體結構決定的,沒有什麼「解題步驟」。

mcs-51微控制器的程式狀態字psw中的rs1,rso=11,那麼ro-r7的直接地址為多少

2樓:匿名使用者

psw中的rs1,rso=11表示工作暫存器選擇位置為3區,所以ro-r7的直接地址為18h--1fh.

若mcs-51微控制器的程式狀態字psw中的rs1,rs0=11,那麼工作暫存器r0-r7的直接地址為多少

3樓:螞蟻叼骨頭

它不是分為四組嗎:00,01,10,11. 你的11也就是第四組咯

4樓:

18h-1fh 每本51微控制器書都有

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

5樓:匿名使用者

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暫存器定址方式使用它們,這種暫存器定址方式要快於以上的直接定址方式,並且比較好記。

6樓:匿名使用者

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也可用作通用暫存器,這樣可用其實際地址定址。

微控制器 程式狀態字psw對應的工作暫存器

7樓:莫名

psw : 程式狀態暫存器 program status word

cy | ac |f0 | ps1 ps0 | ov | — | p

cf | af |自定 |工作暫存器組選擇 | of | | pf

r0 ~ r7

ps1 ps0: 00 工作暫存器組0 00h ~ 07h

01 工作暫存器組1 08h ~ 0fh10 工作暫存器組2 10h ~ 17h11 工作暫存器組3 18h ~ 1fh

8樓:匿名使用者

rs0=1、rs1=1 區4 r0 18h、r3 1bh

89c51的程式狀態字暫存器psw是一個8位的專用暫存器,用於存程式執行的各種狀態資訊? 對還是錯啊?

9樓:吳勇一家人

對的!!

下面是介紹:

psw各位定義:

psw.7 psw.6 psw.

5 psw.4 psw.3 psw.

2 psw.1 psw.0

cy ac f0 rs1 rs0 ov ---- p

程式狀態字暫存器psw是一個8位暫存器,用於存放程式執行中各種狀態資訊。其中,f0\rs1\rs0可以由使用者自己程式設計設定,其他位的狀態是根據程式執行結果,由硬體自動設定的。下面分別介紹。

cy:進位標誌,是psw中最常用的標誌位

功能有二:

一、存放算術運算的進位標誌,在進行加減運算時,若操作結果的最高位有進位或借位,則自動置1,否則為0。

二、在位操作中,作位累加器c使用。

ac:輔助進位標誌

在加減運算時,低4位向高4位進位或借位時,自動置1,否則為0。在bcd碼調整中也要用到ac位的狀態。

f0:使用者標誌位

使用者可以程式設計對這個標誌位置位或復位,使用最為靈活,常用作資料收發標誌或準備好的標誌。

rs1&rs0:暫存器組選擇位

選擇cpu當前使用的工作暫存器組,微控制器中共有四組工作暫存器,每次上電或復位後rs被置0,使用者可以程式設計選擇當前工作暫存器,達到保護某一區r0~r7中資料的目的。

ov:溢位標誌位

在帶符號的加減運算中,若運算超出了累加器a所能表示的符號數的有效範圍(-128~127),則自動置1,表示產生了溢位,說明運算結果是錯誤的。否則為0。

乘法運算中,ov=1表示乘積超過255,即乘積分別在a和b中;否則為0,表示乘積只在a中。

除法運算中,ov=1表示除數為0。

p:奇偶標誌位

表明累加器a中資料的奇偶性。若a中有奇數個「1」,則自動置1,否則為0。此標誌位常用於序列通訊中的奇偶校驗。

89c52微控制器中psw程式狀態字中rs0,rs1工作儲存器區選擇有何影響

10樓:還是呼喚

不知道你指的影響是什麼 當你設定rs0 和rs1以後的所有r0~r7就使用新的地址 但是原來地址下版的r0~r7的資料還是沒權有改變!!!把rs0和rs1設定回來又可以繼續呼叫裡面的資料!不知道對你有用不,希望能幫到你!!!

微控制器程式狀態字psw的ov位到底是怎麼判斷溢位的?有cy位不就夠了麼?

11樓:津人依夢趣談體育

微控制器程式狀態字psw的ov位是溢位標誌,當進行算數運算時,如果產生溢位,則硬體將ov置1,否則清0。執行有符號加、減法指令的時候,當d6位有向d7位的進位或借位時c6y=1時,而d7位沒有向cy位的進位或借位c7y=0時,ov=1或c6y=0,c7y=,1時,則ov=1。

溢位的邏輯表示式:ov=c6y⊕c7y。cy位是累加器的進位或借位標誌,對於無符號數可以用cy來判斷溢位,但是對有符號數就無法判斷了,所以只有cy位是不夠的。

psw各位的定義如下:

cy(psw.7):d7位,進位、借位標誌。進位、借位cy=1;否則cy=0.

ac(psw.6):d6位,輔助進位、借位標誌。當d3向d4有借位或進位時,ac=1;否則ac=0.

f0(psw.5):d5位,使用者標誌位;

rs1、rs0(psw.4及psw.3):d4、d3位,暫存器組選擇控制位;

ov(psw.2):溢位標誌。有溢位ov=1,否則ov=0;

f1(psw·1):d1位,使用者標誌位;

p(psw·0):奇偶校驗標誌位;累加器acc中的運算結果有奇數個1時p=1,否則p=0。

擴充套件資料

資料型別:

sfr也是一種擴充資料型別,佔用一個記憶體單元,值域為0~255。利用它可以訪問51微控制器內部的所有特殊功能暫存器。如用sfr p1 = 0x90這一句定p1為p1埠在片內的暫存器,在後面的語句中我們可以用p1 = 255(對p1埠的所有引腳置高電平)之類的語句來操作特殊功能暫存器。

12樓:匿名使用者

cy位是累加器的進位、借位標誌。下文的敘述按16位機來舉例說明,如果是8位機或其它字長,則可換一個例子,但道理相似。

對於無符號數的運算,cy位就可以表示其是否溢位。但如果是有符號數,則不能按cy標誌來判斷了。為此,設了另一個標誌ov,其含義就是「假如是有符號數運算,是否出現了溢位」。

例如對於16位運算器,65534 + 3,(即二進位制的1111111111111110 + 0000000000000011),

本該得65537,(即二進位制的10000000000000001),但因為暫存器只有16位,最高位的那個1丟掉了(進入了cy標誌)。結果暫存器中只剩下了1,(即二進位制的0000000000000001)。

此時,我們可以說,16位的無符號數加法,65534+3溢位了,溢位後的答案成了1。

但是對於有符號整數,情況就不同了。有符號整數採用補碼錶示法。16位有符號整數不可能表示65534,此時如果機內二進位制是1111111111111110,程式中認為它是-2,故:

機內的二進位制的1111111111111110 + 0000000000000011,代表的是(-2) + 3。

請注意,此時的(-2)+3和上文的無符號數65534+3,在cpu的運算器硬體上完全相同,都是得到和為1,而cy標誌也為1。

但是,有符號數(-2)+3=1並無溢位。故此時的cy標誌不能代表它溢位了。

另外再舉一例:

無符號數32763 + 8 = 32771,沒有進位,cy標誌為0。此時並不溢位。

但是,如果是有符號數32763 + 8,這就是溢位了,因為32773的二進位制為1000000000000011,作為有符號數會被看成負數-32765。16位有符號數不可能表示32773的。

不管是有符號數還是無符號數,cpu的二進位制運算器機器加、減操作是一樣的,但其「溢位」的條件不同。

現在大多數的計算機中,如果是無符號數,都可以用cy標誌來判斷其是否溢位;而如果是有符號數,則需要用ov標誌來判斷其是否溢位。

至於ov標誌在邏輯上又是根據什麼產生的呢?則不同的計算機上有不同的實現方法,但效果都是一樣。

這裡介紹一種道理比較容易懂的方法:「雙符號位法」。具體是:

作加、減法前,先將兩個運算數都按照有符號數的規則擴充成17位。即:符號位是0的前面添一位0,符號位是1的前面添一位1。

然後按17位的機器加、減,得出17位的結果。

如果17位結果的高兩位(即雙符號位)不同,就置ov標誌為1,否則,ov標誌為零。

然後取其低16位作為最後結果。

13樓:匿名使用者

cy(carry): 用於表示加法進算中的進位和減法運算中的借位,加法運算

中有進位或減法運算中有借位則cy位置1,否則為0

ov: 表示運算過程中是否發生了溢位,若運算結果超過了8位二進位制數所能表示資料的範圍即有符號數-128~+127,則標誌位置1。

14樓:做而論道

微控制器程式狀態字psw的ov位到底是怎麼判斷溢位的?

----

溢位,是cpu判斷的。

發生了溢位,cpu就令ov=1。

mcs51微控制器外形尺寸大小,MCS51微控制器與89C51微控制器的區別

不見實物你設計什麼固定板,51微控制器開發板種類太多,應該是你先選好硬體功能和廠家後再設計,詳細尺寸可以向供貨廠家或商家索取 mcs51微控制器與89c51微控制器的區別 一 工藝不同bai 1 mcs51微控制器 集中du央處理器 隨機存取存zhi儲dao器 只讀儲存器 各種輸入輸出埠 版中斷系統...

MCS 51微控制器的EA ALE和PSEN端的功能是什麼

ea 用於選擇內部rom還是外部rom或flash ale 輸出鎖存時鐘訊號 psen 用於傳統51晶片程式設計 mcs 51微控制器系統工作時,何時產生ale和psen控制訊號 ale,故名思意,地址 鎖存 允許 具體動作時機為 訪問外部 rom ram時,p0口先發出一個位元組到74hc373晶...

MCS 51微控制器要用傳送指令訪問程式儲存器,它的指令操作碼助記符是以下哪個

movc,用於程式儲存器向累加器a傳送指令。語句 movc a,a dptr a mov b movx c movc d mul 訪問程式儲存器的話,答案就是c 一般的用法是,主要是在程式儲存器那放一些數字表,可以查表用 a 可以是 地址的offset mov dptr,address movc a...