找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7619|回复: 0
收起左侧

LED数码管秒表的制作 proteus的仿真图与单片机源码

[复制链接]
ID:348859 发表于 2018-6-10 18:01 | 显示全部楼层 |阅读模式
附件包扩c语言程序的代码,proteus的仿真图以及keil生成的仿真文件
0.png

0.png

单片机源程序如下:
  1. #include<reg51.h>
  2. unsigned char code discode1 []={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
  3. unsigned char code discode2 []={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  4. unsigned char timer=0;
  5. unsigned char second;
  6. unsigned char key=0;
  7. sbit tt=P3^7;
  8. void delay_ms(unsigned int xmax)  
  9. { unsigned int x,y;
  10. for(x=xmax;x>0;x--)
  11. for(y=70;y>0;y--);
  12. }
  13. main ()
  14. {
  15.         TMOD=0x01;
  16.         TH0=(65535-50000)/256;
  17.                 TL0=(65535-50000)/256;
  18.         ET0=1;
  19.         EA=1;
  20.         second=0;
  21.         P0=discode1 [second/10];
  22.         P2=discode2 [second%10];
  23.         while (1)
  24.         {
  25.                 if ((P3&0x80)==0x00)
  26.                 {
  27.       
  28.                         if(!tt)
  29.                  {
  30.                         while ((P3&0x80)==0x00);
  31.                          key++;
  32.                  }
  33.          }
  34.                         if (second == 99)
  35.                 {
  36. //                        TR0=0;
  37.                         key=2;
  38.                         second=0;
  39.                         TR0=0;
  40.                 }
  41.                         switch (key)
  42.                         {
  43.                                 case 1:
  44.                                   TR0=1;
  45.                                 P0=discode1 [second/10];
  46.                                 delay_ms(10);
  47.                         P2=discode2 [second%10];
  48.                                 delay_ms(10);
  49.                                 break;
  50.                                 case 2:
  51.                                         TR0=0;
  52.                                   break;
  53.                                 case 3:
  54.                                         key =0;
  55.                                 timer=0;
  56.                                   P0=0x3f;
  57.                 P2=0x3f;
  58.                                  
  59.                                 break;
  60.                                 
  61.                                 
  62.                           }

  63.         }
  64. }
  65.         void int_T0() interrupt 1 using 0
  66.         {
  67.                 TR0=0;
  68.                 TH0=(65535-50000)/256;
  69.                 TL0=(65535-50000)/256;
  70.                 timer++;
  71.                 if (timer==2)
  72.                 {
  73.                         timer=0;
  74.                         second++;

  75.                 }

  76.         }

复制代码

所有资料51hei提供下载:
miaobiao.zip (17.15 KB, 下载次数: 63)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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