新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC 定時器中斷1(外設中斷)

        PIC 定時器中斷1(外設中斷)

        作者: 時間:2016-11-21 來源:網絡 收藏
        屬于外設的中斷系統,所以在用的時候屬于低優先級的中斷,要開很多寄存器:外設中斷允許,定時器中斷1允許。。。。。。。。
        #include
        __CONFIG(1,XT) ; //晶振為外部4M
        __CONFIG(2,WDTDIS) ; //看門狗關閉
        __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)
        {
        if(TMR1IF==1) //判斷是否產生中斷
        {
        TMR1IF=0;
        TMR1H=0xff; //注意要重新裝初值
        TMR1L=0x06;
        count++;
        if(count==4000)
        {
        count=0;
        sec++;
        if(sec>9)
        sec=0;
        }
        }
        }
        void display()
        {
        PORTD=shuma[sec];
        }
        void main(void)
        {
        ADCON1=0X06;
        TRISD=0B00000000;
        IPEN=0; //關閉中斷優先級
        PEIE=1; //允許所有未被關閉的外設中斷
        T1CON=0x01; //使能定時器中斷1
        TMR1IE=1; //使能當前定時器中斷1
        TMR1IF=0; //軟件清中斷標志位
        TMR1H=0xff; //必須手動計算,不能靠左移,右移等完成
        TMR1L=0x06; //必須手動計算,不能靠左移,右移等完成
        GIE=1; //開總中斷
        while(1)
        {
        display();
        }
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 西盟| 香格里拉县| 博兴县| 沙河市| 新巴尔虎右旗| 洪雅县| 水富县| 海宁市| 乌拉特前旗| 明星| 邓州市| 简阳市| 斗六市| 蒲城县| 朔州市| 兴隆县| 霞浦县| 余干县| 龙游县| 荔浦县| 商水县| 全南县| 鹤岗市| 雷波县| 洪泽县| 施甸县| 濮阳县| 鄂伦春自治旗| 太白县| 穆棱市| 工布江达县| 中宁县| 南漳县| 临泽县| 达拉特旗| 瑞丽市| 东丽区| 吉林市| 聊城市| 道孚县| 武鸣县|