新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何實現定時器與中斷來點亮二極管

        如何實現定時器與中斷來點亮二極管

        作者: 時間:2016-11-18 來源:網絡 收藏
        什么是定時器,什么是中斷,這些簡單的概念,在此就不多說了,百度一下就有很多資料了。
        下面是個人使用定時器與中斷來實現 點亮二極管
        #include
        sbit LED=P2^0; //點亮一個二極管
        unsigned char i=0;
        void main()
        {
        TMOD=0x01; // TMOD寄存器高4位設置T1,低4位設置T0。設置T0定時器工作模式
        EA=1; // 允許打開全局中斷變量EA
        ET0=1; //允許打開定時器T0中斷
        TR0=1; //設置TCON寄存器: 啟動定時器T0
        TH0=(65536-50000)/256; //50ms毫秒發生一次中斷溢出,初始化TH0
        TL0=(65536-50000)%256;
        LED=0; //點亮二極管
        while(1)
        {
        if(i==20) //20次50ms 等于1秒鐘 即 1秒鐘二極管就點亮或熄滅
        {
        LED=~LED; //二極管狀態取反
        i=0;
        }
        }
        }
        void TimerLED() interrupt 1 using 1 // 中斷源T0定時器,使用第1組寄存器工作組存儲中斷程序
        {
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        i=i+1;
        }
        只要了解原理,就非常簡單了。 記住:學習單片機,就是為了以后學習ARM更容易,更快速的學習。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 北辰区| 安宁市| 偃师市| 鄂伦春自治旗| 远安县| 新巴尔虎左旗| 苗栗县| 淮南市| 钟山县| 武清区| 嫩江县| 韶山市| 渑池县| 且末县| 华阴市| 垫江县| 白朗县| 钟祥市| 九江县| 东乌珠穆沁旗| 抚远县| 洛川县| 北海市| 铜陵市| 闻喜县| 聂荣县| 肇庆市| 三都| 荥经县| 新巴尔虎左旗| 民勤县| 扬州市| 儋州市| 乌鲁木齐县| 叙永县| 莎车县| 新乐市| 大港区| 塘沽区| 西乌珠穆沁旗| 井冈山市|