基于单片机的时钟设计文档格式.docx

上传人:b****4 文档编号:16731505 上传时间:2022-11-25 格式:DOCX 页数:23 大小:18.52KB
下载 相关 举报
基于单片机的时钟设计文档格式.docx_第1页
第1页 / 共23页
基于单片机的时钟设计文档格式.docx_第2页
第2页 / 共23页
基于单片机的时钟设计文档格式.docx_第3页
第3页 / 共23页
基于单片机的时钟设计文档格式.docx_第4页
第4页 / 共23页
基于单片机的时钟设计文档格式.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

基于单片机的时钟设计文档格式.docx

《基于单片机的时钟设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的时钟设计文档格式.docx(23页珍藏版)》请在冰豆网上搜索。

基于单片机的时钟设计文档格式.docx

ucharnaozhong[7]={35,32,16,27,2,7,11};

ucharflag,flag1,flag2;

ucharcodetable0[]="

--"

;

ucharcodetable1[]="

:

"

voidlcd_com(uchar);

voidlcd_date(uchar);

voidlcd_time(uchar,uchar);

voidwrite_ds1302(ucharadd,uchardate);

ucharread_ds1302(ucharadd);

voidread_rtc();

voidset_ds1302(ucharadd,uchartime);

voiddisplay();

voidinit_ds1302();

voidmain()

{

wela=1;

P1=0xff;

wela=0;

init();

init_ds1302();

while

(1)

{

if(flag1==1)

naozhongscan();

read_rtc();

if(flag==0)

display();

keyscan();

}

}

voidinit()

flag=0;

flag1=0;

flag2=0;

lcden=0;

lcdwr=0;

num2=0;

num3=0;

num4=0;

lcd_com(0x38);

//显示模式设置,16*2显示,5*7点阵,8位数据接口

lcd_com(0x01);

//清屏,显示、指针清零

lcd_com(0x0c);

//显示开关及光标设置,开显示,显示光标,光标闪烁

lcd_com(0x06);

//读写后指针加一光标加一

lcd_com(0x80);

//从第一个显示地址开始显示

for(num0=0;

num0<

16;

num0++)

lcd_date(table0[num0]);

lcd_com(0x80+0x40);

11;

lcd_date(table1[num0]);

voidinit_ds1302()

uchari,j;

ucharflag3;

flag3=read_ds1302(0x81);

if(flag3&

0x80)//如果ch=1则进行初始化

write_ds1302(0x8e,0x00);

for(i=0;

i<

7;

i++)

j=date[i]/10;

date[i]=date[i]%10;

date[i]=date[i]+j*16;

write_ds1302(date_write_add[i],date[i]);

}

write_ds1302(0x8e,0x80);

voiddelay(ucharz)

ucharx,y;

for(x=110;

x>

0;

x--)

for(y=z;

y>

y--);

voiddidi()

nz=0;

delay(50);

nz=1;

delay(100);

voidlcd_com(ucharcom)

lcdrs=0;

P0=com;

delay(5);

lcden=1;

voidlcd_date(uchardate)

lcdrs=1;

P0=date;

voidlcd_time(ucharadd,ucharDate)

ucharshi,ge;

shi=Date/10;

ge=Date%10;

lcd_com(0x80+add);

lcd_date(0x30+shi);

lcd_date(0x30+ge);

voidkeyscan()

ajjd=0;

if(num3!

=2)

{

if(k1==0)

delay(5);

if(k1==0)

{

while(!

k1);

num2++;

if(num2==1)

{

flag=1;

lcd_com(0x80+lcd_date_add[0]);

lcd_com(0x0f);

}

if(num2==2)

lcd_com(0x80+lcd_date_add[1]);

if(num2==3)

lcd_com(0x80+lcd_date_add[2]);

if(num2==4)

lcd_com(0x80+lcd_date_add[3]);

if(num2==5)

lcd_com(0x80+lcd_date_add[4]);

if(num2==6)

lcd_com(0x80+lcd_date_add[5]);

if(num2==7)

lcd_com(0x80+lcd_date_add[6]);

if(num2==8)

lcd_com(0x0c);

//关光标

num2=0;

flag=0;

}

if(num2!

=0)

if(k2==0)

if(k2==0)

k2);

if(num2==1)

date[0]++;

if(date[0]==60)

date[0]=0;

_nop_();

lcd_time(lcd_date_add[0],date[0]);

set_ds1302(date_write_add[0],date[0]);

if(num2==2)

date[1]++;

if(date[1]==60)

date[1]=0;

lcd_time(lcd_date_add[1],date[1]);

set_ds1302(date_write_add[1],date[1]);

if(num2==3)

date[2]++;

if(date[2]==24)

date[2]=0;

lcd_time(lcd_date_add[2],date[2]);

set_ds1302(date_write_add[2],date[2]);

if(num2==4)

date[3]++;

if(date[3]==32)

date[3]=1;

lcd_time(lcd_date_add[3],date[3]);

set_ds1302(date_write_add[3],date[3]);

if(num2==5)

date[4]++;

if(date[4]==13)

date[4]=1;

lcd_time(lcd_date_add[4],date[4]);

set_ds1302(date_write_add[4],date[4]);

if(num2==6)

date[5]++;

if(date[5]==8)

date[5]=1;

lcd_time(lcd_date_add[5],date[5]);

set_ds1302(date_write_add[5],date[5]);

if(num2==7)

date[6]++;

if(date[6]==99)

date[6]=1;

lcd_time(lcd_date_add[6],date[6]);

set_ds1302(date_write_add[6],date[6]);

}

if(k3==0)

if(k3==0)

k3);

date[0]--;

if(date[0]==-1)

date[0]=59;

lcd_time(lcd_date_add[2],date[0]);

date[1]--;

if(date[1]==-1)

date[1]=59;

date[2]--;

if(date[2]==-1)

date[2]=23;

date[3]--;

if(date[3]==0)

date[3]=31;

date[4]--;

if(date[4]==0)

date[4]=12;

date[5]--;

if(date[5]==0)

date[5]=7;

date[6]--;

if(date[6]==0)

date[6]=99;

}

if(k4==0)

delay(5);

if(k4==0)

while(!

k4);

num3++;

if(num3==1)

{

flag1=1;

lcd_com(0x80+1);

lcd_date(0x41);

}

if(num3==2)

{

ajjd=0;

flag1=0;

if(num4==0)

{

for(num0=0;

lcd_time(lcd_date_add[num0],naozhong[num0]);

lcd_com(0x80+1);

lcd_com(0x0c);

lcd_date(0x42);

}

//lcd_com(0x0f);

flag=1;

if(k1==0)

delay(5);

if(k1==0)

{

while(!

num4++;

if(num4==1)

{

lcd_com(0x80+lcd_date_add[0]);

lcd_com(0x0f);

}

if(num4==2)

lcd_com(0x80+lcd_date_add[1]);

if(num4==3)

lcd_com(0x80+lcd_date_add[2]);

if(num4==4)

lcd_com(0x80+lcd_date_add[3]);

if(num4==5)

lcd_com(0x80+lcd_date_add[4]);

if(num4==6)

lcd_com(0x80+lcd_date_add[5]);

if(num4==7)

lcd_com(0x80+lcd_date_add[6]);

if(num4==8)

lcd_com(0x0c);

num4=0;

flag=1;

}

if(num4!

{

if(k2==0)

if(k2==0)

if(num4==1)

naozhong[0]++;

if(naozhong[0]==60)

naozhong[0]=0;

_nop_();

lcd_time(lcd_date_add[0],naozhong[0]);

if(num4==2)

naozhong[1]++;

if(naozhong[1]==60)

naozhong[1]=0;

lcd_time(lcd_date_add[1],naozhong[1]);

if(num4==3)

naozhong[2]++;

if(naozhong[2]==24)

naozhong[2]=0;

lcd_time(lcd_date_add[2],naozhong[2]);

if(num4==4)

naozhong[3]++;

if(naozhong[3]==32)

naozhong[3]=1;

lcd_time(lcd_date_add[3],naozhong[3]);

if(num4==5)

naozhong[4]++;

if(naozhong[4]==13)

naozhong[4]=1;

lcd_time(lcd_date_add[4],naozhong[4]);

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

当前位置:首页 > 工作范文 > 演讲主持

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

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