找回密码
 立即注册

QQ登录

只需一步,快速开始

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

数字钟的proteus仿真电路及C语言程序设计

[复制链接]
跳转到指定楼层
楼主
例4 数字钟的proteus仿真电路及C语言程序设计



单片机源程序如下:
  1. #include <REG51.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uint sec;
  5. uint min=23;
  6. uint hour=8;
  7. uint tcnt;
  8. unsigned char table[]=
  9.    {0x3f,0x06,0x5b,0x4f,0x66,
  10.    0x6d,0x7d,0x07,0x7f,0x6f,
  11.    0x40,0x00};
  12.    //共阴数码管 0-9  '-'  
  13. void display(unsigned char a,unsigned char b,unsigned char c);
  14. //显示延时 函数
  15. void delay(unsigned int z)
  16. {
  17.         unsigned int x;
  18.         unsigned char y;
  19.         for(x=z;x>0;x--)
  20.                 for(y=200;y>0;y--);        
  21. }
  22. void display()
  23. {   

  24. P3=0xfe;P2=0x00;
  25. P2=table[sec%10];
  26.   delay(3);


  27. P3=0xfd;P2=0x00;
  28. P2=table[sec/10];
  29. delay(3);

  30.   
  31. P3=0xfb;P2=0x00;
  32. P2=table[10];
  33.   delay(3);

  34.   
  35. P3=0xf7;P2=0x00;
  36. P2=table[min%10];
  37.   delay(3);

  38.   
  39. P3=0xef;P2=0x00;
  40. P2=table[min/10];
  41. delay(3);


  42. P3=0xdf;P2=0x00;
  43. P2=table[10];
  44.   delay(3);

  45. P3=0xbf;P2=0x00;
  46. P2=table[hour%10];
  47. delay(3);


  48. P3=0x7f;P2=0x00;
  49. P2=table[hour/10];
  50.   delay(3);
  51. }


  52. main()
  53. {
  54.          
  55.        TMOD=0x02;               //设置模式为定时器T0的模式2 (8位自动重装计数初值的计数值)        
  56.        TH0=0x06;                //设置计数器初值,靠TH0存储重装的计数值X0=256-250=6
  57.        TL0=0x06;
  58.        TR0=1;                   //启动T0
  59.        ET0=1;                   //开启定时器T0中断允许
  60.        EA=1;

  61. while(1)
  62.         {   
  63.          
  64. display();
  65.            
  66.          }
  67. }
  68. void t0(void)interrupt 1 using 0      //t0的中断程序
  69. {
  70.        tcnt++;
  71.        if(tcnt==4000)//定时器的定时计数,4000次250us为1秒
  72.        {
  73.            tcnt=0;
  74.            
  75.            sec++;
  76.            if(sec==60)
  77.            {     
  78.                sec=0;
  79.                min++;
  80.                if(min==60)
  81.                {
  82.                    min=0;
  83.                    hour++;
  84.                    if(hour==24)
  85.                    {
  86.                        hour=0;
  87.                         
  88.                         
  89.                    }
  90.                   
  91.                }
  92.            }
  93.        }
  94. }
复制代码

所有资料51hei提供下载:
数字钟的proteus仿真电路及C语言程序设计.rar (50.94 KB, 下载次数: 35)



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

使用道具 举报

沙发
ID:570785 发表于 2019-6-24 14:03 | 只看该作者
楼主的是好东西啊
回复

使用道具 举报

板凳
ID:910454 发表于 2021-4-29 18:12 | 只看该作者
怎么把初始时间设为12.00.00
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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