51微控制器狀態字暫存器如何使用,89C51的程式狀態字暫存器PSW是乙個8位的專用暫存器,用於存程式執行的各種狀態資訊 對還是錯啊?

時間 2021-09-03 03:26:45

1樓:匿名使用者

51微控制器狀態暫存器psw 包含

進製cy 輔助進製ac 保留f0 暫存器組選擇rs1 rs0 溢位標誌ov 保留p1 奇偶校驗p

這些 在程式 執行時 會影響 其中某些 位,一般 在 進入 中斷程式時 需要保護 狀態暫存器psw 與 累加器a 的 原來狀態

在 退出 中斷程式 時 恢復 狀態暫存器psw 與 累加器a 的 原來狀態

這樣就不會 需要 中斷前 的程式繼續 執行(不然有可能產生錯誤)。

2樓:匿名使用者

在微控制器中狀態暫存器psw是乙個用了比較多的暫存器,除了d1位空著外,其它的7位都要使用,其中d7位cy,是進(借)位位,當做加法或減法時,進製標誌和借位標誌都是由它來表示.當位和位之間相互傳送時也不能少了它,必須要經它中轉.

d6位ac位是輔助進製標誌,當做加法或減法時由第四位向第五位進製或借位時,它會被置1.它也用於十進位制調整(da a).

d5位是使用者標誌位,當程式因某種原因"跑偏"後,使用者可以用它來標誌程式該從哪兒開始執行.不重複已經執行過的指令.

d4、d3位合在一塊兒,指明工作暫存器的組別,這主要用於比較複雜一些的程式,r0組暫存器不夠用的情況下用到r1、r2、r3組的暫存器時要用到這二位。

d2位ov是溢位標誌,當運算的結果超出-127~+128時它會置1,表示運算出錯。

d0位是奇偶標誌位,它隨時隨地都在檢測a累加器中「1」的奇偶。當奇數時置「1」反之,清零。這一功能主要用與傳送資料時,作奇偶校驗,可以防止傳輸出錯。

一般程式設計中用的最多的是cy位,對應的指令是jc,jnc

3樓:匿名使用者

狀態字用來表示某些狀態,典型的比如中斷狀態字,很多中斷事件會進入同乙個中斷入口,進中斷之後要讀一下狀態字才知道是什麼事件

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

4樓:吳勇一家人

對的!!

下面是介紹:

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。此標誌位常用於序列通訊中的奇偶校驗。

簡述mcs51微控制器中程式狀態暫存器psw各位的含義。

5樓:匿名使用者

51微控制器中psw是程式

狀態字 ,用來存放指令執行後的有關狀態。

(1)cy(psw.7)psw.7是cy即c,**於最近一次算術指令或邏輯指令執行時軟硬體的改寫。

(2)ac(psw.6) 輔助進製標誌位,用於bcd碼的十進位制調整運算。當低四位向高四位借進製

時ac被置1,否則清0。此位也可和da指令結合起來用。

(3)f0(psw.5)使用者使用的狀態標誌位。這個你可以任意使用。

(4)rs1、rs0(psw.4、psw.3):4組工作暫存器區選擇控制位1和位0。

(5)ov(psw.2)溢位標誌位 在執行算術指令時,指示運算是否產生溢位。

(6)psw.1位: 保留位,未用。

(7)p(psw.0)奇偶標誌位

p=1,a中「1」的個數為奇數

p=0,a中「1」的個數為偶數

6樓:

psw即程式狀態暫存器,program status word。

psw各位的定義如下:

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

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

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

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

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

f1(psw·1):保留位,無定義;

p(psw·0):奇偶校驗標誌位,由硬體置位或清0;存在acc中的運算結果有奇數個1時p=1,否則p=0。

微控制器 程式狀態字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

51微控制器的各種暫存器的功能分別是什麼

9樓:匿名使用者

51微控制器的寄存

器分為工作暫存器和特殊功能暫存器兩大類。工作暫存器在內部ram的00h~

專1fh位址區,共分4組,都用屬r0~r7表示,因為編寫主程式時需要呼叫子程式或響應中斷服務程式,如果都使用一組工作暫存器,必然會造成暫存器的資料衝突,而出現錯誤。因此,需用特殊功能暫存器程式狀態字(psw)的rs0、rs1兩位來設定使用的工作暫存器組,應微控制器開機上電復位時,psw為00h,故自動選擇第0組工作暫存器,而子程式和中斷服務程式可使用第1組、第2組或第3組工作暫存器,這樣即使程式設計時使用了相同的工作暫存器,也不會造成暫存器的資料衝突了。

特殊功能暫存器在內部ram的80h~0ffh位址區,主要有累加器a,暫存器b,程式狀態字psw,p0~p3 i/o口暫存器,定時/計數器及序列通訊控制、中斷控制等特殊功能暫存器,這些暫存器的應用課本上都有詳細的介紹,需要慢慢的學習體會。最好賣塊51微控制器的**實驗板,邊練邊學,才能提高學習興趣加深理解。

10樓:

你買塊板子實際用到就知道那些暫存器有什麼用了!

51微控制器程式狀態字psw^5的具體用法,能舉個c語言的列子說明一下嗎

11樓:藏在水中的人

psw^5,f0是psw暫存器的使用者可程式設計通用標誌位,他是乙個使用者可以自己設定的狀態位,比如在兩片微控制器之間進行通訊時,我們可以用這一位的狀態來判斷是否準備好接收,或是傳送。因此可以作為你設定的標誌位,你的程式可以根據需要對這個位進行置位或者清零、或者對這個位進行測試。

例如:if(a>=5)

f0=1;

if(f0)

//省掉程式

與你自定義乙個bit flag;意義差不多。只不過f0是個通用標誌位,不需要定義

12樓:匿名使用者

psw的d5位是f0,常 作為乙個標誌位。

c語言裡就簡單多了,隨便定義乙個位,比如bit flag; 程式中可判斷glag是0還是1,來決定程式的走向。

mcs-51微控制器有多個特殊功能暫存器,下面哪個是表示程式執行後狀態的(

13樓:張少凡

在51系列單bai片機程式狀態字

dupsw暫存器中有zhi4個測試標誌位:p奇偶、ov溢位、cy進製dao、ac輔助進製。

1,內p奇偶標誌僅容對累加器a操作的指令有影響,凡是對累加器a操作的指令,包括傳送指令,都將a中的1個個數的奇偶性反映到psw的p標誌位上。

即累加器中有奇數個1,p=1;

有偶數個1,p=0。

2,傳送指令、加1、減1指令、邏輯運算指令不影響ov、cy、ac標誌位。

3,加、減運算指令影響p、ov、cy、ac,4個測試標誌位,乘除指令使cy=0,當乘積>255,或除數為0時,ov=1.

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

14樓:愛芯工作室

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

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

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

希望能幫到你

15樓:獨小林

4個 通用工作暫存器組

由rs0 rs1的取值確定

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

16樓:匿名使用者

工作暫存器有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。

17樓:都市黑豹

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

與中斷有關特殊功能暫存器有哪些,51微控制器有哪幾個特殊功能暫存器

eie1 擴充套件中斷允許1 eie2 擴充套件中斷允許2 eip1 擴充套件中斷優先順序1 eip2 擴充套件中斷優先順序2 ie 中斷允許暫存器 ip 中斷優先順序控制暫存器 外部中斷和暫存器沒有什麼關係吧,問題太泛泛了 isr 中斷服務程式 中斷服務例程 與at89s51微控制器中斷系統的控制...

程式狀態字暫存器中的特徵位通常包括

負家子弟 psw program flag 程式狀態字暫存器,是乙個16位暫存器,由條件碼標誌 flag 和控制標誌構成,如下所示 15 14 13 12 11 of 10 df 9 if 8 tf 7 sf 6 zf 54 af 32 pf 10 cf 條件碼 of overflow flag 溢...

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

一般情況下,都是用的是第一個暫存器組,即r0 r7對應00h 07h,當使用中斷的時候,為了避免使用工作暫存器造成的相互影響,常常使用其他工作暫存器組。比如 void t0isr interrupt 1 using 2 就是使用10h 17h這一組工作暫存器。 mist 紫櫻陪林皎看星星 很多數值運...