找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机60秒倒计时程序+Proteus仿真,初学者编写

[复制链接]
跳转到指定楼层
楼主
初学者,尝试做一个60S的倒计时。实验图如下;


这个程序是60S倒计时,达到0时,重新赋初值为60,继续进行减计时,循环往复。
单片机源程序如下:
  1. //60S倒计时程序
  2. #include<reg52.h>
  3. #define uchar unsigned char  
  4. #define uint unsigned int
  5. uchar temp,bai,shi,ge,num;
  6. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  7. void delay(uint z);
  8. void main()
  9. {  
  10.         temp=60;  
  11.         num=0;
  12.         P1=0x00;  
  13.         TMOD=0x01;  
  14.         TH0=(65536-55536)/256;   
  15.         TL0=(65536-55536)%256;
  16.         EA=1;  ET0=1;  TR0=1;  
  17.         while(1)
  18.         {
  19.                 shi = temp/10;
  20.                 ge = temp%10;
  21.                 P1 = 0xFD;
  22.                 P2 = table[shi];
  23.                 P1 = 0xFD;
  24.                 delay(5);
  25.                 P1 = 0xFE;
  26.                 P2 = table[ge];
  27.                 delay(5);               
  28.         }
  29. }
  30. //定时器0外部中断方式
  31. void time_0() interrupt 1
  32. {
  33.         TH0=(65536-55536)/256;   
  34.         TL0=(65536-55536)%256;
  35.         num ++;
  36.         if(num == 18)
  37.         {
  38.                 temp --;
  39.                 num = 0;
  40.                 if(temp == -1)
  41.                 {
  42.                         temp = 60;
  43.                 }
  44.         }
  45. }
  46. //延时程序
  47. void delay(uint z)
  48. {
  49.         uint x,y;
  50.         for(x=z;x>0;x--)
  51.         for(y=110;y>0;y--);
  52. }
复制代码
全部资料51hei下载地址:
60S程序+仿真.zip (87.35 KB, 下载次数: 55)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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