找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7287|回復(fù): 3
收起左側(cè)

求大神修改成數(shù)碼管倒計時60秒

[復(fù)制鏈接]
ID:338427 發(fā)表于 2018-5-31 15:09 | 顯示全部樓層 |閱讀模式
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit shiw=P2^0;
sbit gew=P2^1;
uchar code digit[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xff};
uchar num,num2,shi,ge;
void delayms(uint xms)
{
   uint i,j;
        for(i=xms;i>0;i--)
           for(j=110;j>0;j--);
}
void display()
{
   P2=0xff;
        P1=digit[shi];
        shiw=0;
        delayms(5);

    P2=0xff;
        P1=digit[ge];
        gew=0;
        delayms(5);
}
void main()
{
   TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
        {
           display();
        }
}
void T1_time() interrupt 1
{
   TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        num2++;
        if(num2==20)
        {
           num2=0;
                num++;
                if(num==60)
                   num=0;
                shi=num/10;
                ge=num%10;
        }
}


回復(fù)

使用道具 舉報

ID:160834 發(fā)表于 2018-5-31 16:36 | 顯示全部樓層
按你的程序,已修改成倒計時。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit shiw=P2^0;
sbit gew=P2^1;
uchar code digit[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xff};
uchar num,num2,shi,ge;
void delayms(uint xms)
{
   uint i,j;
        for(i=xms;i>0;i--)
           for(j=110;j>0;j--);
}
void display()
{
   P2=0xff;
        P1=digit[shi];
        shiw=0;
        delayms(5);
    P2=0xff;
        P1=digit[ge];
        gew=0;
        delayms(5);
}
void main()
{
   TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
       num=60;  //兩位數(shù)顯示,這里最大是99
       shi=num/10;  
       ge=num%10; //這兩句用于開始就顯示設(shè)定的數(shù)值。
        while(1)
        {
           display();
        }
}
void T1_time() interrupt 1
{
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
        num2++;
        if(num2==20)
        {
           num2=0;
                num--;  //這里依次減數(shù)
                if(num==0)  //當(dāng)數(shù)值減至0時
                   num=60;  //重新賦值  跟初始值一樣就可
                shi=num/10;
                ge=num%10;
        }
}

評分

參與人數(shù) 2黑幣 +94 收起 理由
admin + 90 回帖助人的獎勵!
wenzedong + 4 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:155507 發(fā)表于 2018-5-31 17:58 | 顯示全部樓層
請參考下靣程序看看

  1. //修改成數(shù)碼管倒計時60秒
  2. #include<reg51.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int

  5. sbit shiw=P2^0;
  6. sbit gew =P2^1;
  7. uchar code digit[11]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xff};
  8. uchar num=60,num2,shi,ge; //修改

  9. void delayms(uint xms)
  10. {
  11.         uint i,j;
  12.         for(i=xms;i>0;i--)
  13.         for(j=110;j>0;j--);
  14. }

  15. void display()
  16. {
  17.         P2=0xff;
  18.         P1=digit[shi];
  19.         shiw=0;
  20.         delayms(5);

  21.         P2=0xff;
  22.         P1=digit[ge];
  23.         gew=0;
  24.         delayms(5);
  25. }

  26. void main()
  27. {
  28.         TMOD=0x01;
  29.         TH0=(65536-50000)/256;
  30.         TL0=(65536-50000)%256;
  31.         EA=1;
  32.         ET0=1;
  33.         TR0=1;
  34.         while(1)
  35.         {
  36.                 display();
  37.         }
  38. }

  39. void T1_time() interrupt 1
  40. {
  41.         TH0=(65536-50000)/256;
  42.         TL0=(65536-50000)%256;
  43.         num2++;
  44.         if(num2==20)
  45.         {
  46.                 num2=0;
  47.                 num--; //修改
  48.                 if(num==0) //修改
  49.                 num=60; //修改
  50.                 shi=num/10;
  51.                 ge=num%10;
  52.         }
  53. }


復(fù)制代碼

評分

參與人數(shù) 1黑幣 +60 收起 理由
admin + 60 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:111634 發(fā)表于 2018-6-1 07:21 | 顯示全部樓層
實例96  能預(yù)置初值的倒計時秒表
Proteus仿真一下,確認(rèn)有效。
實例96 能設(shè)置初值的倒計時秒表.rar (40 KB, 下載次數(shù): 18)
能預(yù)置初值的倒計時秒表.jpg
以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計實例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實驗操作,書中電路和程序設(shè)計有詳細(xì)說明,電路與程序真實可靠可信可行,程序語句條條有注解。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表