时钟系统Word文件下载.docx
- 文档编号:22320241
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:16.89KB
时钟系统Word文件下载.docx
《时钟系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《时钟系统Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
i--)
for(j=110;
j>
j--);
}
voiddi()//“滴滴”程序
beer=0;
dealyms(100);
beer=1;
bitlcd_busy()//液晶是否忙检查程序
{
bitresult;
rs=0;
lcdwr=1;
lcden=1;
_nop_();
result=(bit)(P0&
0x80);
lcden=0;
returnresult;
voidwrite_com(ucharcom)//写命令程序
{while(lcd_busy());
//不忙才进行,否则等待
rs=0;
//rs=0说明是写操作命令,否则写数据
lcden=0;
lcdwr=0;
P0=com;
//写入命令
//短延时
lcden=1;
voidwrite_date(uchardate)//写数据
rs=1;
//rs=1说明是写数据,否则写命令
P0=date;
//写入数据
voidwrite_sfm(ucharadd,uchardate)//x写入时分秒函数
ucharshi,ge;
shi=date/10;
ge=date%10;
/分解数据
write_com(0x80+0x40+add);
//定位写数据的位置
write_date(0x30+shi);
write_date(0x30+ge);
voidwrite_nian(ucharadd,chardate)//写入年函数
{charshi,ge;
write_com(0x80+add);
}
voidwrite_yue(ucharadd,uchardate)//写入月函数
voidwrite_ri(ucharadd,uchardate)//写入日函数
voidinit()//初始化函数
{rd=0;
dual=0;
wual=0;
fen=0;
shi=0;
miao=0;
count=0;
s1num=0;
nian=12;
//为了调节方便,所以调节后两位
yue=1;
ri=1;
init_24c02();
write_com(0x38);
//1602的初始化
dealyms(5);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80+4);
//在特定的位置写入‘-’
write_date('
-'
);
write_com(0x80+7);
write_com(0x80+0x40+6);
//在特定位置写入'
:
'
:
write_com(0x80+0x40+9);
miao=read_add
(1);
//从at24c02里面读取数据
fen=read_add
(2);
shi=read_add(3);
nian=read_add(6);
yue=read_add(5);
ri=read_add(4);
write_sfm(10,miao);
//把秒写入液晶,下同
write_sfm(7,fen);
write_sfm(4,shi);
write_nian(2,nian);
write_yue(5,yue);
write_ri(8,ri);
write_com(0x80);
//在第一位写入'
2'
write_com(0x80+1);
//在第二位写入'
0'
TMOD=0x01;
//定时器1方式1
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
//写入计数初值
EA=1;
//开总中断
ET0=1;
TR0=1;
di();
voidkeyscan()//键盘扫描
if(s1==0)//检查键盘功能键是否按下
{dealyms(10);
if(s1==0)
{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+8);
if(s1num==5)
{write_com(0x80+5);
if(s1num==6)
{write_com(0x80+2);
if(s1num==7)//第七次则开放定时器,同时清除s1num
{s1num=0;
if(s1num!
=0)//只有在s1num不为零的情况下,否则等待
if(s2==0)
{while(!
s2);
if(s1num==1)//秒调整
{miao++;
if(miao==60)
//写入液晶
//调整写入秒的位置
write_add(1,miao);
//写入at24c02,下同
if(s1num==2)
{
fen++;
if(fen==60)
write_com(0x80+0x40+7);
write_add(2,fen);
if(s1num==3)
{shi++;
if(shi==24)
write_com(0x80+0x40+4);
write_add(3,shi);
if(s1num==4)
{ri++;
if(ri==31)
write_com(0x80+8);
write_add(4,ri);
}
{yue++;
if(yue==13)
write_com(0x80+5);
write_add(5,yue);
nian=nian+1;
if(nian==100)
nian=0;
write_com(0x80+2);
write_add(6,nian);
if(s3==0)
dealyms(10);
if(s3==0)
{while(!
s3);
if(s1num==1)
{miao--;
if(miao==-1)
miao=59;
{fen--;
if(fen==-1)
fen=59;
{shi--;
if(shi==-1)
shi=23;
{ri--;
if(ri==0)
ri=31;
{yue--;
if(yue==0)
yue=12;
{nian=nian-1;
if(nian==-1)
nian=99;
voidchange()
{if(flag==1)//一秒事件到则进行秒++
{flag=0;
miao++;
{miao=0;
//一秒时间到则fen++。
下同
{fen=0;
shi++;
{shi=0;
ri++;
if(ri==32)
{ri=1;
yue++;
{yue=1;
nian++;
write_nian(2,nian);
write_add(6,nian);
//写入芯片,下同
}
write_yue(5,yue);
write_add(5,yue);
write_sfm(10,miao);
write_add(1,miao);
voidmain()
{init();
while
(1)
{keyscan();
change();
voidtime0()interrupt1//中断服务程序
TL0=(655536-45872)%256;
count++;
if(count==20)
{count=0;
flag=1;
bitwrite=0;
sbitsda=P2^0;
sbitscl=P2^1;
voiddealy0()
{;
;
voidstart()
{sda=1;
dealy0();
scl=1;
sda=0;
voidstop()
{sda=0;
sda=1;
voidrespons()
{uchari;
while((sda==1)&
&
(i<
250))i++;
scl=0;
voidinit_24c02()
sda=1;
dealy0();
scl=1;
voidwrite_byte(uchardate)
uchari,temp;
temp=date;
for(i=0;
i<
8;
i++)
temp=temp<
<
1;
sda=CY;
ucharread_byte()
uchari,k;
{scl=1;
k=(k<
1)|sda;
returnk;
voidwrite_add(ucharaddress,uchardate)
start();
write_byte(0xa0);
respons();
write_byte(address);
write_byte(date);
stop();
charread_add(ucharaddress)
uchardate;
start();
write_byte(0xa0);
respons();
write_byte(address);
write_byte(0xa1);
date=read_byte();
stop();
returndate;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时钟 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)