標題: stc15w408as單片機外部中斷0下降沿中斷程序 [打印本頁]

作者: dpj888888    時間: 2020-9-27 07:45
標題: stc15w408as單片機外部中斷0下降沿中斷程序
求助!求助!
我現(xiàn)在用STC15w408as處理433遙控接收器信號,遙控器不按,433遙控接收器輸出低電平,按下輸出高電平,用計數(shù)方法判斷不好用,通過計數(shù)4000個連續(xù)的1使sta標志置1,i++,i會加好多次,我只要一次,所以還是用外部中斷0下降沿觸發(fā)解決,還是一樣i++,i會加好多次:


sbit INT0 =  P3^2;
void Initial_INT0(void)
{
       
        IE0  = 0;             //將INT0中斷請求標志位清"0"
        EX0 = 1;             //使能INT0中斷允許位
        IT0 = 1;                   //選擇INT0為下降沿觸發(fā)方式
        EA = 1;                     //允許總中斷
        INT0=1;

}


void main(void)
{        Initial_INT0();
        while(1)
        {   }
}

void exint0() interrupt 0  //外部中斷入口
{
          delay(50);       //延時消抖
        if(INT0==0)     //如果檢測到INT0=0,則判斷為下降沿
        {
         yksta=1;
        }
}



作者: conrry    時間: 2020-9-27 12:28
樓主提到的i在程序中看不到,并且樓主說了好多,也沒有清晰的問題,都不知道不清楚到底要實現(xiàn)什么功能
作者: 青桑葉    時間: 2020-9-27 16:07
既然設置下降沿觸發(fā)了.中斷函數(shù)里就不必要使用if{}函數(shù)了.中斷執(zhí)行前邊,要關中.重復進入中斷干不了活
作者: wulin    時間: 2020-9-27 19:08
#include "reg51.h"

void main()
{
        INT0= 1;
        IT0 = 1; //設置INT0的中斷類型 (1:僅下降沿 0:上升沿和下降沿)
        EX0 = 1; //使能INT0中斷
        EA  = 1;
       
        while (1)
        {

        }
}
//中斷服務程序
void exint0() interrupt 0  //INT0中斷入口
{
    //任務
}
作者: dpj888888    時間: 2020-9-27 20:24
謝謝大家,摸索了好久,已實現(xiàn)功能




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1