标题: 单片机60秒倒计时protues仿真及程序源码 [打印本页]

作者: 51黑ff    时间: 2016-9-11 23:11
标题: 单片机60秒倒计时protues仿真及程序源码

51单片机做的一个60秒的倒计时,带有proteus仿真文件,下面是源代码:
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar code table[]={0xc0,0xf9,0xa4, 0xb0,0x99,
  5. 0x92,0x82,0xf8,0x80,0x90};
  6. sbit gew=P2^1;
  7. sbit shiw=P2^0;
  8. sbit k2=P1^0;
  9. uchar num,num1=60,num2,shi,ge;
  10. void Init()                                                         //初始化子函数
  11. {
  12.         TMOD=0X01;                                                //设定定时器0的工作方式为1
  13.         TH0=(65536-50000)/256;                        //定时器装初值一个周期50ms
  14.         TL0=(65536-50000)%256;
  15.         EA=1;                                                        //开总中断
  16.         ET0=1;                                                    //开定时器0中断
  17.         TR0=1;                                                        //启动定时器0

  18. }
  19. void delay(uint xms)                                //延时子函数
  20. {
  21.         uint i,j;
  22.         for(i=xms;i>0;i--)
  23.         for(j=110;j>0;j--);
  24. }

  25. void scankey()                                                //键盘检测子函数
  26. {
  27.         if(k2==0)                                                //检测键是否被按下
  28.         {
  29.                 delay(5);                                        //延时消除抖动
  30.                 if(k2==0)                                        //重新读取k2的值
  31.                 {                                                        
  32.                         num2++;                                        //num2为按次数标志位
  33.                         while(!k2);                                //等待按键释放
  34.                         if(num2==1)                                //按键一次计时停止
  35.                            TR0=0;
  36.                         if(num2==2)                                //按键两次计时开始
  37.                         {               
  38.                                   TR0=1;
  39.                         }
  40.                 }
  41.         }
  42. }

  43. void main()                                                         //主函数
  44. {
  45.         Init();                                                         //初始化子函数调用
  46.         while(1)
  47.         {
  48.                 scankey();                                         //不断键盘扫描
  49.                 gew=1;                                                 //打开数码管个位位选                                         
  50.                 P0=table[ge];                                 //数码管个位赋值
  51.                 delay(1);                                         //延时 送入数据的反应时间
  52.                 gew=0;                                                 //关闭数码管个位位选
  53.                 delay(1);

  54.                 shiw=1;                                                  //打开数码管十位位选        
  55.                 P0=table[shi];                                  //送入数据
  56.                 delay(1);                                          
  57.                 shiw=0;                                                  //关闭数码管十位位选
  58.                 delay(1);
  59.         }
  60. }
  61. void Timer0()interrupt 1                           
  62. {
  63.         TH0=(65536-50000)/256;                          //定时器重装初值
  64.         TL0=(65536-50000)%256;
  65.         num++;
  66.         if(num==20)                                                  //定时器每进行一个周期num加1,运行20个周期即为1s
  67.         {
  68.                 num=0;                                                  //到1秒,num清0重新开始
  69.                 num1--;                                                  //倒计时1秒
  70.                 if(num1==0)
  71.                 num1=60;
  72.                 shi=num1/10;                                  //两位数分离赋给数码管十位显示
  73.                 ge=num1%10;                                          //两位数分离赋给数码管个位显示
  74.         }
  75. }
复制代码



60秒倒计时程序及protues仿真.rar

57.59 KB, 下载次数: 451, 下载积分: 黑币 -5


作者: caohhh    时间: 2016-11-15 22:43
赞,试一下
作者: luixng    时间: 2017-6-15 15:10
谢谢,正好需要这个,学习了!!!
作者: luixng    时间: 2017-6-15 15:10
谢谢了
作者: 348652560    时间: 2017-6-15 17:08
谢谢分享!收藏了!
作者: 代码黄校长    时间: 2017-7-10 19:22
程序 能解释下什么意思吗
作者: 12323ff    时间: 2017-11-16 17:24
厉害啦

作者: 低头看云    时间: 2017-12-3 22:33
厉害666666
作者: 渤海老李    时间: 2017-12-4 08:16
不错不错,正需要呢
作者: oldoldpotato    时间: 2018-1-8 13:53
需要需要
作者: HTD    时间: 2018-1-8 19:55
为什么只能暂停一次啊
作者: HTD    时间: 2018-1-8 19:57
为什么只能暂停一次啊
作者: zx835243202    时间: 2018-1-9 23:54
谢谢啦,正常需要
作者: Gently    时间: 2018-6-13 20:07
大神你好打扰了,这个代码有没有汇编语言版的呀?就是CODE SEGMENT  CODE ENDS END START 这种格式的,如果方便的话能不能行行好,没学这种的。谢谢
作者: WIZZARH    时间: 2018-7-1 00:36
赞,试一下
作者: Elliott    时间: 2018-7-22 14:32
很好的贴子,必须顶!!!
作者: 金字    时间: 2018-9-16 12:00
顶正需要谢谢
作者: zzz1997    时间: 2018-10-16 16:57
很强势
作者: 噗噗噗p    时间: 2018-10-18 10:12
正好在学习有关内容,感谢楼主帮大忙
作者: 风之祉    时间: 2018-10-27 15:00
caohhh 发表于 2016-11-15 22:43
**** 作者被禁止或删除 内容自动屏蔽 ****

黑币你有吗

作者: 快乐眼泪    时间: 2018-10-27 19:08
感谢楼主分享
作者: feiji666    时间: 2018-11-9 10:28
请教了,感谢
作者: jifengjianwu    时间: 2018-11-9 20:42
这个真挺好的先收藏慢慢研究研究,谢谢楼主
作者: sponsor    时间: 2018-11-9 23:52
谢谢楼主的无私奉献
作者: 且战且走    时间: 2019-4-3 20:26
能加个报警蜂鸣器吗

作者: wilson0312    时间: 2019-5-29 23:48
大佬厉害,学习一下。
作者: 和GV    时间: 2019-6-18 08:47
很棒啊,赞一个
作者: 625028386    时间: 2019-7-16 21:53
为什么我这个它不现实,只显示一部分。
作者: 625028386    时间: 2019-7-17 10:21
为什么我这个它不现实,只显示一部分。
作者: 小萧萧    时间: 2019-7-17 11:09
不错哦
作者: jemery1030    时间: 2019-7-17 12:47
感謝分享
作者: Black!    时间: 2019-11-2 13:22
非常好
作者: 张力力    时间: 2019-11-3 18:23
非常不错,用处很大
作者: 836219677    时间: 2019-11-3 20:58
单片机大佬  真的很实用
作者: HWL0541    时间: 2019-11-4 11:14
要是能调节倒计时时间就好了
作者: rtgvb    时间: 2020-4-9 10:21
谢谢!
作者: rawi    时间: 2020-4-20 15:16
学习了。谢谢
作者: 龙龙爱吃炸鸡    时间: 2020-5-18 15:08
很给力,给我这个单片机小白很多启发
作者: Guab    时间: 2020-5-30 18:57
很厉害,笔心!
作者: 斤斤计较2    时间: 2020-6-8 09:13
非常给力
作者: 1518866413    时间: 2020-6-27 14:12
修改预设值,产生 12MHz 情况下的最高频率波形。  扩展要求(修改电路):固定的脉冲频率 CLK(1KHz,暂指定频率,实未知,目的 是为了方便结果验证)从 T0 端输入,利用定时器 0 测量 CLK 的频率值,显示结 果,并相应修改程序,实现自设功能。  扩展要求(测量电路):对 P1.1 引脚输出的信号频率、周期、占空比、幅值进行 测量,波形记录。要实现这些功能需要怎么修改
作者: 1969588724    时间: 2020-7-28 08:34
348652560 发表于 2017-6-15 17:08
谢谢分享!收藏了!

,正好需要这个,学习了!!!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1