1602显示时钟.docx

上传人:b****7 文档编号:9265486 上传时间:2023-02-03 格式:DOCX 页数:16 大小:49.86KB
下载 相关 举报
1602显示时钟.docx_第1页
第1页 / 共16页
1602显示时钟.docx_第2页
第2页 / 共16页
1602显示时钟.docx_第3页
第3页 / 共16页
1602显示时钟.docx_第4页
第4页 / 共16页
1602显示时钟.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

1602显示时钟.docx

《1602显示时钟.docx》由会员分享,可在线阅读,更多相关《1602显示时钟.docx(16页珍藏版)》请在冰豆网上搜索。

1602显示时钟.docx

1602显示时钟

源程序:

#include"reg52.h"

#include"intrins.h"

#defineucharunsignedchar

#defineuintunsignedint

uchartab[]={'0','1','2','3','4','5','6','7','8','9'};

sbitk1=P1^0;

sbitk2=P1^1;

sbitk3=P1^2;

sbitrs=P2^0;

sbite=P2^1;

sbitbeep=P2^2;

uintcount,year=2012,mon=9,day=28,hour=23,min=59,sec=50;

//uintcolock_year=2012,colock_yue,colock_ri,colock_hour,colock_min,colock_sec;

ucharc;

voiddelay()

{

uchari;

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

}

voiddelay5ms(uintj)

{

uinta,b;

for(a=j;a>0;a--)

for(b=100;b>0;b--);

}

voidinit_time0()

{

EA=1;

ET0=1;

TMOD=0x01;

TH0=0x4c;

TL0=0x00;

TR0=1;

}

voidwrite_com(ucharcom)

{

rs=0;

e=0;

_nop_();

_nop_();

P0=com;

_nop_();

_nop_();

_nop_();

_nop_();

e=1;

_nop_();

_nop_();

_nop_();

_nop_();

e=0;

}

voidwrite_date(uchardate)

{

rs=1;

e=0;

_nop_();

_nop_();

P0=date;

_nop_();

_nop_();

_nop_();

_nop_();

e=1;

_nop_();

_nop_();

_nop_();

_nop_();

e=0;

}

voidlcd_init()

{

write_com(0x01);delay();

write_com(0x3c);delay();

write_com(0x0c);delay();

write_com(0x06);//delay();

}

voidsec_init()

{

write_com(0x3c);delay();

write_com(0x0f);delay();

write_com(0x06);//delay();

}

voidtime0()interrupt1

{

TH0=0x4c;

TL0=0x00;

count++;

}

voiddisplay()

{

if(count==17)

{

count=0;

sec++;

if(sec==60)

{

sec=0;

min++;

if(min==60)

{

min=0;

hour++;

if(hour==24)

{

hour=0;

day++;

if((mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12)&&day==32)

{

day=1;

mon++;

}

elseif((mon==4||mon==6||mon==9||mon==11)&&day==31)

{

day=1;

mon++;

}

elseif(mon==2)

{

if((year/4==0&&year/100!

=0)||(year/4==0&&year/400==0))

{

if(day==30)

day=1;

mon++;

}

elseif(!

((year/4==0&&year/100!

=0)&&(year/100==0&&year/400==0)))

{

if(day>28)

{

day=1;

mon++;

}

}

}

if(mon==13)

{

mon=1;

year++;

}

}

}

}

}

}

voidlcd_display(uintnian,uintyue,uintri,uintshi,uintfen,uintmiao)

{

write_com(0x80);delay();

write_date('D');delay();

write_date('A');delay();

write_date('T');delay();

write_date('E');delay();

write_date(':

');

write_date(tab[nian/1000]);

write_date(tab[nian%1000/100]);//delay();

write_date(tab[nian%1000%100/10]);//delay();

write_date(tab[nian%10]);delay();

write_date('-');//delay();

write_date(tab[yue/10]);//delay();

write_date(tab[yue%10]);delay();

write_date('-');//delay();

write_date(tab[ri/10]);//delay();

write_date(tab[ri%10]);delay();

write_com(0xc0);delay();

write_date('T');delay();

write_date('I');delay();

write_date('M');delay();

write_date('E');delay();

write_date(':

');

write_date('');

write_date(tab[shi/10]);//delay();

write_date(tab[shi%10]);delay();

write_date(':

');delay();

write_date(tab[fen/10]);delay();

write_date(tab[fen%10]);delay();

write_date(':

');delay();

write_date(tab[miao/10]);delay();

write_date(tab[miao%10]);delay();

}

voidk1_button()

{

if(!

k1)

{

delay5ms(10);

while(!

k1);

delay5ms(10);

if(c==1)

{

sec++;

if(sec==60)

{

sec=0;

}

}

if(c==2)

{

min++;

if(min==60)

{

min=0;

}

}

if(c==3)

{

hour++;

if(hour==24)

{

hour=0;

}

}

if(c==4)

{

day++;

if(day==32)

{

day=0;

}

}

if(c==5)

{

mon++;

if(mon==13)

{

mon=0;

}

}

if(c==6)

{

year++;

}

}

}

voidk2_button()

{

if(!

k2)

{

delay5ms(10);

while(!

k2);

delay5ms(10);

if(c==1)

{

if(sec>0)

{

sec--;

}

}

if(c==2)

{

if(min>0)

{

min--;

}

}

if(c==3)

{

if(hour>0)

{

hour--;

}

}

if(c==4)

{

if(day>0)

{

day--;

}

}

if(c==5)

{

if(mon>0)

{

mon--;

}

}

if(c==6)

{

if(year>2012)

{

year--;

}

}

}

}

voidk3_button()

{

if(!

k3)

{

delay5ms(10);

while(!

k3);

delay();

TR0=0;

c++;

while

(1)

{

if(!

k3)

{

delay5ms(10);

while(!

k3);

delay5ms(10);

c++;

sec_init();

}

switch(c)

{

case1:

write_com(0xcc);

write_date(tab[sec/10]);

write_date(tab[sec%10]);

k1_button();

k2_button();

break;

case2:

write_com(0xc9);

write_date(tab[min/10]);

write_date(tab[min%10]);

k1_button();

k2_button();

break;

case3:

write_com(0xc6);

write_date(tab[hour/10]);

write_date(tab[hour%10]);

k1_button();

k2_button();

break;

case4:

write_com(0x8d);

write_date(tab[day/10]);

write_date(tab[day%10]);

k1_button();

k2_button();

break;

case5:

write_com(0x8a);

write_date(tab[mon/10]);

write_date(tab[mon%10]);

k1_button();

k2_button();

break;

case6:

write_com(0x85);

write_date(tab[year/1000]);

write_date(tab[year%1000/100]);

write_date(tab[year%1000%100/10]);

write_date(tab[year%10]);

k1_button();

k2_button();

break;

case7:

TR0=1;

c=0;

break;

}

if(c==0)

{

break;

}

}

count=0;

write_com(0x0c);

}

}

/*voidinit0()

{

EA=1;

IT0=1;

IE0=1;

EX0=1;

}

voidexter0()interrupt0

{

lcd_init();

lcd_display(colock_year,colock_yue,colock_ri,colock_hour,colock_min,colock_sec);

k3_button(colock_year,colock_yue,colock_ri,colock_hour,colock_min,colock_sec);

}

voidclock()

{

if(colock_year==year&&colock_yue==mon&&colock_ri==day&&colock_hour==hour&&colock_min==min)

{

beep=~beep;

}

}*/

voidmain()

{

lcd_init();

init_time0();

while

(1)

{

display();

lcd_display(year,mon,day,hour,min,sec);

if(!

k3)

k3_button();

}

}

电路图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1