DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx

上传人:b****5 文档编号:8435389 上传时间:2023-05-11 格式:DOCX 页数:20 大小:94.78KB
下载 相关 举报
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第1页
第1页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第2页
第2页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第3页
第3页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第4页
第4页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第5页
第5页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第6页
第6页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第7页
第7页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第8页
第8页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第9页
第9页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第10页
第10页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第11页
第11页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第12页
第12页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第13页
第13页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第14页
第14页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第15页
第15页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第16页
第16页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第17页
第17页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第18页
第18页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第19页
第19页 / 共20页
DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx

《DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx》由会员分享,可在线阅读,更多相关《DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx(20页珍藏版)》请在冰点文库上搜索。

DS1302+DS18B20+LCD1602单片机c语言驱动程序案例Word文件下载.docx

ucharrl=0;

uintqq,time,yy;

uintTEMPL,TEMPH,aa,bb;

ucharcodezimo[]={

0x00,0x0E,0x00,0x0E,0x00,0x1F,0x00,0x00,//三

0x00,0x1F,0x15,0x15,0x1B,0x11,0x1F,0x00,//四

0x00,0x1E,0x08,0x1E,0x0A,0x0A,0x1F,0x00,//五

0x00,0x04,0x00,0x1F,0x0A,0x11,0x00,0x00,//六

0x04,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02,//年

0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13,0x00,//月

0x1F,0x11,0x11,0x1F,0x11,0x11,0x1F,0x00,//日

0x04,0x0E,0x1C,0x1F,0x1C,0x0E,0x04,0x00

};

ucharcodelcdadd[]={0x86,0x8a,0x8e,0xc8,0xcb,0xce,0x82};

ucharcodesz[]={"

0123456789"

};

voidkeyer(void)

{

p20=1;

p21=0;

if(!

p22){while(!

p22);

key=0x01;

}

p23){while(!

p23);

key=0x02;

p24){while(!

p24);

key=0x03;

p25){while(!

p25);

key=0x04;

}

p20=0;

p21=1;

p22){while(!

key=0x05;

key=0x06;

key=0x07;

key=0x08;

}

}/**************盼键*************/

voidinto0init(void)

{

TMOD=0X01;

TH0=15536/256;

TL0=5536%256;

IE=0X82;

TR0=1;

}/************INTO0INITIALIZTION***/

voidinto0deal(void)interrupt1

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

time=time+1;

if(time==8){time=0;

san=!

san;

}

}

voiddelayus(ucharn)

while(--n);

}/************USDELAY*************/

voiddelay(uintm)

uinti,j;

for(i=0;

i<

m;

i++)

for(j=0;

j<

125;

j++);

}/************MSDELAY************/

voidLCD_WC(uchari)

{

LCDRS=0;

LCDE=1;

P0=i;

delay(5);

LCDE=0;

delay

(1);

}/************LCDWTIRECOMMAND****/

voidLCD_WD(uchari)

{

LCDRS=1;

LCDE=1;

P0=i;

delay(5);

LCDE=0;

delay

(2);

}/***********LCDWTIREDATA*******/

voidLCD_WB(void)

uchari;

LCD_WC(0x40);

64;

i++)LCD_WD(zimo[i]);

}/************LCDWTIREWORD******/

voidLCD_CS(void)

{

LCD_WC(0x01);

LCD_WC(0x02);

LCD_WC(0x06);

LCD_WC(0x0C);

LCD_WC(0x14);

LCD_WC(0x38);

delay(10);

LCD_WB();

}/************LCDINITIALIZTION**/

bitDS18b20_CS(void)

bitdp;

DQ=0;

delayus(237);

DQ=1;

delayus(27);

dp=DQ;

return(dp);

}/***********DS18b20INITIALIZTION*/

voidwbit(bitbp)

delayus(3);

if(bp)DQ=bp;

delayus(20);

}/***********DS18b20WRITEBIT*****/

voidwbyte(ucharm)

8;

wbit(m&

0x01);

m=m>

>

1;

}

}/***********DS18b20WRITEBYTE***/

bitrbit(void)

bitbp;

if(DQ)bp=1;

elsebp=0;

return(bp);

}/***********DS18b20READBIT*****/

ucharrbyte(void)

uchari,m=0;

{

m=m>

if(rbit())m=m|0x80;

return(m);

}/***********DS18b20READBYTE****/

voidSTARTUPDS18b20(void)

while(DS18b20_CS());

wbyte(0xcc);

wbyte(0x44);

//delay(750);

for(yy=0;

yy<

10;

yy++){keyer();

if(key!

=0xaa)break;

}/***********STARTUPDS18b20******/

voidREADTEMP(void)

STARTUPDS18b20();

//delay

(1);

wbyte(0xbe);

TEMPL=rbyte();

TEMPH=rbyte();

n=(TEMPL+TEMPH*256)*0.0625;

n=n*100;

}/***********READTEMPINDS18b20*/

voidDISPDS18b20(void)

uintm;

READTEMP();

LCD_WC(0x0c0);

m=(uint)n;

LCD_WD(sz[m/1000]);

aa=sz[m/1000];

m=m%1000;

LCD_WD(sz[m/100]);

bb=sz[m/100];

m=m%100;

LCD_WD('

.'

);

LCD_WD(sz[m/10]);

m=m%10;

LCD_WD(sz[m]);

C'

if((aa>

=sz[2])&

&

(bb>

=sz[5])){p17=!

p17;

}

(bb==sz[5]))p17=0;

if((aa<

(bb<

sz[4]))p17=1;

}/*DS18b20TEMPDEALWITHANDRENOVATE*/

ucharDS1302read(ucharaddress)

uintb,c,e;

e=address;

SCLK=0;

REST=0;

REST=1;

for(b=0;

b<

b++)

{

SCLK=0;

IO=(bit)(e&

0x01);

SCLK=1;

e=e>

1;

}

{

c=c>

if(IO)c=c|0x80;

REST=0;

SCLK=1;

return(c);

voidDS1302wirte(ucharaddress,uchardataes)

uinta,adddat;

adddat=address;

for(a=0;

a<

a++)

IO=(bit)(adddat&

//adddat&

0x01;

////ddress&

adddat=adddat>

adddat=dataes;

//dataes&

0x01;

}

voidDS1302readrealtime(void)

sec=DS1302read(0x81);

min=DS1302read(0x83);

hour=DS1302read(0x85);

day=DS1302read(0x87);

month=DS1302read(0x89);

year=DS1302read(0x8d);

week=DS1302read(0x8b);

voidDS1302init(void)

DS1302wirte(0x8e,0x00);

DS1302wirte(0x90,0xa9);

DS1302wirte(0x80,seccs);

DS1302wirte(0x82,mincs);

DS1302wirte(0x84,hourcs);

DS1302wirte(0x86,daycs);

DS1302wirte(0x88,monthcs);

DS1302wirte(0x8a,weekcs);

DS1302wirte(0x8c,yearcs);

voidOnlyMeSee(void)

seccs=sec;

mincs=min;

hourcs=hour;

weekcs=week;

daycs=day;

monthcs=month;

yearcs=year;

}

voidrealtimedisplay(void)

LCD_WC(0x80);

2'

0'

if(sanyear==0){

LCD_WD(sz[year/16]);

LCD_WD(sz[year%16]);

}

else

{LCD_WD('

'

LCD_WD('

LCD_WC(0x84);

LCD_WD(4);

if(sanmonth==0){

LCD_WD(sz[month/16]);

LCD_WD(sz[month%16]);

LCD_WC(0x88);

LCD_WD(5);

if(sanday==0){

LCD_WD(sz[day/16]);

LCD_WD(sz[day%16]);

}

LCD_WC(0x8C);

LCD_WD(6);

<

'

if(sanweek==0){

if(1==week%16)LCD_WD('

-'

if(2==week%16)LCD_WD('

='

if(3==week%16)LCD_WD(0);

if(4==week%16)LCD_WD

(1);

if(5==week%16)LCD_WD

(2);

if(6==week%16)LCD_WD(3);

if(7==week%16)LCD_WD(6);

else

LCD_WC(0xc8);

if(sanhour==0){

LCD_WD(sz[hour/16]);

LCD_WD(sz[hour%16]);

LCD_WC(0xca);

:

if(sanmin==0){

LCD_WD(sz[min/16]);

LCD_WD(sz[min%16]);

LCD_WC(0xcd);

if(sansec==0){

LCD_WD(sz[sec/16]);

LCD_WD(sz[sec%16]);

}

voidOnlyMeSee1(void)

EA=0;

sanyear=0;

sanmonth=0;

sanday=0;

sanweek=0;

sanhour=0;

sanmin=0;

sansec=0;

voidkeywith(void)

keyer();

if(key==0x08)

key=0xaa;

EA=1;

while

(1)

loop:

realtimedisplay();

if(rl==0){sanyear=san;

sanmonth=0;

sanweek=0;

if(rl==1){sanmonth=san;

sanyear=0;

if(rl==2){sanday=san;

if(rl==3){sanweek=san;

if(rl==4){sanhour=san;

if(rl==5){sanmin=san;

if(rl==6){sansec=san;

keyer();

if(key==0x08){break;

if(key==0x03){OnlyMeSee();

DS1302init();

break;

if(key==0x05){key=0xaa;

rl=rl-1;

if(rl==255)rl=6;

gotoloop;

if(key==0x07){key=0xaa;

rl=rl+1;

if(rl==7)rl=0;

if(key==0x02)

{key=0xaa;

switch(rl)

{

case0:

{

LCD_WC(0x82);

year=year+0x01;

switch(year)

{

case0x0a:

year=0x10;

break;

case0x1a:

year=0x20;

case0x2a:

year=0x30;

case0x31:

year=0x00;

}

LCD_WD(sz[year/16]);

LCD_WD(sz[year%16]);

LCD_WC(0x82);

}

case1:

LCD_WC(0x86);

month=month+0x01;

switch(month)

month=0x10;

case0x13:

month=0x01;

LCD_WD(sz[month/16]);

LCD_WD(sz[month%16]);

LCD_WC(0x86);

case2:

LCD_WC(0x8a);

day=day+0x01;

switch(day)

day=0x10;

day=0x20;

day=0x30;

case0x32:

day=0x01;

LCD_WD(sz[day/16]);

LCD_WD(sz[day%16]);

LCD_WC(0x8a);

case3:

LC

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2