新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 定時器T1中斷實驗

        定時器T1中斷實驗

        作者: 時間:2011-09-20 來源:網(wǎng)絡 收藏

        1、定時器。定時器產生10mS周期中斷,通過計數(shù)讓PB1電平產生周期變化。
        2、內部1 M晶振。
        3、進行此實驗請插上JP1的所有8個短路塊,JP7(LED_EN)短路塊。

        */
        #include "iom16v.h"
        #include macros.h>
        /*初始化定時器,產生10mS周期中斷*/
        void T1_Init(void) {

        OCR1A = 1250; /*計數(shù)周期為10mS,F(xiàn)=1M*/
        TIMSK |= (1 OCIE1A); /*比較中斷A允許*/
        SREG = 0x80;
        TCCR1A = 0x00;
        TCCR1B = 0x08; /*定時器工作在CTC計數(shù)器模式*/
        TCCR1B |= 0x02; /*設置定時器的分頻值為8分頻*/
        }
        void main(void) {
        DDRA = 0x00; /*方向輸入*/
        PORTA = 0xFF; /*打開上拉*/
        DDRB = 0xFF; /*方向輸出*/
        PORTB = 0xFF; /*電平設置*/
        DDRC = 0x00;
        PORTC = 0xFF;
        DDRD = 0x00;
        PORTD = 0xFF;

        T1_Init();
        SEI(); /*中斷使能*/

        while (1);
        }
        /* TCCR1A組比較匹配中斷*/
        #pragma interrupt_handler Int_TCCR1A: 7
        void Int_TCCR1A(void) {
        static unsigned char i;

        if (i > 20) {
        PORTB ^= (1 PB1);
        i = 0;
        }
        else {
        i ++;
        }
        }


        評論


        技術專區(qū)

        關閉
        主站蜘蛛池模板: 榆树市| 闵行区| 海门市| 涟水县| 龙海市| 汽车| 尉氏县| 鹿泉市| 于都县| 大姚县| 社会| 旌德县| 宁乡县| 临桂县| 凯里市| 冕宁县| 南郑县| 越西县| 万盛区| 京山县| 兰溪市| 阿拉善右旗| 荣成市| 乌拉特前旗| 塔河县| 海兴县| 同心县| 鹰潭市| 宁晋县| 武宣县| 太谷县| 九龙县| 鸡东县| 武威市| 江山市| 鲁山县| 开远市| 五家渠市| 兴安盟| 星子县| 新建县|