找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1867|回复: 1
收起左侧

51单片机制作一个定时闹钟程序

[复制链接]
ID:730947 发表于 2020-5-23 22:36 | 显示全部楼层 |阅读模式
这里是源码部分
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit we=P2^7;
  5. sbit du=P2^6;
  6. uchar code table[]={0x3f,0x06,0x5B,0x4F,0x66,
  7.                0x6D,0x7D,0x07,0x7F,0x6F,
  8.                0x77,0x7C,0x39,0x5E,0x79,
  9.                0x71,0x76,0x38,0x37,0x3E,
  10.                0x73,0x5C,0x40,0x00,};
  11. uchar num=0,aa,s,g,m,f,h;
  12. void delay(uchar x);
  13. void main()
  14. {   
  15.     TMOD=0x01;    //设置内部中断0,1的工作方式为方式1   
  16.     EA=1;          //开总中断
  17.     ET0=1;        //允许中断   
  18.     TR0=1;          //开中断0         
  19.     TH0=0x4c;
  20.     TL0=0x00;
  21.     while(1)
  22.     {   
  23.             du = 1;
  24.             P0 = 0;
  25.             du = 0;

  26.             we = 1;
  27.             P0 = 0x3e;
  28.             we = 0;

  29.             du = 1;
  30.             P0 = table[s];      //十位
  31.             du = 0;

  32.             delay(10);

  33.             du = 1;
  34.             P0 = 0;
  35.             du = 0;

  36.             we = 1;
  37.             P0 = 0x3d;
  38.             we = 0;


  39.             du = 1;
  40.             P0 = table[g];         //个位
  41.             du = 0;
  42.             delay(10);

  43.             du = 1;
  44.             P0 = 0;
  45.             du = 0;

  46.             we = 1;
  47.             P0 = 0x1f; //显示分钟
  48.             we = 0;

  49.             du = 1;
  50.             P0 = table[m];
  51.             du = 0;

  52.             delay(10);

  53.             du = 1;
  54.             P0 = 0;
  55.             du = 0;

  56.             we = 1;
  57.             P0 = 0x2f;
  58.             we = 0;

  59.             du = 1;
  60.             P0 = table[h];      
  61.             du = 0;

  62.             delay(10);

  63.         if(aa == 20)   
  64.         {            
  65.             aa = 0;
  66.             if(num == 59)
  67.             {
  68.                 num = 0;
  69.                 f++;
  70.             }
  71.             else
  72.                 num++;
  73.             s = num/10;
  74.             g = num%10;
  75.             m = f%10;
  76.             h = f/10;               
  77.         }
  78.         if(h == 6)
  79.         f = 0;
  80.     }
  81. }
  82. void timer0() interrupt 1 //内部中断0
  83. {
  84.     TH0=0x4c;
  85.     TL0=0x00;
  86.     aa++;
  87. }
  88. void delay(uchar x)
  89. {
  90.     uchar y,z;
  91.     for(y=x;y>0;y--)
  92.         for(z=120;z>0;z--)

  93. }
复制代码

回复

使用道具 举报

ID:1 发表于 2020-5-24 19:24 | 显示全部楼层
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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