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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機粗略60s倒計時數碼管顯示求教

[復制鏈接]
跳轉到指定樓層
樓主
ID:720329 發表于 2020-4-26 23:37 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
目前還沒有學習定時中斷,所以只能是粗略的60s倒計時數碼管顯示,下面是我自己編的程序,沒有預期現象,還請各位大佬幫忙瞅瞅,感謝!
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
void display(uint ge,uint shi);
void delay(uint z)
{
        uint a,b;
        for(a=z;a>0;a--)
        for(b=120;b>0;b--);
}
uchar table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint c,n,i,ge,shi;
sbit k1=P1^0;
void main()
{
        while(1)
        {
                c=0;
                n=60;
                if(k1==0) {c=1;}
                if(k1==0) delay(10);
                if(c==1)
                {
                        for(i=60;i>0;i--)
                        {
                        n- -;
                        display(ge,shi);//調用顯示子函數
                        delay(1000);//延時一秒
                        }
                        if(n==0) n=0;
                        }
                }
    }
}
void display(uint ge,uint shi)//顯示子函數
{
        ge=n%10;
        shi=n/10;
        P2=0xfe;
        P1=table1[ge];
        delay(5);
        P2=0xfd;
        P1=table1[shi];
        delay(5);
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:342451 發表于 2020-4-26 23:58 | 只看該作者
那就去學定時器,用軟件延時函數太粗略了,或者用延時函數計算工具,計算出大概比較精確的延時函數,自己一點一點試,比較不好
回復

使用道具 舉報

板凳
ID:720329 發表于 2020-4-27 07:31 來自手機 | 只看該作者
拜托了各位,這個是我們師傅布置的任務,不用中斷定時怎么做
回復

使用道具 舉報

地板
ID:332444 發表于 2020-4-27 09:27 | 只看該作者
用不用中斷都一樣,都是延時而已。可參https://blog.csdn.net/xianfajush ... rank_v2~rank_v25-19
回復

使用道具 舉報

5#
ID:213173 發表于 2020-4-27 14:11 | 只看該作者
用控制主循環周期的60s倒計時程序示例+仿真


  1. #include <reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit k1=P3^0;
  5. uchar table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  6. uint n;
  7. uchar c=0,i=0,sec=0;
  8. bit j;
  9. void delay(uint z)
  10. {
  11.         uint a,b;
  12.         for(a=z;a>0;a--)
  13.                 for(b=119;b>0;b--);
  14. }

  15. void display()//顯示子函數
  16. {
  17.         P1=0x00;//消隱
  18.         P2=0xfe;//送個位位碼
  19.         P1=table1[sec%10];//送個位段碼
  20.         delay(1);//延時一毫秒
  21.         P1=0x00;//消隱
  22.         P2=0xfd;//送十位位碼
  23.         P1=table1[sec/10];//送十位段碼
  24.         delay(1);//延時一毫秒
  25. }

  26. void main()
  27. {
  28.         while(1)//主循環周期約2ms
  29.         {               
  30.                 if(k1==0)
  31.                 {
  32.                         if(++i==10 && j==0)//計數消抖與判斷按鍵狀態
  33.                         {
  34.                                 j=1;//記憶按鍵狀態
  35.                                 c++;
  36.                                 if(c==1)//開始倒計時
  37.                                 {
  38.                                         sec=60;
  39.                                         n=0;
  40.                                 }
  41. //                                if(c==2)//暫停
  42.                                 if(c==3)//清0
  43.                                 {
  44.                                         c=0;       
  45.                                         sec=0;
  46.                                 }
  47.                         }
  48.                 }
  49.                 else //按鍵松手
  50.                 {
  51.                         i=0;
  52.                         j=0;
  53.                 }
  54.                 if(c==1)//允許倒計時
  55.                 {
  56.                         n++;
  57.                         if(n>=500)//1秒
  58.                         {
  59.                                 n=0;
  60.                                 if(sec>0)
  61.                                         sec--;
  62.                                 if(sec==0)
  63.                                         c=0;
  64.                         }
  65.                 }
  66.                 display();//調用顯示子函數
  67.         }
  68. }
復制代碼





回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一二三 | 国产精品精品视频一区二区三区 | 欧美www在线| 精品国产区 | 国产精品99 | 亚洲精品白浆高清久久久久久 | 国产精品一区二区三区久久久 | 亚洲精品日韩精品 | 青草青草久热精品视频在线观看 | 久久精品欧美一区二区三区不卡 | 久久88 | 国产精品久久久久久久久图文区 | 狠狠综合久久av一区二区老牛 | 精品自拍视频在线观看 | 高清色| 欧美网站一区 | 一区二区在线不卡 | 中日韩av| 一级毛片黄片 | 中文字幕一区二区三区不卡 | 四虎影院欧美 | 精品中文字幕一区二区三区 | 99热国产在线播放 | 久久91精品国产 | 日韩电影免费在线观看中文字幕 | 午夜精品一区二区三区免费视频 | 欧美一区二区激情三区 | 天天亚洲| 午夜私人影院 | 国产精品爱久久久久久久 | 三级视频网站 | 日日夜夜精品免费视频 | 国产亚洲精品一区二区三区 | 国产精品1区 | 久久手机视频 | 精品国产91亚洲一区二区三区www | 中文字幕精品一区 | 伊人天堂网 | 亚洲风情在线观看 | 欧美色欧美亚洲另类七区 | 一级毛片视频在线观看 |