微控制器組合語言設計

時間 2023-01-29 23:05:10

1樓:匿名使用者

這樣寫也可以,就是你的disp程式裡面的loop程式迴圈體是個死迴圈,沒有出口,這樣程式一直執行。最後導致多次中斷呼叫,記憶體ram耗盡,然後宕機。

做中斷程式有個原則,就是中斷處理函式儘可能的短。你這個程式太長,把主程式應該承擔的工作,放到中斷服務程式中去做,況且loop**的迴圈是用ajmp跳轉過去的,沒有跳出的條件。這程式會一直在中斷中執行。

希望能對你有幫助。

2樓:anyway中國

1、中斷服務程式的原則是執行時間儘可能短,否則,你的其它程式將可能得不到及時的響應,中斷服務程式中不應該呼叫延時程式;

2、不斷迴圈的程式,原則上只能有一個,就是主迴圈,主迴圈在中斷服務程式外。

以上是基本要求。當然,對於某些特殊應用,考慮周到的情況下,你說的應用未嘗不可!比如說,某條件滿足後,執行某段程式,從此以後,除非重新啟動,無需響應其它事件!

3樓:

那要看你這段程式要做什麼用處了。

補充:把定時器設定為1ms基本定時,這個時間可以根據你的需要調整的。然後設定一個數碼管顯示標誌,每次進入定時器中斷先設定定時器計數常數,然後查詢顯示標誌狀態,根據顯示標誌狀態顯示相應的位,一次顯示一位。

在主程式裡設定一個死迴圈。不停的迴圈,等待定時器中斷。這就是全部用定時器處理方式;當然你也可以只在定時器中斷中改變顯示標誌,然後去主程式中查詢顯示標誌,進行動態顯示數碼管。

微控制器組合語言的幾個疑問

靈若伊雪 1 r1 20h 不是一條指令,而只是一種說明,表明r1暫存器中的內容是20h。這個20h是地址還是資料,與這個說明無關。2 在指令 mov r1,40h 中,r1 是間接定址方式,表明r1中的內容是地址,指令的功能表明是將立即數40h傳送到r1指定的地址中。3 在指令中容易混淆的是立即數...

組合語言程式設計微控制器 跪求高手

程式如下 mov r0,20h mov dptr,4000h mov r2,16 loop mov a,r0 movx dptr,a inc r0 inc dptr djnz r2,loop sjmp end mov r7,16 需要移動數的個數 mov r0,20h 20h開始地址 mov dpt...

51微控制器組合語言學習軟體,51微控制器用組合語言需要什麼軟體?

我想告訴你,keil可以編輯彙編的檔案.你建好一個project後,在source group 1上點右鍵,選add files to group source group 1 這時,就可以選中你的asm檔案 要選asm檔案得先把對話方塊中的檔案類弄選為 雙擊就可以新增到source group 1...