新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機兩級中斷嵌套的示例C程序

        單片機兩級中斷嵌套的示例C程序

        作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏

        單片機兩級中斷嵌套的示例C程序

        本文引用地址:http://www.104case.com/article/201611/320293.htm

        #ifndef __DEMO_4_13_C__
        #define __DEMO_4_13_C__
        #include

        #define _MHZ_ 12 // 設(shè)置單片機使用的晶振頻率

        void delay10ms(unsigned int count); // 聲明延時函數(shù)


        void LED_show(unsigned long second);

        unsigned char g_count; // 全局變量,timer_int函數(shù)使用
        unsigned char g_second; // 全局變量,timer_int函數(shù)使用

        void main()
        {
        g_count = 0; // 設(shè)置全局變量初值
        g_second = 0;


        TMOD = 0x10; // T1使用定時模式,工作模式1,無門控位
        TH1 = 0xD8; // 為T1填入初值,定時時間10ms
        TL1 = 0xF0;
        TR1 = 1; // 啟動T1
        IT0 = 1; // 設(shè)置INTR0中斷方式為邊沿觸發(fā)方式,負(fù)跳變時產(chǎn)生中斷
        PT1 = 1; // 設(shè)置定時器1中斷為高優(yōu)先級
        ET1 = 1; // 允許定時器1中斷
        EX1 = 1; // 允許外部中斷0中斷
        EA = 1; // CPU開放中斷

        while(1); // 循環(huán)等待
        }


        void timer1_int() interrupt 3 using 3 // T1溢出中斷,使用工作組3
        { // 不同級別的中斷函數(shù)使用不同的工作組
        TH1 = 0xD8; // 重新填入初值
        TL1 = 0xF0;

        g_count++;
        if(g_count == 100) // 計時滿1s
        {
        g_count = 0; // 清0
        g_second++; // 總秒數(shù)增1,溢出時會自動歸0
        LED_show(g_second); // LED送顯
        }
        }


        void intr0_int() interrupt 0 using 2 // INTR0中斷,使用工作組2
        {
        unsigned char tmp;

        EA = 0; // 關(guān)中斷
        P1 = 0xff; // 在讀取P1口數(shù)據(jù)前,應(yīng)先對其寄存器置1
        tmp = P1; // 讀P1口
        EA = 1; // 開中斷

        delay10ms(100);

        EA = 0; // 關(guān)中斷
        tmp = ~tmp; // 變量取反
        P1 = tmp; // 送P1口
        EA = 1; // 開中斷
        }


        void delay10ms(unsigned int count)
        {
        unsigned int i, k;
        unsigned char j;
        unsigned int tmp;
        tmp = (int)((100*_MHZ_)/12);

        for(i=0; i for(j=0; j<100; j++)
        for(k=0; k}

        #endif



        關(guān)鍵詞: 單片機中斷嵌套C程

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 土默特右旗| 蓝田县| 昌江| 宁波市| 富平县| 宜都市| 潼关县| 革吉县| 区。| 长泰县| 鄯善县| 宜都市| 平湖市| 巩义市| 肇源县| 郯城县| 义乌市| 石台县| 辛集市| 榆社县| 宜宾县| 屏南县| 曲麻莱县| 郓城县| 临汾市| 双流县| 正定县| 城口县| 新疆| 九寨沟县| 新昌县| 南雄市| 深州市| 留坝县| 中超| 朝阳市| 常山县| 江山市| 山东省| 上思县| 邛崃市|