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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于單片機24秒倒計時添加按鍵控制程序的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:421426 發表于 2019-1-23 10:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我寫了一個24秒倒計時的程序    想添加按鍵去控制暫停  繼續    等功能    我應該把按鍵程序添加在什么位置    該怎么去寫
這是我的程序:

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit dula=P2^6;
  5. sbit wela=P2^7;
  6. sbit key1=P3^4;
  7. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  8.                                         0x7f,0x6f,0x40};
  9. uchar code tablefen[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  10.                                         0x7f,0x6f};
  11. uchar code tablemiao[]={0x3f,0x7d,0x6f,0x4f,0x7d,0x6f,0x4f,0x7d,0x6f};
  12. uchar num,num1,num2,num3,ge,shi,fen,miao;
  13. void delayms(uint);
  14. void display(uchar,uchar);
  15. void display1(uchar,uchar);
  16. void main()
  17. {
  18.         dula=1;
  19.         P0=table[2];
  20.         dula=0;

  21.         P0=0xff;

  22.         wela=1;
  23.         P0=0xfe;
  24.         wela=0;

  25.         delayms(1);

  26.         dula=1;
  27.         P0=table[4];
  28.         dula=0;

  29.         P0=0xff;

  30.         wela=1;
  31.         P0=0xfd;
  32.         wela=0;

  33.         delayms(1);

  34.         dula=1;
  35.         P0=table[10];
  36.         dula=0;

  37.         P0=0xff;

  38.         wela=1;
  39.         P0=0xfb;
  40.         wela=0;

  41.         delayms(1);

  42.         dula=1;
  43.         P0=table[10];
  44.         dula=0;

  45.         P0=0xff;

  46.         wela=1;
  47.         P0=0xf7;
  48.         wela=0;

  49.         delayms(1);        

  50.         dula=1;
  51.         P0=table[0];
  52.         dula=0;

  53.         P0=0xff;

  54.         wela=1;
  55.         P0=0xef;
  56.         wela=0;

  57.         delayms(1);

  58.         dula=1;
  59.         P0=table[0];
  60.         dula=0;

  61.         P0=0xff;

  62.         wela=1;
  63.         P0=0xdf;
  64.         wela=0;

  65.         delayms(1);        

  66.         num1=24;
  67.         shi=2;
  68.         ge=3;
  69.         fen=0;
  70.         miao=0;
  71.         TMOD=0x11;
  72.         TH0=(65536-45872)/256;
  73.         TL0=(65536-45872)%256;
  74.         TH1=(65536-45872)/256;
  75.         TL1=(65536-45872)%256;
  76.         EA=1;
  77.         ET0=1;
  78.         ET1=1;
  79.         TR0=1;
  80.         TR1=1;
  81.         while(1)
  82.         {
  83.                                                 display1(fen,miao);
  84.                                                 display(shi,ge);                                       
  85.         }
  86. }

  87. void display(uchar shi, uchar ge)
  88. {
  89.         dula=1;
  90.         P0=table[shi];
  91.         dula=0;

  92.         P0=0xff;

  93.         wela=1;
  94.         P0=0xfe;
  95.         wela=0;

  96.         delayms(1);

  97.         dula=1;
  98.         P0=table[ge];
  99.         dula=0;

  100.         P0=0xff;

  101.         wela=1;
  102.         P0=0xfd;
  103.         wela=0;
  104.         delayms(1);

  105.         dula=1;
  106.         P0=table[10];
  107.         dula=0;

  108.         P0=0xff;

  109.         wela=1;
  110.         P0=0xfb;
  111.         wela=0;

  112.         delayms(1);

  113.         dula=1;
  114.         P0=table[10];
  115.         dula=0;

  116.         P0=0xff;

  117.         wela=1;
  118.         P0=0xf7;
  119.         wela=0;

  120.         delayms(1);

  121. }
  122. void display1(uchar fen,uchar miao)
  123. {
  124.         
  125.         dula=1;
  126.         P0=tablefen[fen];
  127.         dula=0;

  128.         P0=0xff;

  129.         wela=1;
  130.         P0=0xef;
  131.         wela=0;

  132.         delayms(1);

  133.         dula=1;
  134.         P0=tablemiao[miao];
  135.         dula=0;

  136.         P0=0xff;

  137.         wela=1;
  138.         P0=0xdf;
  139.         wela=0;

  140.         delayms(1);        
  141. }
  142. void delayms(uint xms)
  143. {
  144.         uint i,j;
  145.         for(i=xms;i>0;i--)
  146.                 for(j=110;j>0;j--);
  147. }
  148. void exter1() interrupt 3
  149. {
  150.         TH1=(65536-45872)/256;
  151.         TL1=(65536-45872)%256;        
  152.         num2++;
  153.         if(num2==2)
  154.                 {
  155.                         num2=0;
  156.                         if(fen==0)
  157.                         fen=9;
  158.                         if(miao==0)
  159.                         miao=9;
  160.                         fen--;
  161.                         miao--;
  162.                 }
  163. }
  164. void exter0() interrupt 1
  165. {
  166.         TH0=(65536-45872)/256;
  167.         TL0=(65536-45872)%256;
  168.         num++;        
  169.         if(num==20)
  170.         {
  171.                 num=0;
  172.                 num1--;
  173.                 if(num1==0)
  174.                         {
  175.                                 P1=0xfe;
  176.                                 delayms(50);
  177.                                 P1=0xff;
  178.                         }
  179.                 if(num1==0)
  180.                 num1=23;
  181.                 shi=num1/10;
  182.                 ge=num1%10;
  183.         }
  184. }
復制代碼


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

使用道具 舉報

沙發
ID:84765 發表于 2019-1-23 15:22 | 只看該作者
在定制器那里添加判斷就可以實現暫停繼續,這么說應該明白了吧,就是把定制器里的num和num2的計時停了就達到了你想要的效果了!

評分

參與人數 1黑幣 +5 收起 理由
坐在分頭調戲鬼 + 5

查看全部評分

回復

使用道具 舉報

板凳
ID:213173 發表于 2019-1-23 22:16 | 只看該作者
給你改成單鍵控制開始、暫停、繼續的24秒倒計時。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit key1=P3^4;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
                                                        0x7d,0x07,0x7f,0x6f,0x40};
uchar num=0,miao=0;
bit zantin=0;
void delayms(uint);
void keyscan();       
void display();

void main()
{
        TMOD=0x01;
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        EA=1;
        ET0=1;
        TR0=1;

        while(1)
        {
                keyscan();
                display();
        }
}
/***********按鍵掃描程序****************/
void keyscan()       
{
        static uint count1=0;        //計數變量                       
        static bit key_sign=0;                                        //按鍵狀態標志
        if(key1==0)                                //檢測輸入如果為0
        {
                count1++;                                        //計數延時消抖
                if((count1>=50)&&(key_sign==0))//檢測按鍵如果為0
                {                       
                        key_sign=1;                //按鍵狀態標志置1,防止重復響應
                        if(miao==0)//開始倒計時
                        {
                                num=0;
                                miao=24;
                                zantin=1;
                        }
                        else zantin=~zantin;        //暫停/繼續
                }
        }
        else
        {
                count1=0;                                //計數變量清0
                key_sign=0;                                //按鍵狀態標志清0
        }
}
void display()
{
        P0=0x00;
        dula=1;
        dula=0;

        P0=0xfe;
        wela=1;
        wela=0;
       
        P0=table[miao/10];
        dula=1;
        dula=0;
        delayms(1);
       
        P0=0x00;
        dula=1;
        dula=0;

        P0=0xfd;
        wela=1;
        wela=0;

        P0=table[miao%10];
        dula=1;
        dula=0;
        delayms(1);        
}
void delayms(uint xms)
{
        uint i,j;
        for(i=xms;i>0;i--)
                for(j=110;j>0;j--);
}

void exter0() interrupt 1
{
        TH0=(65536-45872)/256;
        TL0=(65536-45872)%256;
        if(zantin==1)      
        {
                num++;
                if(num==20)
                {
                        num=0;
                        if(miao>0)
                                miao--;
                }
        }
}

評分

參與人數 1黑幣 +10 收起 理由
坐在分頭調戲鬼 + 10 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:421426 發表于 2019-1-24 15:00 | 只看該作者
wulin 發表于 2019-1-23 22:16
給你改成單鍵控制開始、暫停、繼續的24秒倒計時。
#include
#define uchar unsigned char

謝謝你的幫助
回復

使用道具 舉報

5#
ID:666627 發表于 2019-12-17 20:28 | 只看該作者
樓主在嗎,這程序我也想用,能把原理圖發給我一下嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人av看片| 天天插天天操 | 盗摄精品av一区二区三区 | 91视视频在线观看入口直接观看 | 亚洲精品二区 | 欧美日韩久久精品 | 一级黄a | 男女黄网站| 国产日韩欧美另类 | 99精彩视频 | 欧美精品在线观看 | 亚洲免费网址 | 日本免费一区二区三区四区 | 国产亚洲精品久久久久动 | 国产精品日本一区二区不卡视频 | 欧洲一区二区视频 | 91视视频在线观看入口直接观看 | 亚洲成人免费视频在线观看 | 91中文字幕 | 国产精品一区视频 | 在线观看中文字幕一区二区 | 日韩成人在线免费视频 | 久热国产精品视频 | 天天操天天射天天舔 | 精品视频导航 | 国产伦精品一区二区 | 久久午夜精品福利一区二区 | 99久9 | 欧美成人精品一区二区男人看 | 亚洲欧美日韩电影 | 国产二区三区 | www久久久 | 麻豆久久久久 | 国产日韩精品久久 | 91在线区| 欧美日韩在线观看视频 | 伊人久久一区二区 | 久久久久国产一区二区三区四区 | 精品小视频 | 97在线观看 | 免费精品|