新聞中心
單片機(jī)外部中斷0,發(fā)生中斷并執(zhí)行完中斷程序后,怎樣返回主函數(shù)?用c語言。。
執(zhí)行完成之后自動返回主函數(shù)。
創(chuàng)新互聯(lián)專注于五通橋企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城開發(fā)。五通橋網(wǎng)站建設(shè)公司,為五通橋等地區(qū)提供建站服務(wù)。全流程按需定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
中斷是指計(jì)算機(jī)在執(zhí)行程序的過程中,當(dāng)出現(xiàn)異常情況或特殊請求時,計(jì)算機(jī)停止現(xiàn)行程序的運(yùn)行,轉(zhuǎn)向?qū)@些異常情況或特殊請求的處理,處理結(jié)束后再返回現(xiàn)行程序的間斷處,繼續(xù)執(zhí)行原程序。?中斷是單片機(jī)實(shí)時地處理內(nèi)部或外部事件的一種內(nèi)部機(jī)制。當(dāng)某種內(nèi)部或外部事件發(fā)生時,單片機(jī)的中斷系統(tǒng)將迫使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)而去進(jìn)行中斷事件的處理,中斷處理完畢后,又返回被中斷的程序處,繼續(xù)執(zhí)行下去。
怎樣在C語言中使用中斷函數(shù)
首先你要寫中斷函數(shù)
然后在主程序中像調(diào)用子函數(shù)一樣調(diào)用就可以了
舉個例子吧
#define uchar unsigned char
#define uchar unsigned char
sbit D1=P1^0;
uchar aa;
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void main()
{
init();
while(1)
{
if(aa==20)
{
D1=~D1;
aa=0;
}
}
}
void T0time()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
關(guān)于c語言中中斷的問題
1.void(中斷函數(shù)返回類型(空型)) Time1 (中斷函數(shù)名)(void(參數(shù)類型) interrupt 3 (中斷號)
2: 中斷條件發(fā)生時執(zhí)行中斷,比如void Time1(void) interrupt 3 是定時器1定時時間到發(fā)生中斷,中斷函數(shù)放在那里無所謂
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:中斷的代碼是你想中斷執(zhí)行的工作,中斷的代碼是根據(jù)任務(wù),需要你自己寫的
C語言 單片機(jī)中斷結(jié)束如何返回指定語句
可以根據(jù)中斷返回的值一層一層地回到需要跳轉(zhuǎn)的地方。比如返回0的話表示函數(shù)正常執(zhí)行結(jié)束,返回2的話表示從函數(shù)里面跳出來需要跳到其他地方,然后依次類推,稍微修改下程序可以達(dá)到問題所需要的效果。
當(dāng)前文章:c語言中斷函數(shù)并返回,c語言中斷返回指令
鏈接分享:http://fisionsoft.com.cn/article/dsidcco.html