找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6145|回复: 3
打印 上一主题 下一主题
收起左侧

求大神修改成数码管倒计时60秒

[复制链接]
跳转到指定楼层
楼主
#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;
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:160834 发表于 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;  //两位数显示,这里最大是99
       shi=num/10;  
       ge=num%10; //这两句用于开始就显示设定的数值。
        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==0)  //当数值减至0时
                   num=60;  //重新赋值  跟初始值一样就可
                shi=num/10;
                ge=num%10;
        }
}

评分

参与人数 2黑币 +94 收起 理由
admin + 90 回帖助人的奖励!
wenzedong + 4 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:155507 发表于 2018-5-31 17:58 | 只看该作者
请參考下靣程序看看

  1. //修改成数码管倒计时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. }


复制代码

评分

参与人数 1黑币 +60 收起 理由
admin + 60 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:111634 发表于 2018-6-1 07:21 | 只看该作者
实例96  能预置初值的倒计时秒表
Proteus仿真一下,确认有效。
实例96 能设置初值的倒计时秒表.rar (40 KB, 下载次数: 18)

以上摘自张志良编著《80C51单片机仿真设计实例教程——基于Keil CProteus》清华大学出版社ISBN 978-7-302-41682-1内有常用的单片机应用100案例,用于仿真实验操作,书中电路和程序设计有详细说明,电路与程序真实可靠可信可行,程序语句条条有注解。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表