单片机课程设计报告(万年历) 联系客服

发布时间 : 星期四 文章单片机课程设计报告(万年历)更新完毕开始阅读9f121058ccbff121dc368334

江西财经大学职业技术学院 单片机课程设计报告 }

void TimeSet(void) //时间调整函数 {

display_Time(); if(SET==0) {

delay1ms(10); if(SET==0) {

mode++; delay1ms(20); switch(mode) {

case(1):{gbdisplay(0x48);hourset(); delay1ms(500);} break; case(2):{gbdisplay(0x4c);minuteset();delay1ms(500);} break; case(3):{gbdisplay(0x4f);secondset();delay1ms(500);} break; case(4):{gbdisplay(0x09);yearset();delay1ms(500);} break;

{ }

if(RED==0) { }

display_minutea(minutea); gbdisplay(0x48); if(CANL==0) { }

delay1ms(500); break; delay1ms(20); if(RED==0) { }

minutea--;

if(minutea==0) minutea=59; while(RED==0) ; delay1ms(20); if(ADD==0) { }

minutea++;

if(minutea>59) minutea=0; while(ADD==0) ;

}

第 49 页 共 63 页

江西财经大学职业技术学院 单片机课程设计报告 case(5):{gbdisplay(0x0c);monthset();delay1ms(500);} break; case(6):{gbdisplay(0x0f);dayset();delay1ms(500);} break;

}

if(mode==7) mode=0;

}

}

}

/***************显示温度模块********************/

unsigned char code displayexplain[]={%unsigned char code displayerror[]={%unsigned char code displayerror1[]={%unsigned char code displaypart1[]={%unsigned char code displaypart2[]={%unsigned char flag;

/**********************操作DS18B20模块***************************/ sbit DQ=P3^3; unsigned char time;

/**********************DS18B20初始化****************************/ bit IntDS18B20(void) { bit temp; DQ=1;

for(time=0;time<2;time++); DQ=0;

for(time=0;time<200;time++); DQ=1;

for(time=0;time<10;time++); temp=DQ;

for(time=0;time<200;time++); return temp; }

/**************************读DS18B20**********************/ unsigned char ReadDS18B20(void) { unsigned char i; unsigned char dat; for(i=0;i<8;i++) { DQ=1; _nop_(); DQ=0; _nop_(); DQ=1;

for(time=0;time<2;time++); 第 50 页 共 63 页

江西财经大学职业技术学院 单片机课程设计报告 dat>>=1; if(DQ==1) dat=dat|0x80; else

dat=dat|0x00; for(time=0;time<10;time++);

}

return dat;

}

/*********************向DS18B20写数据**************************/ void WriteDS18B20(unsigned char date) { unsigned char i; for(i=0;i<8;i++) { DQ=1; _nop_(); DQ=0;

DQ=date&0x01;

for(time=0;time<10;time++); DQ=1;

for(time=0;time<1;time++);

date>>=1;

}

for(time=0;time<4;time++); }

/*******************为读取温度做好准备************************/ void ReadyreadDS18B20(void) { IntDS18B20(); WriteDS18B20(0XCC); WriteDS18B20(0X44); delay1ms(200); IntDS18B20(); WriteDS18B20(0XCC); WriteDS18B20(0XBE);

}

/*************在1602液晶上显示相关信息模块**********************/ /****************当未检测到DS18B20时显示信息模块****************/ void Display_Error(void) {

unsigned char i=0; 第 51 页 共 63 页

江西财经大学职业技术学院 单片机课程设计报告 Write_Address(0x00);

while(displayerror[i]!='\\0') { Write_Date(displayerror[i]); i++;

delay1ms(100);

}

delay1ms(5); i=0;

Write_Address(0x40);

while(displayerror1[i]!='\\0') { Write_Date(displayerror1[i]); i++;

delay1ms(100);

}

delay1ms(3000) ;

}

/*************温度显示模块****************/ void Display_Explain(void) { unsigned char i=0; Write_Address(0x00); delay1ms(5);

while(displayexplain[i]!='\\0') { Write_Date(displayexplain[i]); i++;

delay1ms(5); } i=0;

Write_Address(0x40);

while(displaypart1[i]!='\\0') { Write_Date(displaypart1[i]); i++;

delay1ms(5);

} i=0;

Write_Address(0x4C);

while(displaypart2[i]!='\\0') { Write_Date(displaypart2[i]);

i++;

第 52 页 共 63 页