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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2008|回復: 0
打印 上一主題 下一主題
收起左側

數碼管顯示數字鐘設計

[復制鏈接]
跳轉到指定樓層
樓主
ID:376391 發表于 2019-1-2 10:24 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
程序源如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit dula=P2^6;
sbit wela=P2^7;      
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit buzzer=P3^7;   
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};   
uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};


uint num,num1,num2,num3,shi1,shi2,fen1,fen2,miao1,miao2,keynum1,keynum4;
uint nnum1,nnum2,nnum3,nshi1,nshi2,nfen1,nfen2,nmiao1,nmiao2;           

void delayms(uint xms)
{
   uint i,j;
   for(i=xms;i>0;i--)
   for(j=110;j>0;j--) ;
    }


void display(uchar A,uchar B,uchar C,uchar D,uchar E,uchar F)
{
    miao1=num1/10;
    miao2=num1%10;
    fen1=num2/10;
    fen2=num2%10;
    shi1=num3/10;
    shi2=num3%10;
    nmiao1=nnum1/10;
    nmiao2=nnum1%10;
    nfen1=nnum2/10;
    nfen2=nnum2%10;
    nshi1=nnum3/10;
    nshi2=nnum3%10;


    P0=0xff;
    wela=1;
    P0=0xfe;
    wela=0;
    dula=1;
    P0=table[A];
    dula=0;            
    delayms(1);
    P0=0xff;
    wela=1;
    P0=0xfd;
    wela=0;
    dula=1;
    P0=table[B];
    dula=0;            
    delayms(1);
    P0=0xff;
    wela=1;
    P0=0xfb;
    wela=0;
    dula=1;
    P0=table[C];
    dula=0;            
    delayms(1);
    P0=0xff;
    wela=1;
    P0=0xf7;
    wela=0;
    dula=1;
    P0=table[D];
    dula=0;            
    delayms(1);
    P0=0xff;
    wela=1;
    P0=0xef;
    wela=0;
    dula=1;
    P0=table[E];
    dula=0;            
    delayms(1);
    P0=0xff;
    wela=1;
    P0=0xdf;
    wela=0;
    dula=1;
    P0=table[F];
    dula=0;            
    delayms(1);
    }


void keyscan()
{
   if(key1==0)
   {   delayms(10);
       if(key1==0)
       {
         keynum1++;
         while(!key1);
         }
    }
    if(keynum1!=0)
    {  TR0=0;
       if(keynum1==1)
       {
          if(key2==0)
          {
             delayms(10);
             if(key2==0)
             {
                 num1++;
                 if(num1==60)
                 num1=0;
                 while(!key2);
             }
          }
          if(key3==0)
          {
               delayms(10);
               if(key3==0)
                {
                   if(num1==0)
                   num1=60;
                   num1--;
                   while(!key3);
                   }
          }
        }
      if(keynum1==2)
      {   if(key2==0)
          {   delayms(10);
              if(key2==0)
              {   num2++;
                  if(num2==60)
                  num2=0;
                  while(!key2);
                  }
            }
          if(key3==0)
          {  delayms(10);
             if(key3==0)
             {   if(num2==0)
                 num2=60;
                 num2--;
                 while(!key3);

                 }
            }
        }
       if(keynum1==3)
       {   if(key2==0)
           {    delayms(10);
                if(key2==0)
                {   num3++;
                    if(num3==24)
                    num3=0;
                    while(!key2);
                    }
                }
           if(key3==0)
           {   delayms(10);
               if(key3==0)
               {
                   if(num3==0)
                   num3=24;
                   num3--;
                   while(!key3);
                   }
                }
            }
        if(keynum1==4)
        {
            keynum1=0;
            TR0=1;
               }
    }
       if(key4==0)
       {
          delayms(10);
          if(key4==0)
          {    keynum4++;
               while(!key4);
               }
        }
       if(keynum4!=0)
       {   TR0=0;
           if(keynum4==1)
           {   if(key2==0)
               {   delayms(10);
                   if(key2==0)
                   {   nnum1++;
                       if(nnum1==60)
                       nnum1=0;
                       while(!key2);
                    }
                }
                if(key3==0)
                {   delayms(10);
                    if(key3==0)
                    {   if(nnum1==0)
                        nnum1=60;
                        nnum1--;
                        while(!key3);
                    }
                }
            }
          if(keynum4==2)
          {   if(key2==0)
              {   delayms(10);
                  if(key2==0)
                  {   nnum2++;
                      if(nnum2==60)
                      nnum2=0;
                      while(!key2);
                  }
               }
               if(key3==0)
               {   delayms(10);
                   if(key3==0)
                   {   if(nnum2==0)
                       nnum2=60;
                       nnum2--;
                       while(!key3);
                       }
                }
        }
          if(keynum4==3)
          {   if(key2==0)
              {   delayms(10);
                  if(key2==0)
                  {   nnum3++;
                      if(nnum3==24)
                      nnum3=0;
                      while(!key2);
                    }
                }
              if(key3==0)
              {   delayms(10);
                  if(key3==0)
                  {   if(nnum3==0)
                      nnum3=24;
                      nnum3--;
                      while(!key3);
                  }
               }
            }
         if(keynum4==4)
         {
                keynum4=0;
                TR0=1;
            }
        }
}


void main()
{   num3=15;num2=29;num3=0;
    nnum3=15;nnum2=30;nnum3=0;
    TMOD=0x01;
    TH0=(65536-50000)/256;
    TL0=(65536- 50000)%256;
    EA=1;
    ET0=1;
    TR0=1;
    while(1)
    {   keyscan();
        if(keynum4==0)
        {
            display(shi1,shi2,fen1,fen2,miao1,miao2);
            }
        if(keynum4!=0)
        {   display(nshi1,nshi2,nfen1,nfen2,nmiao1,nmiao2);
             }
        if(keynum1==0)
           if(num1==nnum1&num2==nnum2&num3==nnum3)
           {
                buzzer=0;
                delayms(5000);
                buzzer=1;
            }
        }
    }


void T0_time() interrupt 1
{   TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    num++;
    if(num==20)
    {
       num=0;
       num1++;
       if(num1==60)
       num1=0;
       if(num1==0)
       {
           num2++;
           if(num2==60)
           num2=0;
           if(num2==0)
           {
              num3++;
              if(num3==24)
              num3=0;
              }
        }
    }
}

-446c4dc3b99bd6e1.png (162.42 KB, 下載次數: 29)

-446c4dc3b99bd6e1.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久久久久久久久久久久 | 久久久久久久综合 | 亚洲国产成人精品在线 | 伊人久久综合 | 欧美在线高清 | 三级黄片毛片 | 国产一区三区视频 | 日韩一区二区三区av | 日韩精品中文字幕在线 | 69xxx免费| 久久久久久黄 | 欧美天堂在线观看 | 日韩在线小视频 | 在线观看av网站永久 | 成人aaa视频 | 欧美寡妇偷汉性猛交 | 精品国产1区2区3区 一区二区手机在线 | 在线视频a | 午夜精品在线 | 九七午夜剧场福利写真 | 亚洲日本一区二区 | 天堂av资源| 亚洲综合色视频在线观看 | 欧美成人a∨高清免费观看 色999日韩 | 国产伦精品一区二区三毛 | 欧美a区 | 国产电影精品久久 | 国产小视频精品 | 亚洲国产一区视频 | 中文字幕亚洲一区 | 国产一区二 | 91免费观看| 久久久妇女国产精品影视 | 欧美二区三区 | 午夜天堂 | 国产精品毛片一区二区在线看 | 国产一区二区三区视频在线观看 | 成人精品一区二区户外勾搭野战 | 日韩福利电影 | 国产精品国产a | 国产精品久久久久国产a级 欧美日韩国产免费 |