新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > PIC 定時器中斷1+外部中斷0

        PIC 定時器中斷1+外部中斷0

        作者: 時間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
        PIC 的八位單片機只有一個中斷入口(16位和32位的單片機就有多個)也就只能在程序里只能有一個中斷子函數(shù)。如果開了兩個或更多的中斷那就把兩個中斷的處理都放在這一個中斷子函數(shù)中
        效果:讓數(shù)碼管連續(xù)循環(huán)顯示0~9,當(dāng)有外部中斷產(chǎn)生時,顯示暫停5~7秒
        這里外部中斷0屬于高優(yōu)先級,定時器中斷1是外設(shè)中斷系統(tǒng),屬于低優(yōu)先級。在這里,外部中斷的優(yōu)先級必須比定時器中斷的優(yōu)先級高,不然在定時時無法對其產(chǎn)生相應(yīng)的外部中斷來控制它停止。
        #include
        __CONFIG(1,XT) ; //晶振為外部4M
        __CONFIG(2,WDTDIS) ; //看門狗關(guān)閉
        __CONFIG(4,LVPDIS) ; //禁止低電壓編程
        #define uchar unsigned char
        #define uint unsigned int
        char shuma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
        int count=0;
        char sec=0;
        void interrupt k(void)
        {
        int i,j;
        if(TMR1IF==1)
        {
        TMR1IF=0;
        TMR1H=0xff;
        TMR1L=0x06;
        count++;
        if(count==4000)
        {
        count=0;
        sec++;
        if(sec>9)
        sec=0;
        }
        }
        if(INT0IF==1)
        {
        INT0IF=0;
        TMR1IE=0;
        for(i=0;i<=110;i++)
        for(j=0;j<=3000;j++);
        TMR1IE=1;
        }
        }
        void display()
        {
        PORTD=shuma[sec];
        }
        void main(void)
        {
        ADCON1=0X06;
        TRISD=0B00000000;
        IPEN=1; //關(guān)閉中斷優(yōu)先級
        PEIE=1; //允許所有未被關(guān)閉的外設(shè)中斷
        T1CON=0x01; //使能定時器中斷1
        TMR1IE=1; //使能當(dāng)前定時器中斷1
        TMR1IF=0; //軟件清中斷標(biāo)志位
        TMR1H=0xff;
        TMR1L=0x06;
        INTEDG0=0;
        INT0IE=1;
        INT0IF=0;
        GIE=1; //開總中斷
        while(1)
        {
        display();
        }
        }



        關(guān)鍵詞: PIC定時器中斷外部中

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 澎湖县| 朝阳县| 康保县| 黄山市| 鸡西市| 南部县| 锦州市| 宜宾市| 墨竹工卡县| 桂林市| 水富县| 贵德县| 柳林县| 辽阳县| 赤峰市| 二连浩特市| 旺苍县| 佛冈县| 濮阳市| 余姚市| 嫩江县| 恭城| 利川市| 吉安县| 东城区| 江口县| 北海市| 本溪市| 商洛市| 南昌市| 尉犁县| 浦江县| 噶尔县| 武宁县| 略阳县| 峨山| 伊春市| 郑州市| 惠东县| 深圳市| 石河子市|