新聞中心

        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 桐乡市| 建瓯市| 红安县| 石河子市| 科技| 绿春县| 徐州市| 和田市| 宁武县| 新巴尔虎左旗| 芷江| 松溪县| 玉环县| 平度市| 拜城县| 河间市| 昌黎县| 吴江市| 富裕县| 平顺县| 遵化市| 石屏县| 鄂州市| 太原市| 沙湾县| 民权县| 滁州市| 庄浪县| 许昌市| 泾阳县| 潜江市| 和田县| 上高县| 姚安县| 河间市| 铅山县| 江安县| 南华县| 连南| 长治县| 偏关县|