新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 定時(shí)器/計(jì)數(shù)器 的使用(自然中斷優(yōu)先級(jí))

        定時(shí)器/計(jì)數(shù)器 的使用(自然中斷優(yōu)先級(jí))

        作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò) 收藏
        定時(shí)器/計(jì)數(shù)器的使用可以分成兩大步驟與代碼

        1、初始化定時(shí)器
        2、編寫中斷子程序(也叫中斷函數(shù)通俗點(diǎn)就是調(diào)用一個(gè)函數(shù))


        初始化定時(shí)器
        1)設(shè)置定時(shí)器/計(jì)數(shù)器的模式(在前面有)
        2) 開(kāi)啟定時(shí)器中斷(定時(shí)器/計(jì)數(shù)器 0或者1或者其他)
        3) 啟用定時(shí)器/計(jì)數(shù)器(定時(shí)器/計(jì)數(shù)器 0或者1或者其他)
        4)打開(kāi)總中斷
        5)給定時(shí)器賦值
        注:以上步驟可以打亂但是不可以少。(如果有的條件在其他函數(shù)里面初始化了這里可以省略)

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

        編寫中斷子程序

        void tim0_isr (void) interrupt 1
        1)void tim0_isr(void) (這個(gè)就是中斷后需要執(zhí)行的函數(shù))
        2) interrupt 1 (中斷號(hào)前面有詳細(xì)的中斷號(hào)說(shuō)明)

        代 碼
        #include
        sbit LED=P0^7;//定義點(diǎn)亮的LED管腳
        unsigned int i=0;

        void tim0_isr (void) interrupt 1 //這個(gè)是中斷執(zhí)行的函數(shù)
        {
        i++; //每中斷一次i+1
        }


        void csh_dsq_0()//初始化定時(shí)器/計(jì)數(shù)器0
        {
        TMOD = 0x02;//使用模式3(自動(dòng)重裝模式)
        TH0=0x00;//定時(shí)器0的重裝數(shù)據(jù)(這里是給定時(shí)賦值)
        TL0=0x00;//初始化(這里是給定時(shí)賦值)
        ET0=1;//開(kāi)啟定時(shí)器0中斷
        TR0=1;//啟用定時(shí)0
        EA =1;//打開(kāi)總中斷
        }void main()
        {
        LED = 0;
        csh_dsq_0(); //調(diào)用中斷初始化
        while(1)
        {
        if(i==5000)//中斷5000次LED亮或滅一次
        {
        LED=~LED;//LED亮或滅
        i=0;//清零i使中斷計(jì)數(shù)從新開(kāi)始
        }
        }
        }



        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 卫辉市| 隆子县| 施甸县| 柏乡县| 沙河市| 白朗县| 汤阴县| 曲阳县| 定远县| 彭阳县| 凤城市| 大田县| 平南县| 安阳县| 荣成市| 西乌珠穆沁旗| 萍乡市| 永修县| 普兰店市| 阿巴嘎旗| 淄博市| 张家港市| 延寿县| 永靖县| 政和县| 舒兰市| 东安县| 屯留县| 株洲市| 太和县| 增城市| 东丽区| 丽水市| 鹤庆县| 曲周县| 凤城市| 遂川县| 来凤县| 嘉禾县| 青川县| 册亨县|