新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PIC16F917 RB0(INT)外部中斷練習程序

        PIC16F917 RB0(INT)外部中斷練習程序

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

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

        /*************PIC16F917單片機程序*********************/
        /*************************************************************/
        /*****File Function : 中斷練習程序*****/
        /*****Program Author : ZhengWen(ClimberWin)*****/
        /*****MCU : PIC16F917 內部晶振*****/
        /*****Compile Date : 2010/08/17 *****/
        /*****Edition Info : V1.0 *****/
        /*************************************************************/
        //按下按鍵,觸發(fā)外部中斷INT,進行LED計數(shù)顯示
        //引腳定義:PORTD=8LED,KEY=RB0(INT)
        /*修改日期: */

        /************************************/
        #include
        #define uchar unsigned char
        #define uint unsigned int
        void Init(void);//初始化子程序
        #define KEY RB0
        uchar led_num;//定義LED計數(shù)值存儲地址

        void Init(void)
        {
        PORTB = 0B00000000;
        PORTD = 0B00000000;
        TRISB = 0B00100001;//設置RB0為輸入,作為按鍵口
        TRISD = 0B00000000;//設置PORTD口為輸出,作為LED顯示口
        led_num=EEPROM_READ(0); //從EEPROM中讀取數(shù)據(jù)
        PORTD=~led_num;
        ///////////中斷配置///////////////////////////////////////
        INTE=1; //RB0(INT)中斷使能
        INTF=0; //RB0(INT)中斷標志位,1表示有中斷,必須軟件清零
        GIE=1;//全局中斷使能
        }
        /////////////中斷子程序//////////////////
        void interrupt ISR(void)//進入中斷計數(shù)值加1,并輸出顯示
        {
        INTF=0; //清除中斷標志位
        PORTD=~led_num;
        led_num++;
        }

        ////////////主程序/////////////////////////
        int main (void)
        {
        Init();//初始化程序
        while(1);//等待進入中斷程序
        }



        關鍵詞: PIC16F917RB0外部中

        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 长泰县| 瑞安市| 太保市| 乳山市| 全州县| 弋阳县| 关岭| 新化县| 阿克苏市| 亳州市| 宜宾市| 桓仁| 定边县| 泊头市| 伊金霍洛旗| 类乌齐县| 衡水市| 内丘县| 霍州市| 大埔区| 蓝田县| 商水县| 浮山县| 微博| 北川| 十堰市| 忻州市| 会理县| 镇赉县| 峨边| 华安县| 仲巴县| 江山市| 台东市| 明光市| 新蔡县| 华蓥市| 拉萨市| 安国市| 唐海县| 乌拉特前旗|