常熟理工学院单片机实习(6)

2019-03-29 17:39

write_data(':'); write_com(0x80+0x40); for(i=0;i<6;++i) write_data(Alarm_2[i]); while(P3==0xff); if(key1==0||key2==0||key3==0) { delay(10); if(key1==0||key2==0||key3==0) {display2(); } } else if(key4==0) goto loop; } if(cnt==3) { while(!key3); //表示闹钟时间设置退出 ahourge3=ahour3; ahourshi3=ahour3/10; write_com(0x80+0x40+7); write_data(table1[ahourge3]); delay(5); write_com(0x80+0x40+6); delay(2); write_data(table1[ahourshi3]); aminge3=amin3; aminshi3=amin3/10; write_com(0x80+0x40+10); write_data(table1[aminge3]); delay(5); write_com(0x80+0x40+9); delay(2); write_data(table1[aminshi3]); write_com(0x80+0x40+8); write_data(':'); write_com(0x80+0x40); for(i=0;i<6;++i) write_data(Alarm_3[i]); while(P3==0xff); if(key1==0||key2==0||key3==0) { delay(10); if(key1==0||key2==0||key3==0) {display3();

26

} } else if(key4==0) goto loop; }

if(cnt==4) { while(!key3); //表示闹钟时间设置退出 ahourge4=ahour4; ahourshi4=ahour4/10; write_com(0x80+0x40+7); write_data(table1[ahourge4]); delay(5); write_com(0x80+0x40+6); delay(2); write_data(table1[ahourshi4]); aminge4=amin4; aminshi4=amin4/10; write_com(0x80+0x40+10); write_data(table1[aminge4]); delay(5); write_com(0x80+0x40+9); delay(2); write_data(table1[aminshi4]); write_com(0x80+0x40+8); write_data(':'); write_com(0x80+0x40); for(i=0;i<6;++i) write_data(Alarm_4[i]); while(P3==0xff); if(key1==0||key2==0||key3==0) { delay(10); if(key1==0||key2==0||key3==0) {display4(); } } else if(key4==0) goto loop; }

if(cnt>4) {

cnt=0; }

27

} }

void lcd_init() //LCD初始化 { lcden=0; lcdrw=0; write_com(0x38); //设置8位格式,2行,5×7 write_com(0x0c); //整体显示,关光标,不闪烁 write_com(0x06); //设定输入方式,增量不转移 write_com(0x01); //清除屏幕显示 delay(2); write_com(0x80); for(i=0;i<16;i++) { write_data(table2[i]); //写入显示时间数据 delay(1); }

write_com(0x40); for(i=0;i<8;i++) { write_data(table3[i]); //写入自定义字符“日” delay(1); } write_com(0x40+8); for(i=0;i<16;i++) { write_data(table5[i]); //写入自定义字符“月” delay(1); } write_com(0x40+16); for(i=0;i<8;i++) { write_data(table4[i]); //写入自定义字符 delay(1); } write_com(0x40+24); for(i=0;i<8;i++) { write_data(table6[i]); //写入自定义字符 “C” delay(1);

28

} write_com(0x40+32); for(i=0;i<8;i++) { write_data(table7[i]); //写入自定义字符“秒” delay(1); } write_com(0x40+40); for(i=0;i<8;i++) { write_data(table8[i]); delay(1); } write_com(0x40+48); for(i=0;i<8;i++) { write_data(table9[i]); delay(1); } }

void judge() { if(sec==60) { min++; sec=0; } if(min==60) { hour++; min=0; } if(hour==24) { ri++; hour=0; } if(ri==30) { yue++; ri=1; }

//写入自定义字符“秒” //写入自定义字符“年” 29

if(yue==12) { nian++; yue=1; } }

void init() //C51初始化函数 { key1=1;key2=1;key3=1;key4=1;sec=0;a=0;sound=1; TMOD=0x10; //定时计数器T1工作在方式1 TL1=0xB0; TH1=0x3C; //计数初值为15536,50ms定时 EA=1; ET1=1; TR1=1; }

void speak()//music { if(amin1==min&&ahour1==hour||amin2==min&&ahour2==hour||amin3==min&&ahour3==hour||amin4==min&&ahour4==hour) //显示时间与闹钟设置时间完全一样且闹钟\ { delay(5); sound=~sound; led=0; // delay(10); // delay(10); // delay(10); } else {led=1; sound=1;} }

void led1() interrupt 3 //LED1中断函数 50ms定时 { TL1=0xB0; TH1=0x3C; speak(); //num1++; num2++;

30


常熟理工学院单片机实习(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:[精品]内蒙古包头市青山区2017-2018学年高一《英语》10月月考试

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: