菜鳥求助 一個關於微控制器跳轉指令的簡單問題

2023-05-10 16:50:18 字數 838 閱讀 5632

1樓:別叫我摸頭

1、問題的關鍵是你要知道djnz的作用是什麼,djnz是減1不為0跳轉指令,也就是說執行完djnz後暫存器裡面的數不為0的話是不會向下執行。

2、因為這裡是要加8次,當執行djnz r3後,若r3裡的數不為0的話說明還沒加8次,那麼就需要繼續累加,所以這裡要跳到累加的前面去。

補充點問題:就是你這裡書寫有錯,「ro」有寫錯,應該是「r0」,不要把數字的「0」寫成字母的「o」,不然在編譯的時候會出錯,而且比較難找。

希望這些對你有幫助。

2樓:楊光文還是帥

clr a應該 改為 clr c 將c清零 迴圈一次要將cy位清零才對 而a是一個 累加器 不可以清零。

mov r0, #20h ;

mov r3, #

clr cloop:mov a, @r0;

addc a,@r0;

mov @r0, a;

inc r0;

djnz r3, loop;

end 這才是構成迴圈啊 我覺得 容易懂 呵呵。

3樓:買春左丘妮娜

clra

應該。改為。clrc

將c清零。迴圈一次要將cy位清零才對。

而a是一個。

累加器。不可以清零。

movr0,#20h

movr3,#

clrcloop:mov

a,@r0;

addca,@r0;

mov@r0,a;

incr0;

djnzr3,loop;

end這才是構成迴圈啊。

我覺得。容易懂。呵呵。

關於微控制器中的jc指令,關於微控制器中的JC指令

閣下首先搞清楚cjne a,25,1的含義,它的含義有三點 1.當a等於25時,執行下一句 2.當a不等版於25時,跳轉到權ne1語句執行 3.要注意當a不等於25時,a必定大於25或者小於25,如果a小於25,則不僅要跳轉到ne1執行,還要給cy標誌位置一,如果a大於25,則僅僅要跳轉到ne1執行...

關於微控制器裡相對轉移指令中rel的問題

sjmp是短轉移指令,用相對地址,相對地址是有符號數,所以用的都是補碼,89是一回個負數,答因為第一位是1,所以他如果變成雙位元組就要填ff,如果是正數才填00。補碼你應該懂得把,負數的補碼就是反碼 1,實際這個語句是向前跳轉,是一個減法,加上一個數的補碼就是相當於執行了減法,89h不是原碼他更不代...

微控制器獨立按鍵,微控制器一個獨立按鍵

一邊接io一邊接高,程式判斷io高低就行 微控制器的獨立按鍵 這種方法是可以的。我們檢測io口的時候是判斷它現在是什麼電平。作為輸入io口,它平時都是高阻態,檢測的時候是高電平。所以當按鍵按下的時候,引腳被拉低。檢測的時候就是低電平。靠近io口的一端要接上拉電阻,一般4.7k就可以了。按鍵時io口是...