找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 6569|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

關(guān)于中斷響應(yīng)的例子_C語(yǔ)言

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1 發(fā)表于 2010-4-11 00:52 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

/************************************************
跳線設(shè)置:默認(rèn)

顯示效果:按一下INT0鍵,喇叭就響再按一此不響依此類(lèi)推
這個(gè)程序我把很多中斷設(shè)置了進(jìn)去,給大家留了很多自己修改的空間
************************************************/
#include <reg52.h>
//---------------------------------------------------
//重定義I/0引腳名稱(chēng)
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit laba=P2^2;

sbit P13=P1^3;
//---------------------------------------------------
//全局變量及位標(biāo)志定義
bit FINT0;
bit FINT1;
bit FT0;
bit FT1;
bit FT2;

unsigned char T0_10ms;
unsigned char T0_50ms;
unsigned char T0_100ms;
//---------------------------------------------------
//固定函數(shù)聲明
void int_0();       //外部中斷0
void int_1();       //外部中斷1
void timer_0();     //定時(shí)器中斷1
void timer_1();     //定時(shí)器中斷2
void serial_1();    //串行中斷1
void serial_2();    //串行中斷2
//---------------------------------------------------
//用戶(hù)函數(shù)聲明
void initial();     //初始化


//---------------------------------------------------
void main(){
 initial();

 while(1){

        P13=0;          //為了使按'取消'、'確定'鍵能夠產(chǎn)生INT0及INT1中斷
        //led4=0;       //上一句等價(jià)于此句
 
        if(FINT0){      //中斷0來(lái)到要做什么事情
   FINT0=0;
   laba=~laba;
   led1=0;     //INT0中斷時(shí)點(diǎn)亮
   led2=0;    
   led3=0;
   led3=0;  //可以在此設(shè)一個(gè)斷點(diǎn)
  }
  if(FINT1){      //中斷1來(lái)到要做什么事情
   FINT1=0;   
   led1=1;     //INT1中斷時(shí)熄滅
   led2=1;
   led3=1;
  }
        if(FT0){
            FT0=0;
            if(++T0_10ms>30){
                T0_10ms=0;
                //定時(shí)多少做什么事,未初始化里定時(shí)器尚未設(shè)置
            }
        }
 }
}
//-------------------------------------------------------------------
void initial(){
 EA=1;               // CPU所有中斷開(kāi)(IE最高位MSB)

 EX0=1;              // INT0中斷開(kāi)
 IT0=1;              // INT0低電平觸發(fā)(為1則為下降沿觸發(fā))

 EX1=1;              // INT1中斷開(kāi)
 IT1=0;              // INT1低電平觸發(fā)(為1則為下降沿觸發(fā))

 return;
}
//-------------------------------------------------------------------
//INT0中斷  由P3.2引腳產(chǎn)生
void int_0() interrupt 0 using 0
{
    FINT0=1;

}
//-------------------------------------------------------------------
//INT1中斷  由P3.3引腳產(chǎn)生
void int_1() interrupt 2 using 1
{
 FINT1=1;
}
//-------------------------------------------------------------------
//定時(shí)器0中斷
void timer_0() interrupt 1 using 2
{
 FT0=1;

}
//-------------------------------------------------------------------
//定時(shí)器1中斷
void timer_1() interrupt 3 using 3
{
 FT1=1;
}
//-------------------------------------------------------------------
//串行中斷1
void serial_1() interrupt 4
{

}
//-------------------------------------------------------------------
//定時(shí)器2中斷
void timer_2() interrupt 5
{
 FT2=1;
}
//-------------------------------------------------------------------

 

下載地址:http://www.torrancerestoration.com/ziliao/51hei-5/外部中斷INT0.rar

 

[此貼子已經(jīng)被作者于2010-4-11 0:53:19編輯過(guò)]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:66287 發(fā)表于 2018-8-22 09:37 | 只看該作者
好貼!授人以魚(yú)更授人以漁!
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表