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口是...