找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的数字时钟设计

[复制链接]
ID:424128 发表于 2018-11-10 18:13 | 显示全部楼层 |阅读模式
源代码
#include <reg52.h>
sbit k0=P1^0;
sbit k1=P1^1;
sbit k2=P1^2;
unsigned char second,minute,hour,i,k,l,j,x,y;
unsigned int n;
unsigned char code mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
timer0(void) interrupt 1
{
n++;
TH0=0x3c;
TL0=0xb0;
}
void delay()
{ unsigned int time,p;
  for(time=30;time>0;time--)
  for(p=0;p<10;p++);
}
void xianshi()
{
if(n==20)
{
  n=0;
  second++;
  while(second==60)
  { second=0;
    minute++;
        if(minute==60)
        {minute=0;
         hour++;
         if(hour==24)
         {
          hour=0;
          }}}}
x=hour%10;
y=hour/10;
l=minute%10;
j=minute/10;
i=second%10;
k=second/10;P0=0x00;
P2=0x01;
P0=mod;
delay();P0=0x00;
P2=0x02;
P0=mod[k];
delay();P0=0x00;
P2=0x04;
P0=0x40;
delay();P0=0x00;
P2=0x08;
P0=mod[l];
delay();P0=0x00;
P2=0x10;
P0=mod[j];
delay();P0=0x00;
P2=0x20;
P0=0x40;
delay();P0=0x00;
P2=0x40;
P0=mod[x];
delay();P0=0x00;
P2=0x80;
P0=mod[y];
delay();P0=0x00;
}
void kongzhi()
{if(k0==0)
{TR0=0;
  while(k0==0) xianshi();
  delay();
  while(k0==1)
  {if(k1==0)
   {minute++;
    while(minute==60)
        {minute=0;
        }}
   while(k1==0) xianshi();
   if(k2==0)
   {minute--;
    while(minute==-1)
        {minute=59;
        }}
        while(k2==0) xianshi();
        xianshi();
        }   
    if(k0==0)
        {TR0=0;
         while(k0==0) xianshi();
         delay();
         while(k0==1)
         {if(k1==0)
          {hour++;
           while(hour==24)
           {hour=0;
           }}
          while(k1==0) xianshi();
          if(k2==0)
          {hour--;
           while(hour==-1)
           {hour=23;
           }}
           while(k2==0) xianshi();
           xianshi();
           }
                if(k0==0)
                {while(k0==0) xianshi();
                 TR0=1;
                 return;
                 }}}}
void main()
{                                                                                  
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
EA=1;
ET0=1;
TR0=1;
while(1)
{
  xianshi();
  kongzhi();
  }}

Schematic Prints.pdf

59.78 KB, 下载次数: 33, 下载积分: 黑币 -5

原理图文件

回复

使用道具 举报

ID:490020 发表于 2019-3-13 15:46 | 显示全部楼层
厉害。。。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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