51微控制器的c程式,程式編譯通過,但是中斷沒反應,在板子上按 INT中斷按鍵一點反應都沒有,求高手解答

時間 2021-09-08 03:21:01

1樓:

第一個問題:你幹嘛都用用長整行呀?浪費呀,long型可是四個位元組呀,你大多都是char型的呀。

第二個問題:這個程式你**過嗎?貌似你開了定時器1的中斷,但是沒有他的中斷函式,這是一個致命的錯誤,當t0中斷的時候,程式就不知道飛到那個爪哇過去了,有反應才怪了呢!

第三個問題:你的定時器重灌了沒?沒重灌就是ffffh的定時器了,誤差大大的哦!

2樓:匿名使用者

int stop() interrupt 0有問題tmod=0x01; //定義定時器0工作於方式1th0=(65536-5536)/256; //定時器賦初值tl0=(65536-5536)/256;

應該在主函式開始 程式 才能響應 ,而且 中斷裡 還得重賦值你學過沒有啊

3樓:兒童百科探索

sever_int0() interrupt 0 using 2

說明:sever_int0:中斷函式

0:為外部中斷入口

2:使用暫存器組2

中斷源 keil中斷編號 向量地址

最高優先順序 6 0x0033

外部中斷0 0 0x0003

定時器0溢位 1 0x000b

外部中斷1 2 0x0013

定時器1溢位 3 0x001b

串列埠 4 0x0023

定時器2溢位 5 0x002b

dma 7 0x003b

硬體斷點 8 0x0043

jtag 9 0x004b

軟體斷點 10 0x0053

監視定時器 12 0x0063

內部暫存器組有3組:1~3

平時也可以不用,如果有相互巢狀的最好指定,否則可能會出問題

當開啟電斷後,一旦int0口出現低電平時,自動進入sever_int0()函式,處理函式內部程式

求一個51微控制器簡單的中斷c語言程式

4樓:樂隱生態農學院

這個是我自己做的 99s的計數器。用數碼管顯示的,這裡使用了中斷,其目的是為了通過中斷來精確計算真實的時間。如果還有需要,給我郵箱,我這裡還有不少資料,我學了2個多月,基本也算有點小成了吧。

呵//自行設計 99s,用數碼管顯示!

#include

#define uchar unsigned char#define uint unsigned intsbit wei=p1^2;

sbit duan=p1^1;

uchar num;

uchar i,j;

uchar code table=; //數碼管模組void delayms(unsigned int i) // 毫秒延時

void fuzhi(uchar x,uchar y)void main()

//程式在此等待中斷的到來

}void t0_time() interrupt 1if(i==10)

if(j==10)j=0 ; //j超過9 就置為0}

5樓:做而論道

//微控制器,一個定時器,能使發光二極體亮1s,滅1s,周而復始。

#include

#define uchar unsigned char#define uint unsigned intvoid init();

uchar a = 0;

//----------------------------main()

} //----------------------------void init()

//----------------------------void timer0() interrupt 1

6樓:匿名使用者

#include

#define uint unsigned int#define uchar unsigned charsbit beep=p3^5;

uchar i;

uchar code table1=;

uchar code table= ;

uchar num;

uint m;

void delay(uint z);

void main()} }

void delay(uint z)

void enter0()interrupt 0 //第一個中斷無源蜂鳴器響,無源蜂鳴器響要給響,需要不停給高低電平。

}void enter1()interrupt 2 第二個中斷是數碼管從0到f閃爍。}}

註釋: p0是控制led, p2控制數碼管。

7樓:出荃帖旋

首先你這問題不難,現在回答你這問題的難點在於你妹給出電路圖。

在此給出你程式的大體思路,

1、寫兩個子函式,一個是實現8個led順序點亮的函式1,俗稱的流水燈,另一個是數碼管顯示「sos」的函式2

2、在主程式中去呼叫函式1,完了跟著檢測按鍵是否按下,檢測到按鍵後,呼叫函式1,完了多迴圈幾次函式2的呼叫來實現你的「顯示一段時間後返回led順序點亮」

注意:按鍵檢測需要考慮去抖動的問題,寫的高大上一點,可以加入定時器,實現你的點亮一段時間。

望採納,有問題在追加,還不會寫可以發電路圖出來再說

stc89c51微控制器 兩個外部中斷接按鍵 想通過檢測兩個按鍵都按下來改變全

8樓:匿名使用者

你的ledmod明明是區域性變數,怎麼成了全域性變數?用中斷還加這麼多的延時,有違中斷的宗旨了,即使要加延時來處理,也應該暫時關閉中斷。

51微控制器簡單中斷c語言程式

9樓:微控制器技術宅

首先你這問題不難,現在回答你這問題的難點在於你妹給出電路圖。

在此給出你程式的大體思路,

1、寫兩個子函式,一個是實現8個led順序點亮的函式1,俗稱的流水燈,另一個是數碼管顯示「sos」的函式2

2、在主程式中去呼叫函式1,完了跟著檢測按鍵是否按下,檢測到按鍵後,呼叫函式1,完了多迴圈幾次函式2的呼叫來實現你的「顯示一段時間後返回led順序點亮」

注意:按鍵檢測需要考慮去抖動的問題,寫的高大上一點,可以加入定時器,實現你的點亮一段時間。

望採納,有問題在追加,還不會寫可以發電路圖出來再說

求89c51微控制器外部中斷程式,c語言編寫。

10樓:匿名使用者

方法類似,補寫程式如下:

#include

#define uint unsigned int#define uchar unsigned charsbit led=p0^0;

sbit led1=p0^1;

void delay1ms (uint z)void exter() interrupt 2void exter0() interrupt 0main()

11樓:匿名使用者

補充sbit led0=p0^1;

void exter0() interrupt 0void main(void)

只是中斷0只有一次可以通過外表辨別出來,最好**設斷點,不過好在出現簡單,應該可以理解吧

51微控制器C程式問題

很明顯不一樣 原因如下 s2con 0x02 0 這條語句成立的條件是s2con 0 二進位制表示的,代表任意值 即s2con只需要第二位為0就一定滿足 s2con 0x02 1 這條語句成立的條件是s2con 二進位制表示的,代表任意值 即s2con可以為任意值,都滿足 我猜你的問題應該是這麼樣子...

c51微控制器程式求助

sec cnt equ 30h sec 0x equ 31h org 0000h sjmp mian org 000bh sjmp int t0 mian mov sec cnt,20 mov sec 0x,00h mov tmod,01h mov th0,65536 50000 256mov tl...

微控制器大神請進,51微控制器彙編程式,程式可發至

生活如歌 1 p1口做輸出口,編寫程式,使p1口接的8個發光二極體l1 l8按16進位制加一方式點亮發光二極體。程式如下 org 0540h ha1s mov a,00h a初值為0 ha1s1 jb p3.3,ha1s1 如果p3.3為1則等待 有脈衝變0一次 mov r2,20h r2賦值為20...