久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5694|回復: 2
收起左側

基于51單片機電子時鐘的實現

[復制鏈接]
ID:302179 發表于 2018-4-4 20:48 | 顯示全部樓層 |閱讀模式
#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit we = P2^7;
sbit du = P2^6;
sbit k1= P3^0 ;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
uchar code leddata[]={

                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"  
                0x40,  //"-"
                0x00,  //熄滅               
                         };

void delay(uint z)
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);
}
void main()
{
                  uchar a;
                uchar sec,min,hour;
                uint year=2016;
                uint mou=12;
                uint day=9;       
                uint Yqian,Ybai,Yshi,Yge,Mshi,Mge,Dshi,Dge;
                uint shi1,ge1,shi2,ge2,shi3,ge3;
                TR0 = 1;       
                TMOD = 0x01;
                TH0 = (65535-5000)/0xff;
                TL0 = (65535-5000)%0xff;//0x4bfc        定時50ms               
                while(1)
                {
                        if(TF0 == 1)
                        {
                                TH0 = (65535-5000)/0xff;
                        TL0 = (65535-5000)%0xff;
                                TF0 = 0;
                                a++;
                        }
                        if(a == 40)
                        {       
                            sec++;
                            a = 0;                               
                        }
                        if(sec==60)
                        {
                            min++;
                            sec=0;       
                        }
                        if(min==60)
                        {
                            hour++;
                            min=0;
                        }       
                        if(hour==60)
                        {
                            hour=0;
                                hour++;
                        }
                        if(hour==24)
                        {
                                day++;
                                hour=0;        
                        }
                        if(day==31)
                        {
                                 mou++;
                                day=0;
                        }
                        if(mou==13)
                        {
                                year++;
                                mou=0;
                        }       
                     shi1=hour%10;
                         ge1=hour/10;
                        shi2=min%10;
                        ge2=min/10;
                        shi3=sec%10;
                        ge3=sec/10;

                        P0 = 0xff;
                        we = 1;
                        P0 = 0xbf;
                        we = 0;
                               
                        du = 1;
                        P0 = leddata[ge3];
                        du = 0;       
                        delay(3);            //

                        P0 = 0xff;
                        we = 1;
                        P0 = 0x7f;
                        we = 0;
                               
                        du = 1;       
                        P0 = leddata[shi3];
                        du = 0;       
                        delay(3);            //
                         
                        P0 = 0xff;
                        we = 1;
                        P0 = 0xdf;
                        we = 0;
                               
                        du = 1;
                        P0 = leddata[10];
                        du = 0;       
                        delay(3);            //

                        P0 = 0xff;
                        we = 1;
                        P0 = 0xfb;
                        we = 0;
                               
                        du = 1;
                        P0 = leddata[10];
                        du = 0;       
                        delay(3);            //
       
                        P0 = 0xff;
                        we = 1;       
                        P0 = 0xef;
                        we = 0;
                                       
                        du = 1;
                        P0 = leddata[shi2];
                        du = 0;       
                        delay(3);            //
                          
                        P0 = 0xff;
                        we = 1;       
                        P0 = 0xf7;
                        we = 0;       
                               
                        du = 1;
                        P0 = leddata[ge2];
                        du = 0;       
                        delay(3);            //

                            P0 = 0xff;
                        we = 1;       
                        P0 = 0xfd;
                        we = 0;       
                               
                        du = 1;
                        P0 = leddata[shi1];
                        du = 0;       
                        delay(3);           //

                            P0 = 0xff;
                        we = 1;       
                        P0 = 0xfe;
                        we = 0;       
                               
                        du = 1;
                        P0 = leddata[ge1];
                        du = 0;       
                        delay(3);
                if(k1==0)               
                {       
                  delay(1000);   //消除抖動 一般大約10ms
                  if(k1==0)         //再次判斷按鍵是否按下
                  {       
                   while(!k1)   //按鍵時顯示日期
                       {
                    Yqian=year/1000;
                        Ybai=year%1000/100;
                        Yshi=year%1000%100/10;
                        Yge=year%10;
                        Mshi=mou/10;
                        Mge=mou%10;
                        Dshi=day/10;
                        Dge=day%10;
               
                          P0 = 0xff;
                        we = 1;
                        P0 = 0xfe;
                        we = 0;
                               
                        du = 1;
                        P0 = leddata[Yqian];
                        du = 0;       
                        delay(3);            //

                        P0 = 0xff;
                        we = 1;
                        P0 = 0xfd;
                        we = 0;
                               
                        du = 1;       
                        P0 = leddata[Ybai];
                        du = 0;       
                        delay(3);            //
                         
                        P0 = 0xff;
                        we = 1;
                        P0 = 0xfb;
                        we = 0;
                               
                        du = 1;
                        P0 = leddata[Yshi];
                        du = 0;       
                        delay(3);            //

                        P0 = 0xff;
                        we = 1;
                        P0 = 0xf7;
                        we = 0;
                               
                        du = 1;
                        P0 = leddata[Yge];
                        du = 0;       
                        delay(3);            //
       
                        P0 = 0xff;
                        we = 1;       
                        P0 = 0xef;
                        we = 0;
                                       
                        du = 1;
                        P0 = leddata[Mshi];
                        du = 0;       
                        delay(3);            //
                          
                        P0 = 0xff;
                        we = 1;       
                        P0 = 0xdf;
                        we = 0;       
                               
                        du = 1;
                        P0 = leddata[Mge];
                        du = 0;       
                        delay(3);            //

                            P0 = 0xff;
                        we = 1;       
                        P0 = 0xbf;
                        we = 0;       
                               
                        du = 1;
                        P0 = leddata[Dshi];
                        du = 0;       
                        delay(3);           //

                            P0 = 0xff;
                        we = 1;       
                        P0 = 0x7f;
                        we = 0;       
                               
                        du = 1;
                        P0 = leddata[Dge];
                        du = 0;       
                        delay(3);
                        }
                  }
                  while(!k1);         
            }
          if(k2==0)         
          {
            delay(1000);
                if(k2==0)
                {
                  while(!k2)
                  {
                     uchar i;
                         uchar sec2,Sshi,Sge;
                         Sshi=sec2/10;
                         Sge=sec2%10;
                     TR0 = 1;       
                     TMOD = 0x01;
                     TH0 = (65535-5000)/0xff;
                     TL0 = (65535-5000)%0xff;//0x4bfc        定時50ms       
                         if(TF0 == 1)
                        {
                          
                                TH0 = (65535-5000)/0xff;
                        TL0 = (65535-5000)%0xff;
                                TF0 = 0;
                                i++;
                        }
                        if(i== 160)
                        {       
                            sec2++;
                            i = 0;                               
                        }
                        if(sec2==60)
                        {
                            sec2=0;       
                        }
                        P0 = 0xff;
                        we = 1;
                        P0 = 0xbf;
                        we = 0;
                               
                        du = 1;
                        P0 = leddata[Sshi];
                        du = 0;       
                        delay(3);            //

                        P0 = 0xff;
                        we = 1;
                        P0 = 0x7f;
                        we = 0;
                               
                        du = 1;       
                        P0 = leddata[Sge];
                        du = 0;       
                        delay(3);            //
                         
                  }
                  while(!k2)  ;
                }
          }
          if(k3==0)
          {
            delay(1000);
                 if(k3==0)
                  {
                  while(!k3)
                    { TR0=0;
                          sec--;
                         while(!k3);}
                  }while(!k3);
          }
          if(k4==0)
          {
           delay(1000);
           if(k4==0)
           {
            TR0=1;
           }
          }     
        }

               
}

回復

使用道具 舉報

ID:441102 發表于 2018-12-23 12:44 | 顯示全部樓層
有沒有仿真圖?
回復

使用道具 舉報

ID:544367 發表于 2019-6-10 14:05 | 顯示全部樓層
大佬不帶仿真圖嗎
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人在线精品视频 | 夜夜精品视频 | 狠狠操狠狠干 | 国产成人精品一区二区三区在线 | 精品久久久久久久久久 | 91社影院在线观看 | 天天操天天射天天舔 | 亚洲视频自拍 | 国产一区二区在线看 | 三级av在线| 欧美在线观看一区 | 国产精品久久久免费 | 精品国产色 | 国产精品久久久久久久久婷婷 | 欧美精品国产精品 | 精品91久久 | 91观看 | 国产一区二区三区免费 | 日本三级在线 | 成人国产一区二区三区精品麻豆 | 精品一区二区电影 | 欧美理伦片在线播放 | 中文字幕在线精品 | 一本色道久久综合亚洲精品高清 | 亚洲精品不卡 | 国产美女一区二区 | 一区二区三区四区在线视频 | caoporn国产| 久久一区二区三区免费 | 亚洲精品 在线播放 | 国产精品久久久久久久粉嫩 | 99久久精品国产麻豆演员表 | 欧美爱爱视频网站 | 男女免费观看在线爽爽爽视频 | 国产在线高清 | jizz在线看片 | 国产成在线观看免费视频 | 四虎影视免费在线 | 亚洲自拍偷拍av | 国产精品视频在 | 日韩一区精品 |