标题: 单片机新手初上路,实现秒表功能。 [打印本页]

作者: lsxqzh    时间: 2018-11-10 16:41
标题: 单片机新手初上路,实现秒表功能。
刚开始接触单片机。作为一个新手小白,是选择从基础的流水灯,数码管,定时/计数等方面的学习,来实现简单的编程,从而逐步提高自己的能力水平。这是刚学会的用单片机中断系统来实现的简单的秒表。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  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)



作者: hanjiawei123    时间: 2018-11-11 15:00
做的不错,值得学习,感谢楼主分享,正要学习单片机,十分感谢感谢,谢谢谢谢
作者: 199610123    时间: 2018-11-12 08:31
是0-99的吗?如果要实现0-59返0怎么改?啊
作者: 13976778401    时间: 2018-11-12 10:07
199610123 发表于 2018-11-12 08:31
是0-99的吗?如果要实现0-59返0怎么改?啊

59--;这样就行了!
作者: 258151    时间: 2020-6-11 19:42
后面可以尝试用LCD1602写一个电子时钟




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