新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 數碼管1秒鐘自動加1

        數碼管1秒鐘自動加1

        作者: 時間:2016-11-30 來源:網絡 收藏
        看著里面的LED燈變幻莫測的樣子,真的想自己編點東西會“動一動”的,呵呵,所以把今天學到的數碼管動態顯示再加以應用了,雖然這個程序搞了很久,但卻成功了,呵呵,得出的結論是,一個成功是由無數的失敗換來的,值!

        下面是我編的一個程序,實現數碼管在0至100之間,數碼管以1秒的速度自動加1;程序如下:#include
        unsigned char table[]= {//數碼管數組顯示內容
        0x3f,
        0x06,
        0x5b,
        0x4f,
        0x66,
        0x6d,
        0x7d,
        0x07,
        0x7f,
        0x6f
        };
        int shi,ge,bai,a;//定義變量
        unsigned int temp=0;//給數碼管賦初值
        void timer1();//顯示程序調用聲明
        void delay()//數碼管位選定時約1MS
        {
        int i,j;
        for(i=1;i>0;i--)
        for(j=120;j>0;j--);
        }
        void main()
        {
        TMOD |= 0x10;//定時設置的打開
        TMOD &= 0xdf;
        TH1 = (65536-50000)/256;
        TL1 = (65536-50000)&256;
        ET1 = 1;
        TR1 = 1;
        while(1)//實現位選和段選的操作及調用
        {
        bai=temp/100;
        shi = temp%100/10;
        ge = temp%10;
        timer1();
        P0 = 0x00;
        P1 = table[bai];
        delay();
        P0 = 0x01;
        P1 = table[shi];
        delay();
        P0 = 0x02;
        P1 = table[ge];
        delay();
        }
        }
        void timer1() //段選內容,實現1S自動加1功能
        {
        if(TF1==1)
        {
        TF1=0;
        TH1 = (65536-50000)/256;
        TL1 = (65536-50000)&256;
        a++;
        if(a==20)
        {
        a=0;
        temp++;
        if(temp==100)
        temp=0;
        }
        }
        }

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

        當然,還是聲明,我的開發板是由P0.1至P0.3控制位選的,由P1口控制段選內容的。



        關鍵詞: 數碼管自動加

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 特克斯县| 连云港市| 许昌县| 博野县| 新建县| 伊金霍洛旗| 寿光市| 荥经县| 泽州县| 新干县| 西林县| 边坝县| 库尔勒市| 长子县| 弋阳县| 开化县| 福州市| 武定县| 贵定县| 鱼台县| 茂名市| 桑植县| 龙游县| 红河县| 夏邑县| 昌平区| 米泉市| 茌平县| 科技| 长垣县| 宁海县| 和静县| 巴塘县| 偏关县| 巫山县| 青河县| 静安区| 鹤山市| 当雄县| 平山县| 抚顺县|