在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > DIY制作LED數(shù)碼管定時器

            DIY制作LED數(shù)碼管定時器

            作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
            由于只有一個數(shù)碼管,只能顯示0到15,所以這個定時器可以定時0到15分,0到15個小時,0到15天,0到15個星期,本來想在程序中加上定時0到15個月,但想想在實際情況中定時15個月都有一年多了,估計好少用到,就不寫了。這個定時器我加上了繼電器,所以可以控制220V交流電,且定時誤差在幾個毫秒內(nèi),還算精確吧。。。

            先來幾張初期的原理圖:




            下面是單片機的源程序:
            #include
            #define uint unsigned int
            #define uchar unsigned char
            sbit ledg=P1^0;//秒閃爍(一秒鐘亮一秒鐘滅)
            sbit ledb=P1^1;//分閃爍(一分鐘亮一分鐘滅)
            sbit fmq=P3^3;// 蜂鳴器
            sbit ledx=P3^4;// 定時星期指示燈
            sbit ledt=P3^6;// 定時天指示燈
            sbit ledf=P3^5;// 定時分鐘指示燈
            sbit leds=P3^7;// 定時小時指示燈
            sbit key1=P1^6;// 啟動|暫停
            sbit key2=P1^5;// 調(diào)整定時分鐘
            sbit key3=P1^4;// 調(diào)整定時小時
            sbit key4=P1^3;// 調(diào)整定時天
            sbit key5=P1^2;// 調(diào)整定時星期
            sbit jdq=P1^7; //繼電器
            uint i,j,num,num1,num2,num3,num4,num5,num6;
            uchar shi,temp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8,dsf,dss,dst,dsx;
            uchar code shuju[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
            0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
            void delayms(uint xms)
            {
            for(i=xms;i>0;i--)
            for(j=110;j>0;j--);
            }
            void display(shi)
            {
            P2=shuju[shi];
            }
            void keyscan()
            {
            uchar i;
            if(key1==0)
            {
            delayms(10);
            if(key1==0)
            {
            ledb=0; //把分閃爍指示燈調(diào)用來指示啟動|暫停
            while(i==0&&P2!=0xC0)
            {
            TR0=~TR0;// 啟動|暫停
            i++;
            }
            if(TR0==1)
            {
            ledb=1;//把分閃爍指示燈調(diào)用來指示啟動|暫停
            }
            else
            {
            TR0=0;
            }
            }
            }
            if(key2==0&&TR0==0)
            {
            dss=0; // 定時小時清零
            dst=0; // 定時天數(shù)清零
            dsx=0; // 定時星期清零
            temp1=1; //進(jìn)入switch-case
            delayms(10);
            }
            if(key3==0&&TR0==0)
            {
            dsf=0;
            dst=0;
            dsx=0;
            temp2=1;
            delayms(10);
            }
            if(key4==0&&TR0==0)
            {
            dsf=0;
            dss=0;
            dsx=0;
            temp3=1;
            delayms(10);
            }
            if(key5==0&&TR0==0)
            {
            dsf=0;
            dss=0;
            dst=0;
            temp4=1;
            delayms(10);
            }
            switch (temp1)
            {
            case 1:
            if(key2==0)
            {
            leds=1; // 關(guān)閉定時小時指示燈
            ledt=1; // 關(guān)閉定時天指示燈
            ledx=1;// 關(guān)閉定時星期指示燈
            ledf=0;// 打開定時分鐘指示燈
            ledg=1; // 關(guān)閉秒閃爍
            ledb=1; // 關(guān)閉分閃爍
            jdq=0; //關(guān)閉繼電器
            dsf++; // 分鐘加加
            shi=dsf;// 把分送去顯示
            if(dsf==16)
            {
            shi=0;
            dsf=0;
            }
            while(!key2);
            temp1=2;
            temp5=1;
            num2=dsf;
            temp6=2;
            temp7=2;
            temp8=2;
            }
            break;
            }
            switch (temp2)
            {
            case 1:
            if(key3==0)
            {
            ledf=1;
            ledt=1;
            ledx=1;
            leds=0;
            jdq=0;
            ledg=1;
            ledb=1;
            dss++;
            shi=dss;
            if(dss==16)
            {
            shi=0;
            dss=0;
            }
            while(!key3);
            temp2=2;
            temp6=1;
            num4=dss;
            temp5=2;
            temp7=2;
            temp8=2;
            }
            break;
            }
            switch (temp3)
            {
            case 1:
            if(key4==0)
            {
            ledf=1;
            leds=1;
            ledx=1;
            ledt=0;
            jdq=0;
            ledg=1;
            ledb=1;
            dst++;
            shi=dst;
            if(dst==16)
            {
            shi=0;
            dst=0;
            }
            while(!key4);
            temp3=2;
            temp7=1;
            num5=dst;
            temp5=2;
            temp6=2;
            temp8=2;
            }
            break;
            }
            switch (temp4)
            {
            case 1:
            if(key5==0)
            {
            ledf=1;
            leds=1;
            ledt=1;
            ledx=0;
            jdq=0;
            ledg=1;
            ledb=1;
            dsx++;
            shi=dsx;
            if(dsx==16)
            {
            shi=0;
            dsx=0;
            }
            while(!key5);
            temp4=2;
            temp8=1;
            num6=dsx;
            temp5=2;
            temp6=2;
            temp7=2;
            }
            break;
            }
            switch (temp5)
            {
            case 1:
            if(num==3686)
            {
            num=0;
            ledg=~ledg;
            num1++;
            }

            本文引用地址:http://www.biyoush.com/article/201611/323567.htm

            if(num1==60)
            {
            num1=0;
            num2--;
            shi=num2;
            if(num2==0)
            {
            jdq=1;
            TR0=0;
            }
            }
            break;

            }
            switch (temp6)
            {
            case 1:
            if(num==3686)
            {
            num=0;
            ledg=~ledg;
            num1++;
            }

            if(num1==60)
            {
            num1=0;
            ledb=~ledb;
            num3++;
            if(num3==60)
            {
            num3=0;
            num4--;
            shi=num4;
            }
            if(num4==0)
            {
            jdq=1;
            TR0=0;
            }
            }
            break;
            }
            switch (temp7)
            {
            case 1:
            if(num==3686)
            {
            num=0;
            ledg=~ledg;
            num1++;
            }

            if(num1==60)
            {
            num1=0;
            ledb=~ledb;
            num3++;
            if(num3==1440)
            {
            num3=0;
            num5--;
            shi=num5;
            }
            if(num5==0)
            {
            jdq=1;
            TR0=0;
            }
            }
            break;
            }
            switch (temp8)
            {
            case 1:
            if(num==3686)
            {
            num=0;
            ledg=~ledg;
            num1++;
            }

            if(num1==60)
            {
            num1=0;
            ledb=~ledb;
            num3++;
            if(num3==10080)
            {
            num3=0;
            num6--;
            shi=num6;
            }
            if(num6==0)
            {
            jdq=1;
            TR0=0;
            }
            }
            break;
            }
            }

            void main()
            {
            TMOD=0x02;
            TH0=6;
            TL0=6;
            EA=1;
            ET0=1;
            jdq=0;
            while(1)
            {
            keyscan();
            display(shi);
            while(jdq==1&&P2==0xC0)
            {
            fmq=0;
            ledg=1;
            ledb=1;
            }
            }
            }
            void T0_time()interrupt 1
            {
            num++;
            }

            全部全代碼下載:http://www.51hei.com/f/ledccr.rar
            這是洞洞板繪圖軟件畫的電路圖:





            關(guān)鍵詞: DIYLED數(shù)碼管定時

            評論


            技術(shù)專區(qū)

            關(guān)閉