电子时钟设计及程序Word文档下载推荐.docx

上传人:b****3 文档编号:14274213 上传时间:2022-10-21 格式:DOCX 页数:16 大小:82.83KB
下载 相关 举报
电子时钟设计及程序Word文档下载推荐.docx_第1页
第1页 / 共16页
电子时钟设计及程序Word文档下载推荐.docx_第2页
第2页 / 共16页
电子时钟设计及程序Word文档下载推荐.docx_第3页
第3页 / 共16页
电子时钟设计及程序Word文档下载推荐.docx_第4页
第4页 / 共16页
电子时钟设计及程序Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

电子时钟设计及程序Word文档下载推荐.docx

《电子时钟设计及程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《电子时钟设计及程序Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

电子时钟设计及程序Word文档下载推荐.docx

sbitrs=P2^4;

//定义液晶数据命令选择端

sbitlcden=P2^5;

//液晶使能端

sbits1=P2^0;

//按键1

sbits2=P2^1;

//按键2

sbits3=P2^2;

//按键3

ucharcount,s1num;

charshi,fen,miao;

//时、分、秒

charyear,month,day,week;

//年月日星期

voiddelay(uintx)//延时子程序

{

uintj,k;

for(j=x;

j>

0;

j--)

for(k=110;

k>

k--);

}

//----液晶写命令功能---

voidwrite_com(ucharcom)

rs=0;

lcden=0;

P0=com;

delay(5);

lcden=1;

//---液晶写数据功能-----

voidwrite_date(uchardate)

rs=1;

P0=date;

//----------写入时、分、秒--------?

voidwrite_sfm(ucharadd,uchardate)

ucharshi,ge;

shi=date/10;

ge=date%10;

write_com(0x80+0x40+add);

write_date(0x30+shi);

write_date(0x30+ge);

//--------写入年、月、日-----------

voidwrite_nyr(ucharadd,uchardate)

write_com(0x80+add);

//--------------写入星期X---------------

voidwrite_week(ucharwe)

write_com(0x80+12);

switch(we)

{

case1:

write_date('

M'

);

delay(5);

write_date('

O'

N'

break;

case2:

T'

U'

E'

case3:

W'

D'

case4:

H'

case5:

F'

R'

I'

case6:

S'

A'

case7:

}

//-----实现初始化功能-------

voidinit()

shi=1;

fen=1;

miao=1;

day=1;

month=1;

year=1;

week=1;

count=0;

s1num=0;

write_com(0x38);

write_com(0x0c);

write_com(0x06);

write_com(0x01);

write_com(0x80+1);

2'

write_com(0x80+2);

0'

write_com(0x80+5);

-'

write_com(0x80+8);

write_nyr(9,day);

write_nyr(6,month);

write_nyr(3,year);

write_week(week);

write_com(0x80+0x40+6);

:

'

write_com(0x80+0x40+9);

write_sfm(10,miao);

write_sfm(7,fen);

write_sfm(4,shi);

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

EA=1;

ET0=1;

TR0=1;

//--------------键盘扫描功能----------------

voidkeyscan()

if(s1==0)//键盘1是否被按下

delay(5);

//如果检测到键盘被按下,延时约

if(s1==0)//5毫秒看是否为键下,这样可越过按

{//键盘时的抖动时间,防止误判

s1num++;

while(!

s1);

if(s1num==1)

{

TR0=0;

write_com(0x80+0x40+10);

write_com(0x0f);

}

if(s1num==2)

write_com(0x80+0x40+7);

if(s1num==3)

write_com(0x80+0x40+4);

if(s1num==4)

{

write_com(0x80+12);

if(s1num==5)

write_com(0x80+9);

if(s1num==6)

write_com(0x80+6);

if(s1num==7)

write_com(0x80+3);

if(s1num==8)

s1num=0;

write_com(0x0c);

TR0=1;

}

if(s1num!

=0)//键盘2是否被按下

if(s2==0)

{

delay(5);

if(s2==0)

while(!

s2);

if(s1num==1)

{

miao++;

if(miao==60)

miao=0;

write_sfm(10,miao);

write_com(0x80+0x40+10);

}

if(s1num==2)

fen++;

if(fen==60)

fen=0;

write_sfm(7,fen);

write_com(0x80+0x40+7);

if(s1num==3)

shi++;

if(shi==24)

shi=0;

write_sfm(4,shi);

write_com(0x80+0x40+4);

if(s1num==4)

week++;

if(week==8)

week=1;

write_week(week);

write_com(0x80+12);

if(s1num==5)

day++;

if(day==32)

day=1;

write_nyr(9,day);

write_com(0x80+9);

if(s1num==6)

month++;

if(month==13)

month=1;

write_nyr(6,month);

write_com(0x80+6);

if(s1num==7)

year++;

if(year==100)

year=0;

write_nyr(3,year);

write_com(0x80+3);

}

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

当前位置:首页 > 经管营销 > 生产经营管理

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

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