ds1302+lcd1602程序Word文档下载推荐.docx

上传人:b****4 文档编号:17955835 上传时间:2022-12-12 格式:DOCX 页数:12 大小:15.90KB
下载 相关 举报
ds1302+lcd1602程序Word文档下载推荐.docx_第1页
第1页 / 共12页
ds1302+lcd1602程序Word文档下载推荐.docx_第2页
第2页 / 共12页
ds1302+lcd1602程序Word文档下载推荐.docx_第3页
第3页 / 共12页
ds1302+lcd1602程序Word文档下载推荐.docx_第4页
第4页 / 共12页
ds1302+lcd1602程序Word文档下载推荐.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

ds1302+lcd1602程序Word文档下载推荐.docx

《ds1302+lcd1602程序Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《ds1302+lcd1602程序Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。

ds1302+lcd1602程序Word文档下载推荐.docx

sbitsclk=P1^4;

sbitio=P1^5;

voidwrite_ds1302_byte(uint);

voidlcd_busy_wait();

voidwrite_ds1302(uint,uint);

uintread_ds1302(uint);

voidinit_time();

voidread_time();

voidxieshijian2(uintadd,uintshu);

voidxieshijian1(uintadd,uintshu);

voidxiexingqi(uintadd,uintshu);

voidtime_bcd(uintx);

uinttime_wadd[]={0x8c,0x88,0x86,0x8a,0x84,0x82,0x80};

uinttime_radd[]={0x8d,0x89,0x87,0x8b,0x85,0x83,0x81};

uinttime_init[7]={11,0,0,1,0,0,0};

uinttime_shuzhi[7]={0,0,0,0,0,0,0};

ucharxingqi[7][3]={{"

MON"

},{"

TUS"

WEN"

THU"

FRI"

STA"

SUN"

}};

//按键定义

sbitkey1=P1^0;

sbitkey2=P1^1;

sbitkey3=P1^2;

//标志位定义

voidkeyscan();

uintgn_flag;

//程序开始

voidmain()

{

uintnum;

lcd1602_init();

init_time();

write_1602_cmd(0x80);

for(num=0;

num<

16;

num++)

{

write_1602_dat(nyx[num]);

}

write_1602_cmd(0x80+0x40);

13;

write_1602_dat(sfm[num]);

while

(1)

keyscan();

if(gn_flag==0)

{

read_time();

xieshijian2(10,time_shuzhi[6]);

xieshijian2(7,time_shuzhi[5]);

xieshijian2(4,time_shuzhi[4]);

xiexingqi(12,time_shuzhi[3]);

xieshijian1(9,time_shuzhi[2]);

xieshijian1(6,time_shuzhi[1]);

xieshijian1(3,time_shuzhi[0]);

}

}

}

/************************

1602读写时序操作

************************/

voidwrite_1602_cmd(uintcmd)

lcd_busy_wait();

en=0;

rs=0;

rw=0;

lcd_data=cmd;

_nop_();

en=1;

voidwrite_1602_dat(uintdat)

rs=1;

lcd_data=dat;

voidlcd1602_init()

write_1602_cmd(0x38);

delay1ms(4);

write_1602_cmd(0x0c);

write_1602_cmd(0x06);

write_1602_cmd(0x01);

lcd_data=0xff;

voidlcd_busy_wait()

rw=1;

lcd_data=0xff;

while(lcd_data&

0x80);

voiddelay1ms(uintx)

uinti,j;

for(i=x;

i>

0;

i--)

for(j=110;

j>

j--);

ds1302的时序操作

voidwrite_ds1302_byte(uintdate)

uinti;

for(i=0;

i<

8;

i++)

sclk=0;

io=date&

0x01;

date>

>

=1;

sclk=1;

}

voidwrite_ds1302(uintcmd,uintdate)

{

rst=0;

sclk=0;

rst=1;

write_ds1302_byte(cmd);

write_ds1302_byte(date);

io=1;

sclk=1;

uintread_ds1302(uintadd)

uintshu,i;

write_ds1302_byte(add);

shu>

if(io)shu|=0x80;

returnshu;

voidinit_time()

uinti,a,b;

7;

a=time_init[i]/10;

b=time_init[i]%10;

time_init[i]=a*16+b;

write_ds1302(0x8e,0x00);

write_ds1302(time_wadd[i],time_init[i]);

write_ds1302(0x8e,0x80);

voidread_time()

time_shuzhi[i]=read_ds1302(time_radd[i]);

voidxieshijian2(uintadd,uintshu)

uinta,b;

a=shu/16;

b=shu%16;

write_1602_cmd(0x80+0x40+add);

write_1602_dat(0x30+a);

write_1602_dat(0x30+b);

voidxieshijian1(uintadd,uintshu)

write_1602_cmd(0x80+add);

voidxiexingqi(uintadd,uintshu)

3;

write_1602_dat(xingqi[shu-1][i]);

}

voidtime_bcd(uintx)

a=time_shuzhi[x]/16;

b=time_shuzhi[x]%16;

if(b==0x0a)

a++;

b=0;

time_shuzhi[x]=a*16+b;

}

/********************************

按键设置时间

********************************/

voidkeyscan()

if(key1==0)

delay1ms(5);

if(key1==0)

{

while(!

key1);

gn_flag++;

if(gn_flag==8)

{

gn_flag=0;

write_1602_cmd(0x0c);

write_ds1302(0x8e,0x00);

for(i=0;

{

write_ds1302(time_wadd[i],time_shuzhi[i]);

}

write_ds1302(0x8e,0x10);

}

switch(gn_flag)

case1:

write_1602_cmd(0x80+0x40+11);

write_1602_cmd(0x0f);

break;

case2:

write_1602_cmd(0x80+0x40+8);

case3:

write_1602_cmd(0x80+0x40+5);

case4:

write_1602_cmd(0x80+14);

case5:

write_1602_cmd(0x80+10);

case6:

write_1602_cmd(0x80+7);

case7:

write_1602_cmd(0x80+4);

default:

break;

if(key2==0)

if(key2==0)

{

key2);

case1:

time_shuzhi[6]++;

time_bcd(6);

if(time_shuzhi[6]==0x59)time_shuzhi[6]=0;

xieshijian2(10,time_shuzhi[6]);

write_1602_cmd(0x80+0x40+11);

break;

case2:

time_shuzhi[5]++;

time_bcd(5);

if(time_shuzhi[5]==0x59)time_shuzhi[5]=0;

xieshijian2(7,time_shuzhi[5]);

write_1602_cmd(0x80+0x40+8);

case3:

time_shuzhi[4]++;

time_bcd(4);

if(time_shuzhi[4]==0x12)time_shuzhi[4]=0;

xieshijian2(4,time_shuzhi[4]);

write_1602_cmd(0x80+0x40+5);

case4:

time_shuzhi[3]++;

time_bcd(3);

if(time_shuzhi[3]==0x8)time_shuzhi[3]=1;

xiexingqi(12,time_shuzhi[3]);

write_1602_cmd(0x80+14);

case5:

time_shuzhi[2]++;

time_bcd

(2);

if(time_shuzhi[2]==0x30)time_shuzhi[2]=0;

xieshijian1(9,time_shuzhi[2]);

write_1602_cmd(0x80+10);

case6:

time_shuzhi[1]++;

time_bcd

(1);

if(time_shuzhi[1]==0x13)time_shuzhi[1]=1;

xieshijian1(6,time_shuzhi[1]);

write_1602_cmd(0x80+7);

case7:

time_shuzhi[0]++;

time_bcd(0);

if(time_shuzhi[6]==0x50)time_shuzhi[6]=0;

xieshijian1(3,time_shuzhi[0]);

write_1602_cmd(0x80+4);

default:

}

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

当前位置:首页 > PPT模板 > 图表模板

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

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