找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4505|回复: 4
收起左侧

单片机新手初上路,实现秒表功能。

[复制链接]
ID:424140 发表于 2018-11-10 16:41 | 显示全部楼层 |阅读模式
刚开始接触单片机。作为一个新手小白,是选择从基础的流水灯,数码管,定时/计数等方面的学习,来实现简单的编程,从而逐步提高自己的能力水平。这是刚学会的用单片机中断系统来实现的简单的秒表。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
])OCM9XI~BO 4M]5BUV.png

单片机源程序如下:
  1. #include<reg51.h>
  2. #define  uchar  unsigned  char
  3. #define  uint  unsigned  int
  4. uint  addNum;
  5. uchar  secNum;
  6. #define  SEGNUM  P0
  7. #define  WEI  P2
  8. uchar  code  table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
  9.                                           0x7d,0x07,0x7f,0x6f,0x77,0x7c,
  10.                                           0x39,0x5e,0x79,0x71,0x00};

  11. void delay(uint  num)
  12. {
  13.    uchar  i,j;
  14.    for(i=num;i>0;i--)
  15.       for(j=120;j>0;j--);
  16. }

  17. void  main()
  18. {
  19.   TMOD =0x02;
  20.   TL0=TH0=6;
  21.   ET0=1;
  22.   EA=1;
  23.   TR0=1;
  24.   while(1)
  25.   {                          
  26.         WEI=0xfe;
  27.             SEGNUM=table[secNum%100/10];
  28.                 delay(50);
  29.                 WEI=0xfd;
  30.                 SEGNUM=table[secNum%10];
  31.                 delay(50);
  32.          
  33.   }
  34. }
  35. void  timer0()  interrupt 1
  36. {
  37.                 addNum++;
  38.                 if(addNum==4000)
  39.                 {
  40.                 secNum++;
  41.                 addNum=0;
  42.                 }
  43. }          
复制代码

所有资料51hei提供下载:
DPJ秒表.zip (52.55 KB, 下载次数: 16)
回复

使用道具 举报

ID:424458 发表于 2018-11-11 15:00 来自手机 | 显示全部楼层
做的不错,值得学习,感谢楼主分享,正要学习单片机,十分感谢感谢,谢谢谢谢
回复

使用道具 举报

ID:424794 发表于 2018-11-12 08:31 来自手机 | 显示全部楼层
是0-99的吗?如果要实现0-59返0怎么改?啊
回复

使用道具 举报

ID:84765 发表于 2018-11-12 10:07 | 显示全部楼层
199610123 发表于 2018-11-12 08:31
是0-99的吗?如果要实现0-59返0怎么改?啊

59--;这样就行了!
回复

使用道具 举报

ID:736530 发表于 2020-6-11 19:42 | 显示全部楼层
后面可以尝试用LCD1602写一个电子时钟
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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