找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51简单电子秒表显示器

[复制链接]
跳转到指定楼层
楼主
51单片机实现简单的电子秒表显示器
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include<reg51.h>
  2. #define LED P2

  3. char led_mod[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; //显示字模

  4. sbit Ws = P3^0;          //十位码管位选
  5. sbit Wg = P3^1;          //个位码管位选

  6. bit Y = 0;                                 //长定时溢出标记
  7. unsigned char t = 0;        //定时溢出次数
  8. unsigned char count;        //60秒计数

  9. void Timeshow(void);                 //数码管显示函数声明
  10. void delay(unsigned char time);                 //延时函数声明

  11. void main()
  12. {
  13.         TMOD = 0x01;  //T0定时器方式1
  14.         TH0 = 0x3c;          //装初值,定时50ms
  15.         TL0 = 0xb0;
  16.         ET0 = 1;          //开定时器0中断
  17.         EA = 1;                  //开总中断
  18.         TR0 = 1;          //启动定时器

  19.         while(1)
  20.         {               
  21.                 if(Y)
  22.                 {
  23.                         Y = 0;                        //清溢出标志位
  24.                         count++;               
  25.                         if(count>=60)
  26.                         count = 0;        //计数至60时重新从0计起
  27.                 }
  28.                 Timeshow();
  29.         }
  30. }

  31. void Timeshow(void)
  32. {
  33.         unsigned char shi, ge;
  34. //        unsigned char j;
  35.         shi = count/10;                    //计数十位
  36.         ge = count%10;                        //计数个位
  37.         Ws = 0;
  38.         Wg = 1;                                        //个位数码管使能
  39.         LED = ~led_mod[ge];
  40.                
  41.         delay(10);
  42. //        j = 10;                 //扫描间隔时间设定
  43. //  while(j--);
  44.         LED = 0xff;   //数码管清零,消影作用
  45.         delay(10);


  46.         Ws = 1;                                        //十位数码管使能
  47.         Wg = 0;
  48.         LED = ~led_mod[shi];

  49.         delay(10);
  50. //        j = 10;                 //扫描间隔时间设定
  51. //  while(j--);
  52. ……………………

  53. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
电子秒表显示器.zip (60.28 KB, 下载次数: 32)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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