微控制器迴圈,怎樣讓微控制器程式迴圈

2022-06-06 14:02:44 字數 3238 閱讀 6055

1樓:

程式應該是沒有問題的,估計是你在輸入字元的時候輸入成全形了,有的編譯器會出錯,把 mov r7,#0x0a 改為:mov r7,#10 就可以了,估計是編譯器不識別或者出錯吧!

org 0000h

ajmp main

main:

mov r5,#0h

loop:call disp

call delay

ajmp loop

;disp:mov dptr,#tablemov a,r5

movc a,@a+dptr

mov p0,a

dec r5

cjne r5,#-1,dell

mov r5 ,#9

dell: ret

delay: mov r7,#10

ll1: mov r6,#-1

djnz r6,$

djnz r7,ll1

rettable: db 3fh,06h,5bh,4fh,66hdb 6dh,7dh,07h,7fh,6fh;;;;;

2樓:匿名使用者

r5為零,再減為255,要一直減到9時數碼管上才應該顯示,讓後繼續減到1,開始迴圈,這個延時時間太短了,看不清效果,幫你改了一下程式

org 0000h

ajmp main

org 0030h

main: mov r5,#09h

loop: call disp

call delay

ajmp loop

disp: mov dptr,#tablemov a,r5

movc a,@a+dptr

mov p0,a

dec r5

cjne r5,#1,dell

mov r5 ,#9

dell: ret

delay: mov r2,#100;延時1.002sd2: mov r6,#20

d1: mov r7,#248

djnz r7,$

djnz r6,d1

djnz r2,d2

rettable: db 3fh,06h,5bh,4fh,66hdb 6dh,7dh,07h,7fh,6fhend這應該是你要的效果

怎樣讓微控制器程式迴圈

3樓:匿名使用者

void main()

for(i=9;i>=0;i--)

gpio_dig=0xff;}}

主函式是迴圈的,有錯應該是程式別的地方出錯了

微控制器怎樣跳出while(1)無限迴圈

4樓:匿名使用者

首先說while(1)原則上就是讓你無限迴圈!可以加個break;跳出這次迴圈!

while(1) //第一個迴圈!

while(1) //第二個迴圈!

微控制器迴圈左移

5樓:匿名使用者

增加一個全域性變數,將迴圈常數給變數,再對變數做左迴圈,將變數賦值給p0,

uchar a,b, c;

在主迴圈中p0=_crol_(p0,1); //p0的值向左迴圈移動修改為c=_crol_(c,1); //p0的值向左迴圈移動p0=c;

6樓:湯康樂

回答增加一個全域性變數,將迴圈常數給變數,再對變數做左迴圈,將變數賦值給p0,

uchar a,b, c;

在主迴圈中p0=_crol_(p0,1); //p0的值向左迴圈移動修改為c=_crol_(c,1); //p0的值向左迴圈移動p0=c;

12分享1

踩如何使用微控制器 從入門到精通 4個月月薪過萬 直送名企!

根據文中提到的微控制器為您推薦

如何使用微控制器,先學習後付款,0首付學習。如何使用微控制器名師授課,1對1輔導,如何使用微控制器,20萬+學員的共同選擇。

bj.chuangkexueyuan.com.cn廣告微控制器,華清遠見,90天成微控制器行業精英

根據文中提到的微控制器為您推薦

微控制器,先學習後付款,0首付學習。微控制器,20萬+學員的共同選擇。

m.hqyjedu.com廣告

更多15條

7樓:匿名使用者

你的p0原來是00000000,迴圈還是00000000

51微控制器如何在一個工程中同時加入迴圈左移和迴圈右移,

8樓:匿名使用者

這個問題很簡單,因為迴圈左移和迴圈右移並不相互排斥,可以單獨存在,不僅僅在一個工程中,在用一個檔案或者同一個程式段中都是可以的。比如。

#include

#include

void delay(int a)

main()}

9樓:

while(1)

aa=0x7f;

for(i=0;i<8;i++)}

c語言微控制器while迴圈語句

10樓:匿名使用者

把這個while放進另一個迴圈裡就行了撒。例如:

int crl=0;

for(;crl<2;crl++)}

微控制器程式可不可以同時執行兩個迴圈?

11樓:匿名使用者

不可以的,你可以迴圈巢狀,但是不能同時執行兩個迴圈,微控制器在同一時間只能執行一條語句,我看你的意思好像是要兩個迴圈同時工作,這是不可能的,你只能讓程式像近似的兩個迴圈,但不能是嚴格的兩個迴圈

12樓:繃帶達人

兩個迴圈,是肯定不能同時執行的,想想程式指標只有一個,類似的,你可以改為在一個迴圈中來執行,或者加讓出處理器的條件,讓兩個迴圈交替執行

13樓:

如果bai是兩個死迴圈,du那是絕對不可能的!

你要寫的可

zhi是多工的dao程式??一個做前臺,一回個做後臺答??一個比較簡單的方法就是上os,這個比較簡單保險;如果不上os,要自己寫,你可以寫兩個死迴圈,再通過中斷或是其他一些什麼方法將這兩個迴圈連結起來,但是你必須要保證記憶體啊、變數啊、同步啊、io啊、中斷啊等等都不會出現問題,不會死鎖、不會跑飛.....

14樓:流星雨之張翰

只要不是while(1)就可以

微控制器用for迴圈編延時程式時uint i,j for

這是一個for的巢狀語句,你注意到沒有,因為兩個語句之間沒有分號,所以編譯器預設第二個for語句是第一個for語句的內部語句,怎麼理解呢?就是說你第一個for中的 i 減1一次,那第二個for中的語句將會執行110次,那麼這個110從 來呢?其實是根據你所用微控制器的晶振頻率來計算的,在這個程式當中...

微控制器彙編程式,微控制器(組合語言)程式

這個是外部擴充套件的ram,fef0h是存資料的地址,mov dptr 0fef0h是給資料指標賦值,movx dptr,a是間接定址,將a中資料送到外部ram的fef0h中,中斷服務程式後面應該有reti,挺容易的,看看書,這例題允許了中斷,給出了中斷處理程式,自己看書學得較為深刻。ofefoh指...

怎樣讀好微控制器程式

過了c語言二級 我給你的建議 c語言是簡單 微控制器程式設計也用不到多深度的程式設計,問題是你的c語言弄明白了嗎,就是一些簡單的程式。我說得明白是 知道程式的編寫思路,並不是你能否看懂這個程式,否則c語言算是什麼也不是 就是算是知道有英語一樣。對微控制器的內部結構比較瞭解 告訴你,其實核心才是最要的...