新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機C語言程序設計:100 000s 以內的計時程序

        單片機C語言程序設計:100 000s 以內的計時程序

        作者: 時間:2013-08-03 來源:網絡 收藏

        /* 名稱:100 000s 以內的

        說明:在 6 只數碼管上完成 0~99 999.9s。

        */

        #includereg51.h>

        #includeintrins.h>

        #define uchar unsigned char

        #define uint unsigned int

        //段碼

        uchar code


        DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

        //6 只數碼管上顯示的數字

        uchar Digits_of_6DSY[]={0,0,0,0,0,0};

        uchar Count;

        sbit Dot=P0^7;

        //延時

        void DelayMS(uint ms)

        {

        uchar t;

        while(ms--) for(t=0;t120;t++);

        }

        //主程序

        void main()

        {

        uchar i,j;

        P0=0x00;

        P3=0xff;

        Count=0;

        TMOD=0x01;


        //計數器 T0 方式 1

        TH0=(65536-50000)/256; //50ms 定時

        TL0=(65536-50000)%256;

        IE=0x82;

        TR0=1; //啟動 T0

        while(1)

        {

        j=0x7f;

        //顯示 Digits_of_6DSY[5]~Digits_of_6DSY[0]的內容

        //前面高位,后面低位,循環中 i!=-1 亦可寫成 i!=0xff

        for(i=5;i!=-1;i--)

        {

        j=_crol_(j,1);

        P3=j;

        P0=DSY_CODE[Digits_of_6DSY[i]];

        if(i==1) Dot=1; //加小數點

        DelayMS(2);

        }

        }

        }

        //T0 中斷函數

        void Timer0() interrupt 1

        {

        uchar i;

        TH0=(65536-50000)/256; //恢復初值

        TL0=(65536-50000)%256;

        if(++Count!=2) return;

        Count=0;

        Digits_of_6DSY[0]++; 位累加

        for(i=0;i=5;i++) //進位處理

        {

        if(Digits_of_6DSY[i]==10)

        {

        Digits_of_6DSY[i]=0;

        if(i!=5) Digits_of_6DSY[i+1]++; 如果 0~4 位則分別向高一位進位

        }

        else break; //若某低位沒有進位,怎循環提前結束

        }

        }

        單片機C語言程序設計:100 000s 以內的計時程序

        c語言相關文章:c語言教程


        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        塵埃粒子計數器相關文章:塵埃粒子計數器原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 光泽县| 上思县| 赤水市| 永清县| 广南县| 宾阳县| 深州市| 胶州市| 固原市| 河间市| 五莲县| 年辖:市辖区| 河源市| 西乌| 大荔县| 晋城| 江华| 托里县| 彭阳县| 海南省| 绥德县| 三门峡市| 柳江县| 奉贤区| 通辽市| 府谷县| 安庆市| 文化| 扶绥县| 鄂托克前旗| 陇南市| 烟台市| 神木县| 霍邱县| 石渠县| 鸡泽县| 信阳市| 天柱县| 丹凤县| 绥德县| 娄烦县|