欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機時分秒的暫停和加

[復制鏈接]
跳轉到指定樓層
樓主
ID:477243 發表于 2019-2-16 20:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit S1=P2^2;
sbit S2=P2^3;
sbit S3=P2^4;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key3=P3^2;
sbit key4=P3^3;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c};
void delayms(uint);
uchar num,num1,num2,num3,shi,ge,shi1,ge1,shi2,ge2;                  
void delayms(uint xms)
{
        uint i,j;
                for(i=xms;i>0;i--)
                   for(j=110;j>0;j--);
}

void display(uchar num1s,uchar num2s,uchar num3s )
{           shi2=num3s/10;
           ge2=num3s%10;
           shi1=num2s/10;
           ge1=num2s%10;
           shi=num1s/10;
           ge=num1s%10;

      S1=0;                  
          S2=0;
          S3=0;
          P0=table[ge];
          delayms(2);
          P0=0;
           
          S1=1;
          S2=0;
          S3=0;
          P0=table[shi];
          delayms(2);
          P0=0;

          S1=0;
          S2=1;
          S3=0;
          P0=0x40;
          delayms(2);
          P0=0;

          S1=1;
          S2=1;
          S3=0;
          P0=table[ge1];
          delayms(2);
          P0=0;

      S1=0;
          S2=0;
          S3=1;
          P0=table[shi1];
          delayms(2);
          P0=0;

          S1=1;
          S2=0;
          S3=1;
          P0=0x40;
          delayms(2);
          P0=0;

          S1=0;
          S2=1;
          S3=1;
          P0=table[ge2];
          delayms(2);
          P0=0;

          S1=1;
          S2=1;
          S3=1;
          P0=table[shi2];
          delayms(2);
          P0=0;
}
void init()
{
  TMOD=0x11;
        TH0=(65536-45872)/256;
        TL0=(65536-45872)/256;
        TH1=(65536-45872)/256;
        TH1=(65536-45872)/256;
    EA=1;
        ET0=1;
        TR0=1;
}
void keyscan()
{
      if(key1==0)
          {
          delayms(2);
          if(key1==0)
          {
          num1++;
          if(num1==60)
          {
          num1=0;
          }
          while(!key1);
          }
          }
          if(key2==0)
          {
          delayms(2);
          if(key2==0)
          {
          num2++;
          if(num2==60)
          {
          num2=0;
          }
          while(!key2);
          }
          }
          if(key3==0)
          {
          delayms(2);
          if(key3==0)
          {
          num3++;
          if(num3==24)
          {
          num3=0;
          }
          while(!key3);
          }
          }        
          if(key4==0)
          {
           delayms(2);
           if(key4==0)
           {
           while(!key4);
           TR0=~TR0;
           }
           }
          }
void main()
{
           init();
        while(1)
        {
           
                 keyscan();
            display(num1,num2,num3);
        }
}
void T0_time()interrupt 1
{
    TH0=(65536-45872)/256;
        TL0=(65536-45872)/256;
        num++;
        if(num==20)
        {
           num=0;
           num1++;
           if(num1==60)
           {
              num1=0;
                  num2++;
                  if(num2==60)
                  {
                     num2=0;
                         num3++;
                         if(num3==24)
                         {
                         num3=0;        
                 }
           }
           }
           }
         
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:303383 發表于 2019-2-17 09:23 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

板凳
ID:164602 發表于 2019-2-17 14:55 | 只看該作者
應該不是有問題,而是成功的一個例子。呵呵
K1——秒加,K2——分加,K3——時加,K4——暫停和啟動
不過嘛,我倒是有點問題:
1、不暫停也是可以加的,暫停有什么用呢?
2、按鍵消抖——我一直按著,就沒顯示啦——需要容錯
3、定時器中斷中的語句太多,定時不太準——這個有點“吹毛求疵”
回復

使用道具 舉報

地板
ID:158375 發表于 2019-2-18 09:14 | 只看該作者
起碼,樓主還不知道軟件的結構。
回復

使用道具 舉報

5#
ID:474677 發表于 2019-2-18 11:43 | 只看該作者
HC6800-ES-V2.0 發表于 2019-2-17 14:55
應該不是有問題,而是成功的一個例子。呵呵
K1——秒加,K2——分加,K3——時加,K4——暫停和啟動
不過 ...

我覺得他這個應該是準備做定時器應用的,而不是做時鐘用,否則秒加是沒有多大意義的,K4暫停啟動是為停止和啟動定時器而準備,這段代碼還屬于初級功能驗證階段
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表