找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机10秒的秒表程序

[复制链接]
跳转到指定楼层
楼主
ID:121252 发表于 2016-5-16 19:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10秒的秒表 源程序,分析、学习使用
转自:http://www.51hei.com/mcu/2184.html


  1. #include <reg51.h>
  2. unsigned char code seg7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f} //数码管码表
  3. unsigned char code tab[]={0xfe,0xfd};                                                                     //数码管位选
  4. unsigned char cnt=0;                                                                                               //位选变量
  5. unsigned char deta=0,sec=0;                                                                                  //0.01秒变量,和秒变量
  6. sbit stop=P3^3;                                                                                                        //暂停键
  7. void init()                                                                                                                 //定时初始化
  8. {
  9. TMOD=0x11;
  10. TH1=0xd8;
  11. TL1=0xf0;
  12. TR1=1;
  13. TH0=0xfc;
  14. TL0=0x18;
  15. TR0=1;
  16. ET1=1;
  17. ET0=1;
  18. EA=1;
  19. }
  20. void time10ms()interrupt 3
  21. {
  22. TH1=0xd8;
  23. TL1=0xf0;
  24. deta++;
  25. }

  26. void show()interrupt 1  //扫描显示2位数码管
  27. {
  28. TH0=0xfc;
  29. TL0=0x18;
  30. ++cnt;
  31. if(cnt>1)cnt=0;
  32. switch (cnt)
  33. {
  34. case 0:  P0=seg7[sec%10];P2=tab[0];break;
  35. case 1:  P0=seg7[sec/10];P2=tab[1];break;
  36. default:break;
  37. }
  38. }
  39. void showtime()     //时间显示
  40. {
  41.   if((deta>10)&&stop){sec++;deta=0;}    //如果P3^3 不按下,则为高电平,不暂停时间。
  42.   if(sec==99)sec=0;
  43.   }
  44.   void main()
  45.   {
  46.   init();
  47.   while(1)
  48.   {
  49.   showtime();
  50.   }
  51.   }
复制代码


评分

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

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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