找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4874|回复: 3
收起左侧

单片机60分钟100秒倒计时Proteus仿真程序

[复制链接]
ID:304996 发表于 2020-3-30 23:01 | 显示全部楼层 |阅读模式
60分钟100秒倒计时,数码管实现。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png

单片机源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. uchar u,j,sum,qian,bai,shi,ge;
  5. char fen,miao;
  6. uchar code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  7. uchar code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};

  8. sbit wei1=P2^3;
  9. sbit wei2=P2^2;
  10. sbit wei3=P2^1;
  11. sbit wei4=P2^0;



  12. sbit k5=P1^4;                   // 复位
  13. sbit k6=P1^5;                  //暂停或继续



  14. sbit duan=P3^2;

  15.   void delay(uint z)
  16. {
  17.         uint x,y;
  18.         for(x=z;x>0;x--)
  19.                 for(y=110;y>0;y--);
  20. }
  21. void dsq();//定时器

  22. void anjian()                                        //按键子函数
  23. {
  24.   if(k6==0)                                        //开始、复位
  25.         {                                                       
  26.              delay(10);
  27.          if(k6==0)
  28.          {
  29.                 EA=!EA;
  30.                                           
  31.              }
  32.              while(!k6);
  33.                  delay(10);
  34.                  while(!k6);
  35.          }



  36.           if(k5==0)                                  
  37.          {
  38.              delay(10);
  39.                   if(k5==0)
  40.                  {
  41.                            fen=60;
  42.                            miao=99;   
  43.                  }
  44.              while(!k5);
  45.                  delay(10);
  46.                  while(!k5);
  47.          }


  48. }
  49. void display()                                                           //显示子程序
  50. {
  51.             wei1=0;
  52.                         duan=1;
  53.                         P0=table[ge];
  54.                         duan=0;
  55.                         delay(3);
  56.                         wei1=1;
  57.                
  58.                         wei2=0;
  59.                         duan=1;
  60.                         P0=table[shi];
  61.                         duan=0;
  62.                         delay(3);
  63.                         wei2=1;

  64.                         wei3=0;
  65.                         duan=1;
  66.                         P0=table1[bai];
  67.                         duan=0;
  68.                         delay(3);
  69.                         wei3=1;

  70.                         wei4=0;
  71.                         duan=1;
  72.                         P0=table[qian];
  73.                         duan=0;
  74.                         delay(3);
  75.                         wei4=1;

  76.                                            
  77. }
  78. void main()
  79. {
  80.     dsq();
  81.     fen=60;
  82.           miao=0;
  83.        

  84.         while(1)
  85.         {
  86.                    anjian();
  87.                  display();
  88.                  if(u==20)
  89.         {
  90.                 u=0;
  91.                 qian=fen/10;
  92.                 bai=fen%10;
  93.                 shi=miao/10;
  94.                 ge=miao%10;
  95.                 miao--;
  96.                
  97.         }
  98.                 if(miao==-1)
  99.                 {
  100.                         miao=99;
  101.                         fen--;
  102.                 }
  103.                 if(fen==-1)
  104.                 {
  105.                 fen=60;
  106.                 miao=0;
  107.                 }
  108.                
  109.                
  110.         }               
  111. }



  112. void T0_time() interrupt 1
  113. {
  114.      TH0=(65536-50000)/256;
  115.          TL0=(65536-50000)%256;
  116.          u++;
  117.          
  118. }
  119. void dsq()//定时器
  120. {
  121.         TMOD=0X11;
  122.         TH0=(65535-50000)/256;
  123.         TL0=(65535-50000)%256;
  124.         EA=1;
  125.         ET0=1;
  126.         TR0=1;
  127. }       
复制代码

所有资料51hei提供下载:
60分钟100秒倒计时仿真.rar (119.61 KB, 下载次数: 71)
回复

使用道具 举报

ID:732530 发表于 2020-5-2 16:49 | 显示全部楼层
为啥74HC573的输出电平没变化
回复

使用道具 举报

ID:732530 发表于 2020-5-2 17:00 | 显示全部楼层
为什么573的输出引脚的电平没有变化啊
回复

使用道具 举报

ID:784816 发表于 2020-6-20 11:12 | 显示全部楼层
573输出引脚没有变化
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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