void writedata(uchar dat) //液晶写数据函数。 { }
void writetime(uchar add,uchar dat) // 液晶刷新时分秒。 { }
void writenyr(uchar add,uchar dat) // 液晶刷新日期。 {
//0 为年, 3 为月, 6 为日。
//3为时的开始位置,6 为分, 9 为秒。
lcdrs=1;// 置为写入数据 lcddata=dat;// 送入数据 delay(1); lcden=1; delay(1); lcden=0;
uchar shi,ge; shi=dat/10; ge=dat;
writecom(0x80+0x40+add); writedata(0x30+shi); writedata(0x30+ge);
uchar shi,ge; shi=dat/10;
编辑版word
}
ge=dat; writecom(0x80+add); writedata(0x30+shi); writedata(0x30+ge);
void writeweek(uchar week) // 液晶星期几显示函数。 {
writecom(0x80+9); //从第一行隔十三个字符后开始写星期 switch(week) {
case 1: writedata('M');
writedata('O'); writedata('N'); break;
case 2: writedata('T');
writedata('U'); writedata('E'); break;
case 3: writedata('W');
writedata('E'); writedata('D'); break;
编辑版word
}
}
case 4: writedata('T');
writedata('H'); writedata('U'); break;
case 5: writedata('F');
writedata('R'); writedata('I'); break;
case 6: writedata('S');
writedata('A'); writedata('T'); break;
case 7: writedata('S');
writedata('U'); writedata('N'); break;
void keyscan() // 键盘扫描函数。 {
if((flagalarm==1)||(flagevent==1)) // 如果闹钟在响或者有事件提醒,任意键
停止闹钟响或者取消事件提醒
编辑版word
{ }
if(kmenu==0) //检测功能键。 {
delay(5); if(kmenu==0) {
kmenunum++; // 记录功能键按下次数。 if(flagseta==1) // 检测是否在进行闹钟设置。
if(kmenunum==4) kmenunum=1; // 因为进行闹钟设置时,只调
if((kmenu==0)||(kup==0)||(kdown==0)||(kalarm==0)||(kevent==0)) { }
delay(5);
if((kmenu==0)||(kup==0)||(kdown==0)||(kalarm==0)||(kevent==0)) { }
while(!(kmenu&&kup&&kdown&&kalarm&&kevent)); di();
flagalarm=0; // 清除闹钟标志。 flagevent=0; // 清除事件提醒标志。
节时分秒,所以, kmenunum 只能等于 1,2,3。
编辑版word