新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機中斷實驗4

        單片機中斷實驗4

        作者: 時間:2016-11-21 來源:網絡 收藏
        電路圖:

        程序代碼如下:
        //交通燈控制程序
        #include
        unsigned char t0, t1; //定義全局變量,用來保存延時時間循環次數
        //delay0_5s1
        //功能:用T1的工作方式1編制0.5s延時程序,假定系統采用12Mhz晶振,定時器1,工作方式1定時50ms,再循環10次即可定時到0.5s
        void delay0_5s1 () {
        for (t0=0; t0<0x0a; t0++) {
        TH1 = 0x3c;
        TL1 = 0xb0;
        TR1 = 1;
        while (!TF1);
        TF1=0;
        }
        }
        //delay_t1
        //功能:實現0.5s * 延時
        //形參:unsigned char t;
        // 延時時間為0.5s*t;
        void delay_t1 (unsigned char t) {
        for (t1=0; t1
        delay0_5s1();
        }
        //int_0
        //外部中斷0中斷函數,緊急情況處理,當cpu響應外部中斷0的中斷請求時,自動執行該函數,實現兩個方向的紅燈同時亮10s
        void int_0 () interrupt 0 {
        unsigned char i,j,k,l,m;
        i = P1; //保護現場,暫存P1, t0, t1, TH1, TL0;
        j = t0;
        k = t1;
        l = TH1;
        m = TL1;
        P2 = 0xdb; //兩個方向都是紅燈
        delay_t1 (20); //延時10s
        P2 = i;
        t0 = j;
        t1 = k;
        TH1 = 1;
        TL1 = m;
        }
        //int_1
        //功能:外部中斷1中斷函數, 特殊情況處理,當cpu,當cpu響應外部中斷1的中斷請求時, 自動執行該函數,實現a到放行5s
        void int_1 () interrupt 2 {
        unsigned char i,j,k,l,m;
        EA = 0;
        i = P1;
        j = t0;
        k = t1;
        l = TH1;
        m = TL1;
        EA = 1;
        P2 = 0xf3;
        delay_t1 (10);
        EA = 0;
        P2 = i;
        t0 = j;
        t1 = k;
        TH1 = l;
        TL1 = m;
        EA = 1;
        }
        void main () {
        unsigned char k;
        TMOD = 0x10; //T1在工作方式1
        EA = 1; //開總中斷
        EX0 = 1;
        IT0 = 1;
        EX1 = 1;
        IT1 = 1;
        while (1) {
        P2 = 0xf3;
        delay0_5s1();
        P2 = 0xfb;
        delay0_5s1();
        }
        P2 = 0xeb;
        delay_t1(4);
        P2 = 0xde;
        delay_t1(110);
        for (k=0; k<3; k++) {
        P2 = 0xde;
        delay0_5s1();
        P2 = 0xdf;
        delay0_5s1();
        }
        P2 = 0xdd;
        delay_t1(4);
        }



        關鍵詞: 單片機中斷實

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 尼玛县| 项城市| 武强县| 互助| 吉安县| 福贡县| 木兰县| 颍上县| 简阳市| 大方县| 岳阳市| 安陆市| 田东县| 永春县| 桑植县| 五常市| 杭锦后旗| 梓潼县| 顺义区| 永胜县| 济宁市| 盖州市| 万州区| 贺州市| 锡林郭勒盟| 阜平县| 新丰县| 富阳市| 榕江县| 句容市| 南投县| 德清县| 大足县| 凯里市| 扎囊县| 体育| 柏乡县| 泗洪县| 海安县| 临泉县| 肥西县|