1、/*1602液晶*/void write_com(uchar com)/写命令 lcdrs=0; lcden=0; P2=com; delay(5); lcden=1;void write_data(uchar date)/写数据 lcdrs=1; P2=date;void write_by_xy(uchar x,uchar y)/坐标定位 uchar address; if(y=0) address=0x80+x;/y=0,写第一行 else address=0xc0+x;/y=1,写第二行 write_com(address);/*void write_char(uchar x,uchar
2、 y,uchar date)/坐标定位显示 write_by_xy(x,y);/先定位 write_data(date);/后写数*/void write_string(uchar x,uchar y,uchar *s)/写字符串/设定显示位置 while(*s)/write character P2=*s; write_data(*s); s+; void write_sfm(uchar add,uchar date)/写时分秒函数 uchar hour,ge; hour=date/10;/分解一个2位数的十位和个位 ge=date%10; write_com(0x80+add);/设置显示
3、位置 write_data(0x30+hour);/送去液晶显示十位 write_data(0x30+ge); /送去液晶显示个位void write_cg()/写入固定汉字和符号 write_com(0x40); /设定CGRAM地址 for(num=0;num31)/若大于31后将置一 day=1; write_sfm(0x48,day); write_com(0x80+0x48); if(key1num=5)/若功能键第五次按下 mon+;/则调整月加1 if(mon12)/若大于12后将置一 mon=1; write_sfm(0x45,mon); write_com(0x80+0x45
4、); if(key1num=6)/若功能键第六次按下 ye2+;/则调整年加1 if(ye2=0x0a)/若满99后将清零 ye2=0; year=ye1*100+ye2; write_sfm(0x42,ye2); write_com(0x80+0x42); if(key1num=7)/若功能键第七次按下 ye1+;/则调整年加100 if(ye1=0x0a)/若满99后将清零 ye1=0; write_sfm(0x40,ye1); write_com(0x80+0x40); if(key1num=8)/若功能键第八次按下 week+;/则调整周加一 if(week7)/若大于7后置一 wee
5、k=1; write_sfm(0x4f,week); write_com(0x80+0x4f); if(key3=0) if(key3=0)/确认减小键被按下key3); sec-;/则调整秒减1 if(sec=-1)/若减到负数则将其重新设置为59 sec=59; min-;/则调整分钟减1 if(min=-1)/若减到负数则将其重新设置为59 min=59; hour-;/则调整小时减1 if(hour=-1)/若减到负数则将其重新设置为23 hour=23; day-;/则调整日减1 if(day=0)/若日为零时将置一 day=31; write_com(0x80+0x49); mon-;/则调整月减1 if(mon=0)/若月为零将置一 mon=12; ye2-;/则调整年减1 if(ye20)/若小于零后将设置为99 ye2=99; ye1-;/则调整年减100 if(ye128) if(mon=3)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1