新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 99秒計時+99秒倒計時(中斷觸發定時器)

        99秒計時+99秒倒計時(中斷觸發定時器)

        作者: 時間:2012-09-04 來源:網絡 收藏

        ___________________________________________

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

        功能:99秒

        時間2010—7—18

        ___________________________________________

        #includereg52.h>


        code unsigned char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

        unsigned char Dis_Shiwei;
        unsigned char Dis_Gewei;

        void delay(unsigned int cnt)
        {
        while(--cnt);
        }

        main()
        {

        TMOD |=0x01; //10ms in 12M crystal,工作在模式一,16位
        TH0=0xd8;
        TL0=0xf0;
        IE= 0x82; //打開
        TR0=1; //打開定時開關

        while(1)
        {
        P0=Dis_Shiwei;
        P2=0;
        delay(300);
        P0=Dis_Gewei;
        P2=1;
        delay(300);
        }

        }

        void tim(void) interrupt 1 using 1
        {
        static unsigned char second,count;
        TH0=0xd8;
        TL0=0xf0;

        count++;
        if (count==100) //100x10ms
        {
        count=0;
        second++;
        if(second==100)
        second=0;
        Dis_Shiwei=tab[second/10];
        Dis_Gewei=tab[second%10];

        }

        }


        /*

        設定為:TH0=0xd8;TL0=0xf0;經確定時10ms。從程序開始執行,每當主程序中的16位數發生溢出則,主程序保護現場并調用子程序,也可以寫為:TH0=(65536-10000)/256;TL0=(65536-10000)%256。秒脈沖的產生要求精確定時1s,實際情況可能有延誤。


        1 0000 0000 0000 0000

        1101 1000 1111 0000

        ————————————

        0010 0111 0001 0000

        Time=16(1+16+32+64+512)=16*625=10000us=10ms

        紅外遙控器相關文章:紅外遙控器原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 建宁县| 稻城县| 四子王旗| 枣强县| 贡嘎县| 永川市| 台北县| 西峡县| 剑河县| 射阳县| 八宿县| 张北县| 华宁县| 新晃| 和林格尔县| 成安县| 莱西市| 合山市| 安义县| 沈阳市| 新建县| 太保市| 渝北区| 庆云县| 垣曲县| 遂宁市| 潜山县| 凉城县| 洛浦县| 诸城市| 武安市| 盱眙县| 苍溪县| 崇明县| 兰州市| 思南县| 邹平县| 桓仁| 鲜城| 昂仁县| 隆回县|