51微控制器c語言中斷函式不能進行引數傳遞,是什麼意思,誰能解釋一下

2021-03-27 22:38:07 字數 4678 閱讀 2648

1樓:匿名使用者

是指中斷處理函式不能有輸入引數也不能有函式返回。因為中斷都是些硬體自動呼叫,沒有程式去給他傳遞引數,也沒有硬體去接收引數。

不過x86計算機的軟中斷可以有引數傳遞,不過他是用暫存器傳遞的。

2樓:

1、51微控制器c51語言中斷函式本身不帶引數傳遞,但你可以使用全域性變數進行引數傳遞。

2、所謂中斷函式不能進行引數傳遞,是指呼叫函式時能否帶引數,c51是不能的,但完全可以使用全域性變數的方式實現帶引數的功能。

3樓:匿名使用者

就是說不能像呼叫普通函式那樣直接傳遞引數

可以用全域性變數傳遞引數

4樓:匿名使用者

有可能是記憶體不夠用了。

為什麼嵌入式系統的c語言的中斷函式不能有引數和返回值

5樓:

這個和c語言沒有關係,中斷處理沒有引數和返回值是由中斷的原理決定的。

6樓:谷歌三下也知道

c語言都一樣的,應該是你寫的程式有問題吧,建議可以把程式發上來看看

7樓:匿名使用者

應該可以有的吧,這要看你定義函式的時候是怎麼定義的,通常中斷函式定義的時候都是void void型別的,因此在呼叫中斷函式的時候就不需要引數和返回值。

c語言編寫中斷服務程式不允許使用「形式引數「傳遞中斷程式中使用的變數。其原因是

8樓:愚夫噬血

中斷規則就是無引數。如你問規則,那就得問制定的人了。

51系列微控制器c語言中的中斷的問題。

9樓:匿名使用者

1.void(中斷函式返回類bai型(空du型)) time1 (中

斷zhi函式名)dao(void(引數型別) interrupt 3 (中斷號)專

2: 中斷條件發生時執行中斷,屬比如void time1(void) interrupt 3 是定時器1定時時間到發生中斷,中斷函式放在那裡無所謂

3:void pxint0(void) interrupt 0 中斷名為pxint0的0號中斷

void pxint1(void) interrupt 2 中斷名為pxint1的2號中斷

void time0_int(void) interrupt 1 中斷名為time0_int的1號中斷

void time1_int(void) interrupt 3 中斷名為time1_int的3號中斷

4:中斷的**是你想中斷執行的工作,中斷的**是根據任務,需要你自己寫的

10樓:匿名使用者

中斷系統中有兩個"使用者不能使用的"優先順序狀態觸發器;

其中乙個,置1時,表示正在執行高優先順序的版中斷,遮蔽所權有中斷請求;

還有乙個,置1時,表示正在執行低優先順序的中斷,遮蔽同級中斷請求.

明白了吧?其實就是說這兩個觸發器,是使用者無法訪問到的,是內建且自動賦值的.一旦有高優先順序的中斷執行了,第乙個就自動置1;或者一旦有低優先順序的中斷執行,第二個就自動置1.

開發者不需要考慮它們的存在和影響.

有沒有中斷的例子,可以解釋一下中斷莫

11樓:小賈飛劍

中斷:指當出抄現需要時,cpu暫時停止襲當前程式bai的執行轉而執行處理新du情況的程式和執行過程zhi。即dao在程式執行過程中,系統出現了乙個必須由cpu立即處理的情況,此時,cpu暫時中止程式的執行轉而處理這個新的情況的過程就叫做中斷。

例子:比如說叫個外賣,一般人不會再那邊一直等著外賣,當收到外賣到了訊息(可以認為中斷請求來了,出現了乙個必須由cpu立即處理的情況),把手上的事情處理完了(cpu暫時中止程式的執行),比如說讓其他人幫你暫時玩一下當前的moba遊戲,再去取外賣(執行轉而處理這個新的情況)。外賣取完可以邊吃飯邊打遊戲(中斷完畢回到原來的程式,再開乙個輔助線程吃飯)

c語言為什麼微控制器中斷中不能用跳轉

12樓:匿名使用者

在中斷子函式中是不能用跳轉語句跳轉回主程式的,而是中斷子函式執行完了,自己返回到斷點的,只有自己返回到斷點處,才能恢復中斷狀態,幷包括恢復堆疊,否則就會出現中斷混亂,而用多次中斷後堆疊溢位了。

13樓:浪子漂浮

通俗點bai講吧, 中斷就是乙個

du 插隊者, 也就是zhi 你插隊也就dao行了, 你現在 還搞得 拉一幫小弟專

進來插隊,屬 你說 你這樣 說得過去麼, 那後面的隊伍不輕則**重者反抗, 這樣不就亂套了。

你要理解為什麼要有中斷, 中斷就是突發時間必須要立馬處理掉盡量不影響後面的程式,你要跳轉出去一來會耽誤時間二來 跳轉出去 也就會引發堆疊溢位了, 所以 要盡量不用跳轉出去,中斷處理的事情越簡單越快 就好

微控制器c語言中斷函式的定義形式是怎樣的?

14樓:大野瘦子

形式如下:

void 中斷copy

名(void) inerrupt 中斷號 using 工作暫存器組

比如外部中斷0

void ext0(void) interrupt 0 using 1 //後面的using 1可以省略,預設為0

定時器1

void t1isr() interrupt 3

微控制器內部結構

1、cpu

它的名字沒有改,還是稱為cpu(central processing unit)。它是微控制器的核心部件,包括運算器和控制器。

運算器既是算術邏輯單元alu(arithmetic logic unit),其功能是進行算術運算和邏輯運算。

控制器一般由指令暫存器、指令解碼器、時序電路和控制電路組成。其作用是完成取指令、將指令解碼形成各種微操作並執行指令,同時控制計算機的各個部件有條不紊地工作。

2、微控制器內部結構之一rom

「硬碟」,改了名字,稱為程式儲存器,也叫唯讀儲存器。用rom(read only memery)表示。其作用和計算機的硬碟差不多,用來存放使用者編寫的程式。

特點是:掉電後不會丟失資料(程式)。

15樓:

舉例復:

串列埠中斷制函bai數

void int_uart(void)  interrupt 4 //using x  (注:using x 是可選的

du)if(ti==1)

}注意,中

斷函式不能zhi

有引數和返dao回值

16樓:匿名使用者

對bai51而言,形式如下:du

void 中斷

名(void) inerrupt 中斷號 using 工作寄存zhi器組

比如外部中dao斷0

void ext0(void) interrupt 0 using 1 //後面的回using 1可以省略,預設為答0

定時器1

void t1isr() interrupt 3等等

17樓:匿名使用者

對於c51單片

bai機,其內部總共有五級中斷源du

分別為外zhi部中斷0、定

時器dao0、外部中斷1、定時器1及序列版中斷。

c51微控制器的權中斷使用時,主要是通過中斷服務號來決定的。

如你定義乙個中斷服務函式:

void key(void) intterrupt 0當外部中斷0申請中斷時

會自動根據interrupt後面的0,找到上面定義的這個中斷服務函式。

對於其他四個中斷源,其對應的中斷號分別為1、2 、3、4

18樓:清風迎明月

函式名() interrupt 0 (1,2,3,4) using 工作組

51微控制器 c語言 如何實現中斷呼叫 10

19樓:刁刁哥

你這個不是中斷呼叫,只是一種模式選擇。也就是按鍵1按下之後按照一種方式掃瞄顯示燈回,按鍵2按下之後答按照另一種方式顯示燈·············。很簡單的。

我習慣用switch case 結構,想想就解決了。

20樓:匿名使用者

在你程式裡設定個檢測條件,檢測到按鍵後就無條件跳轉就ok了

21樓:昍朤

#include

sbit d1=p2^0;

sbit p1=p2^1;

void main()

void main()

void main()

void zd0() interrupt 0void zd1() interrupt 1用的是外部中斷0和1,程式很簡單,注釋就不內寫了。如果有錯誤的話,還容請指正。

51微控制器c語言定義函式出錯,望各位大神指教!

22樓:煙火夜空

①、函式沒有自

申明就使用了bai。

②、函式呼叫,du不能省略括號。

zhi③、for迴圈的(表示式

dao1;表示式2;表示式3)表示式4; 中表示式2 為 表示式4是否執行的判讀依據,應該使用 邏輯判斷運算子(==),不該使用 賦值符(=)。

微控制器c語言中斷中的return返回

嗯,可以這麼理解,發生中斷時,主函式停止執行,調至中斷 執行了。因為中斷時可以巢狀的,也有可能返回到之前被中斷的中斷程式那執行了。總之就是返回之前中斷出的 繼續執行。 牛xx的小 如果這個條件滿足則直接返回,否則執行下面的語句! 如果滿足條件則返回值,否則執行下面語句。 return返回一個值。後面...

51微控制器中斷問題

cpu響應中斷後,由硬體自動清零 但是但是但是但是但是但是但是但是 你的程式沒使用中斷 你只是使用了定時器 唯武德馨一般幾 tf0和tf1可以不清0,硬體會自動清0 但是在一些增強型的51系統裡 如at89s52 tf2則必需由軟體清0 那是中斷請求 中斷沒開清什麼零 要是清了還怎麼查詢啊. 這位仁...

51微控制器c語言定義函式出錯望各位大神指教

1 函式沒有自 申明就使用了bai。2 函式呼叫,du不能省略括號。zhi3 for迴圈的 表示式 dao1 表示式2 表示式3 表示式4 中表示式2 為 表示式4是否執行的判讀依據,應該使用 邏輯判斷運算子 不該使用 賦值符 51微控制器 c語言裡 nop 函式怎麼用 具體一點 求高手指教 1 c...