文档详情

单片机控制1602液晶显示万年历..doc

发布:2017-01-19约9.19千字共21页下载文档
文本预览下载声明
单片机控制1602液晶显示万年历 /* 跳线设置:默认 利用三个按键来调节时间---希望带给你帮助 把1602液晶插入51hei-5型单片机开发板后,即可显示时间 调节时间使用int0,s4和s5这3个按键 */ #includereg52.h #include51hei.h sbit dula=P2^6; sbit wela=P2^7; sbit lcdwr=P2^7; sbit lcdrs=P3^5; sbit lcden=P3^4; sbit key1=P3^2; sbit key2=P3^6; sbit key3=P3^7; #define uchar unsigned char #define uint unsigned int uchar code table0[]= 2011-04-03 SUN;//16 uchar code table1[]= 00:00:00;//12 uchar code table2[]=MON; uchar code table3[]=TUE; uchar code table4[]=WED; uchar code table5[]=THU; uchar code table6[]=FRI; uchar code table7[]=SAT; uchar code table8[]=SUN; uchar num,aa,bb,cc,dd,flag,flag1,flag2; char shi,fen,miao,ee,ff,gg; void delay(uchar z) { uint x,y; for(x=z;x0;x--) for(y=110;y0;y--); } void write_com(uchar com) { lcdrs=0; delay(5); P0=com; delay(5); lcden=1; delay(5); lcden=0; } void write_data(uchar date) { lcdrs=1; delay(5); P0=date; delay(5); lcden=1; delay(5); lcden=0; } void init() { dula=0; wela=0; lcdwr=0; lcdrs=1; lcden=0; shi=00; fen=00; miao=00; bb=0; cc=0; dd=0; ee=03; ff=04; gg=11; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x80); write_com(0x01); for(num=0;num15;num++) { write_data(table0[num]); delay(5); } write_com(0x80+0x40); for(num=0;num12;num++) { write_data(table1[num]); delay(5); } TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void sfm_date(uchar add,uchar date1) { uchar shi,ge; shi=date1/10; ge=date1%10; write_com(0x80+0x40+add); write_data(0x30+shi); write_data(0x30+ge); } void nyr_date1(uchar add,uchar date1) { uchar shi,ge; shi=date1/10; ge=date1%10; write_com(0x80+add); write_data(0x30+shi); write_data(0x30+ge); } void main() {guanled(); guandz(); init(); while(1) { if(key1==0) { bb++; delay(5); if(key1==0) { if(bb==1) { while(!key1); TR0=0; write_com(0x80+0x40+10); write_com(0x0f); } if(bb==2) { wh
显示全部
相似文档