新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 如何實現數碼管3位計數器

        如何實現數碼管3位計數器

        作者: 時間:2016-11-18 來源:網絡 收藏
        利用兩個定時器 來實現 3位數碼管 同時顯示計時器, 即從0- 999范圍的計時
        #include
        //共陰極數碼管編碼范圍
        unsigned char code table[10]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0xef };
        unsigned char first=0;
        unsigned char second=0;
        unsigned char third=0;
        unsigned int number=0;
        unsigned char t=0;
        void Delay()
        {
        unsigned char j;
        unsigned char i;
        for(i=10; i>0; i--)
        for(j=110; j>0; j--);
        }
        void main()
        {
        TMOD=0x11; //設置兩個定時器T0,T1的工作方式: 使用16位寄存器的方式1
        EA=1; //打開 全局中斷
        ET0=1; // 打開定時器T0的中斷
        ET1=1;
        TR0=1; // 啟動定時器T0
        TR1=1;
        TH0=(65536-50000)%256;
        TL0=(65536-50000)%256;
        TH1=(65536-50000)%256;
        TL1=(65536-50000)%256;
        while(1)
        {
        if(t==20)
        {
        t=0;
        number++;
        first=number/100;
        second=(number-first*100)/10;
        third=(number-first*100)%10;
        }
        }
        }
        void TimerLED0() interrupt 1 using 1
        {
        TH0=(65536-50000)%256;
        TL0=(65536-50000)%256;
        t++;
        }
        void TimerLED1() interrupt 3 using 2
        {
        TH1=(65536-10000)%256;
        TL1=(65536-10000)%256;
        P2=0xfe;
        P0=table[first];
        Delay();
        P2=0xfd;
        P0=table[second];
        Delay();
        P2=0xfb;
        P0=table[third];
        Delay();
        }



        關鍵詞: 數碼管3位計數

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 松江区| 平南县| 咸宁市| 南漳县| 丹江口市| 沙坪坝区| 临桂县| 丁青县| 凉城县| 赣榆县| 舞钢市| 光山县| 明溪县| 潜山县| 营口市| 龙海市| 讷河市| 井陉县| 石屏县| 工布江达县| 策勒县| 云南省| 蕲春县| 定兴县| 达孜县| 进贤县| 剑河县| 寻乌县| 浪卡子县| 余姚市| 江孜县| 香河县| 屏山县| 时尚| 乐安县| 五指山市| 玉门市| 蛟河市| 锡林浩特市| 定南县| 吴江市|