找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1855|回復: 1
打印 上一主題 下一主題
收起左側

電子時鐘代碼,具備鬧鐘功能

[復制鏈接]
跳轉到指定樓層
樓主
ID:398312 發(fā)表于 2018-9-15 14:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>
#define uchar unsigned char
#define unit unsigned int
uchar code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit Bueer=P1^5;
sbit key1=P3^1;
sbit key2=P3^2;
sbit key3=P3^3;
sbit key4=P3^4;
sbit key5=P3^5;
sbit key6=P3^6;
sbit key7=P3^7;
sbit key0=P3^0;
uchar aa,h,m,s,n,i,sec,min,hour;
void delay(unit z)
{
unit x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display()
{
if(key0==1)
{
P2=0xfe;
P0=table[s%10];
delay(1);
P2=0xfb;
P0=40;
delay(1);
P2=0xf7;
P0=table[m%10];
delay(1);

P2=0xef;

P0=table[m/10];

delay(1);

P2=0xdf;

P0=0x40;

delay(1);

P2=0xbf;

P0=table[h%10];

delay(1);

P2=0x7f;

P0=table[h/10];

delay(1);

}

}

void timer0() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

aa++;

if(aa==20)

{

aa=0;

s++;

if(s==60)

{

s=0;

m++;

if(m==60)

{

m=0;

h++;

if(h==24)

h=0;

}

}

}

}

void keyscan()

{

if(key1==0)

{

delay(10);

if(key1==0)

{

while(!key1);

n++;

TR0=0;

if(n==1)

{

P2=0xfe;

P0=table[s%10];

delay(1);

P2=0xfd;

P0=table[s/10];

delay(1);

}

if(n==2)

{

P2=0xf7;

P0=table[m%10];

delay(1);

P2=0xef;

P0=table[m/10];

delay(1);

}

if(n==3)

{

P2=0xbf;

P0=table[h%10];

delay(1);

P2=0x7f;

P0=table[h/10];

delay(1);

}

if(n==4)

{

TR0=1;

n=0;
  }
  }
  }

if(n!=0)

{

if(key2==0)

{

delay(10);

if(key2==0)

{

while(!key2);

if(n==1)

{

s++;

if(s==60)

s=0;

}

if(n==2)

{

m++;

if(m==60)

m=0;

}

if(n==3)

{

h++;

if(h==24)

h=0;
  }
  }
  }

if(key3==0)

{

delay(10);

if(key3==0)

{

while(!key3);

if(n==1)

{

if(s==0)

s=60;

s--;

}

if(n==2)

{

if(m==0)

m=60;

m--;

}

if(n==3)

{

if(h==0)
h=24;

h--;
  }
  }
  }
  }
  }

void keyscan2()

{

if(key0==0)

{

P2=0xfe;

P0=table[sec%10];

delay(1);

P2=0xfd;

P0=table[sec/10];

delay(1);

P2=0xfb;

P0=0x40;

delay(1);

P2=0xf7;

P0=table[min%10];

delay(1);

P2=0xef;

P0=table[min/10];

delay(1);

P2=0xdf;

P0=0x40;

delay(1);

P2=0xbf;

P0=table[hour%10];

delay(1);

P2=0x7f;

P0=table[hour/10];

delay(1);

}

if(key4==0)

{

delay(10);

if(key4==0)

{

while(!key4);

{

min++;

if(min==60)

min=0;

}

}

}

if(key5==0)

{

delay(10);

if(key5==0)

{

while(!key5);

{

hour++;

if(hour==24)

hour=0;

}

}

}

if(key6==0)

{

delay(10);

if(key6==0)

{

while(!key6);

{
if(min==0)

min=60;

min--;

}

}

}

if(key7==0)

{

delay(10);

if(key7==0)

{

while(!key7);
{

if(hour==0)

hour=24;

hour--;

}

}

}

Bueer=1;

if((h==hour)&(m==min)&(s==sec))

{

for(i=0;i<100;i++)

{
Bueer=!Bueer;

delay(40);

}

}

}

void init()
{
TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

}

void main()

{

init();

while(1)

{

keyscan();

keyscan2();

display();

}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2018-9-15 15:58 | 只看該作者
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表