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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

秒表計時器 在key1第一次按下,顯示器會停,二次按下,為何顯示管會延時1-2...

[復制鏈接]
跳轉到指定樓層
樓主
ID:65930 發表于 2014-10-2 12:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  • #include<reg52.h>
    #define uint unsigned int
    #define uchar unsigned char
    void display(uchar bai,uchar shi,uchar ge);
    void delay(uint z);
    void init();
    sbit du=P2^6;
    sbit we=P2^7;
    sbit key=P3^4;
    sbit key1=P3^5;
    sbit key3=P3^7;
    uchar code table[]={0x3f  , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
    0x7d , 0x07 , 0x7f  , 0x6f , 0x77 , 0x7c ,0x39 , 0x5e , 0x79 , 0x71 , 0x00};
    uchar t,a,bai,shi,ge,flag;
    uint temp;
    void main()               
    {  init();
       while(1)
       {  
            if(a==2)
               { a=0;
                     if(key==1)
                         { delay(2);
                             if(key==1)
                                    {
                                        temp++;
                                        if(temp==999)
                                       temp=0;
                                     bai=temp/100;
                                       shi=temp/10%10;
                                 ge=temp%10;
          
                                      }
                                  }
                          }
      display(bai,shi,ge);
         if (flag==0)
      {while(key1==0)
              {      
               TR0=0;
               flag=1;
                 display(bai,shi,ge);
               }
      }
    if(flag==1)
      {    while(key1==0)
             {TR0=1;
             flag=0;
             }
      }
      if(key3==0)
      {
        temp=0;
        bai=temp/100;
         shi=temp/10%10;
         ge=temp%10;
        display(bai,shi,ge);
        }
       }
    }
    void delay (uint z)
    {uint i,j;
    for(i=z;i>0;i--)
    for(j=110;j>0;j--);
    }
    void display(uchar bai,uchar shi,uchar ge)
    {   du=1;
    P0=table[bai];
    du=0;
    P0=0xff;
    we=1;
    P0=0xfe;
    we=0;
    delay(1);
    du=1;
    P0=table[shi];
    du=0;
    P0=0xff;
    we=1;
    P0=0xfd;
    we=0;
    delay(1);
    du=1;
    P0=table[ge];
    du=0;
    P0=0xff;
    we=1;
    P0=0xfb;
    we=0;
    delay(1);
    }
    void init()
    {du=0;
    we=0;
    t=0;
    TMOD=0x01;
    TH0=(65536-5000)/256;
    TL0=(65536-5000)%256;
    EA=1;
    ET0=1;
    TR0=1;  
    flag=0;
    }
    void timer0() interrupt 1
    {TH0=(65536-5000)/256;
    TL0=(65536-5000)%256;
    a++;
    }





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

使用道具 舉報

沙發
ID:65930 發表于 2014-10-2 12:39 | 只看該作者
要求按下key1后,數碼管顯示停止,再按下key1后,數碼管顯示繼續計數
回復

使用道具 舉報

板凳
ID:19715 發表于 2014-10-2 17:44 | 只看該作者
本帖最后由 明白 于 2014-10-2 18:33 編輯

數碼管的個位是顯示0.01秒,很快!!
定時器中斷周期小(5ms),而在取個十百,這三個位值太消耗時間了,
三位數碼管顯示一遍也需要幾個毫秒,
當按下按鍵之后,定時器是停止了(temp固定了),
但是數碼管顯示內容仍然是1、2個中斷周期之前的數值,
也就是當前(個十百)的三個位值,不是當前temp轉換過來的
主程序干嘛要兩次調用display();

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 蜜臀网 | 欧美久久久网站 | 久久婷婷国产麻豆91 | 在线视频久久 | 一区二区在线不卡 | www.99热 | 免费成人在线网站 | 91伊人| www.中文字幕| 欧美美女爱爱视频 | 小早川怜子xxxxaⅴ在线 | 欧美国产日韩在线 | 欧美成人手机视频 | h片在线观看免费 | 欧美一区二区三区大片 | 日本在线视频一区二区 | 91久久爽久久爽爽久久片 | 亚洲一区二区三区在线视频 | 日日夜夜av | 国产一区中文字幕 | 欧美一级在线观看 | 国产一区二 | 国产成人精品久久 | 亚洲午夜精品一区二区三区 | 日韩在线中文 | www日| 天天操夜夜爽 | 亚洲精品一二三区 | 中文字幕高清 | 全免费a级毛片免费看视频免 | 影音先锋亚洲资源 | 一区观看 | 日韩精品一区二区在线观看 | 亚洲一av| 欧美日韩亚洲一区 | 国产精品久久久久影院色老大 | 国产精品国产a级 | 亚洲精美视频 | 69热视频在线观看 | 在线观看免费黄色片 | 中文字幕第十一页 |