我一直使用C語言寫微控制器程式,不太清楚程式進入中斷後,一系列PUSH到底是把ACC,PSW等

時間 2021-08-14 23:02:28

1樓:

push指令是把所要儲存的資料存到內部資料儲存器裡,也就是內部ram,具體哪個地址要看sp堆疊指標的指向,如果預設sp為07h的話,那麼存的空間地址就從08h開始。這些值都是可以用直接定址呼叫的,想幹什麼都行。但記著在中斷程式返回前把它們按照順序pop回原來的暫存器裡。

2樓:

你用c語言程式設計的時候不看看標頭檔案嗎?

雙擊keil裡面的reg51.h或者52,裡面定義了很多名字和其地址。。

裡面有的名字,比如acc,p1,tmod,ie等等都是可以在程式裡直接使用的。‘

裡面沒有的你可以自己加,當然你要知道地址,名字自己可以隨便定義,不重複就好。

所以。。你先看看書,到底你的程式把中斷前那一瞬的東西存在哪個暫存器裡,

然後就可以在中斷程式裡修改,直接使用其標頭檔案裡面的定義好的名字。

3樓:小樓之外

在中斷程式執行時應該對acc,b,psw的值進行壓棧,儲存資料,中斷執行之後,應當出棧以恢復現場,資料的儲存地址在微控制器內部的資料儲存器中,堆疊指標sp設定起始位置

微控制器程式錯誤,51微控制器c語言程式錯誤

後面兩個錯誤是沒有宣告函式,最簡單的方法就是把main函式調到程式的最後,你看看還有沒有錯誤,我們 hhh.c 113 error c211 call not to a function這個呼叫函式名不存在 hhh.c 114 error c211 call not to a function這個呼...

51微控制器c語言程式注釋標註,51微控制器C語言程式注釋標註

四喜丸子 按鍵掃瞄顯示程式,這有什麼難的?自己每一句照著分析分析不就行了。微控制器c語言程式設計,中間幾段程式注釋不會寫,一些步驟看不懂,望講解 20 考試翻版 微控制器的東西要看晶元的資料手冊,裡面有很多講解,其實微控制器裡特定的位址代表了微控制器特定的功能,你賦特定的值就會啟動或關閉功能,微控制...

麻煩逐條詳細寫以下程式(微控制器C語言)的解釋

上面有很多中斷和定時器的東西,可參考有關書籍,沒多複雜。ie 0x40就相當於是ie 0x00,01000000,00000000,其中有1的那一位不起作用。它是ie中斷暫存器。10ms是波特率相關,硬體決定的,初期可以查表確定裝載的數值。前一部分程式是延時的,猜測後一部分是4 4鍵盤的吧。具體可以...