为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

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

2011-11-28 21页 doc 88KB 46阅读

用户头像

is_662578

暂无简介

举报
单片机控制1602液晶显示万年历单片机控制1602液晶显示万年历 /* 跳线设置:默认 利用三个按键来调节时间---希望带给你帮助 把1602液晶插入51hei-5型单片机开发板后,即可显示时间 调节时间使用int0,s4和s5这3个按键 */ #include #include 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...
单片机控制1602液晶显示万年历
单片机控制1602液晶显示万年历 /* 跳线设置:默认 利用三个按键来调节时间---希望带给你帮助 把1602液晶插入51hei-5型单片机开发板后,即可显示时间 调节时间使用int0,s4和s5这3个按键 */ #include #include<51hei.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;x>0;x--) for(y=110;y>0;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;num<15;num++) { write_data(table0[num]); delay(5); } write_com(0x80+0x40); for(num=0;num<12;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) { while(!key1); write_com(0x80+0x40+7); } if(bb==3) { while(!key1); write_com(0x80+0x40+4); } if(bb==4) { while(!key1); write_com(0x80+12); } if(bb==5) { while(!key1); write_com(0x80+9); } if(bb==6) { while(!key1); write_com(0x80+6); } if(bb==7) { while(!key1); write_com(0x80+3); } if(bb==8) { bb=0; while(!key1); TR0=1; write_com(0x0c); } } } if(bb==1) { if(key2==0) { delay(5); while(!key2); miao++; if(miao==60) { miao=0; } sfm_date(10,miao); write_com(0x80+0x40+10); } if(key3==0) { delay(5); while(!key3); miao--; if(miao==-1) { miao=59; } sfm_date(10,miao); write_com(0x80+0x40+10); } } if(bb==2) { if(key2==0) { delay(5); while(!key2); fen++; if(fen==60) { fen=0; } sfm_date(7,fen); write_com(0x80+0x40+7); } if(key3==0) { delay(5); while(!key3); fen--; if(fen==-1) { fen=59; } sfm_date(7,fen); write_com(0x80+0x40+7); } } if(bb==3) { if(key2==0) { delay(5); while(!key2); shi++; if(shi==24) { shi=0; } sfm_date(4,shi); write_com(0x80+0x40+4); } if(key3==0) { delay(5); while(!key3); shi--; if(shi==-1) { shi=23; } sfm_date(4,shi); write_com(0x80+0x40+4); } } if(bb==4) { if(key2==0) { delay(5); dd++; while(!key2); if(dd==1) { for(cc=0;cc<3;cc++) { write_data(table2[cc]); } } write_com(0x80+12); if(dd==2) { for(cc=0;cc<3;cc++) { write_data(table3[cc]); } } write_com(0x80+12); if(dd==3) { for(cc=0;cc<3;cc++) { write_data(table4[cc]); } } write_com(0x80+12); if(dd==4) { for(cc=0;cc<3;cc++) { write_data(table5[cc]); } } write_com(0x80+12); if(dd==5) { for(cc=0;cc<3;cc++) { write_data(table6[cc]); } } write_com(0x80+12); if(dd==6) { for(cc=0;cc<3;cc++) { write_data(table7[cc]); } } write_com(0x80+12); if(dd==7) { dd=0; for(cc=0;cc<3;cc++) { write_data(table8[cc]); } } write_com(0x80+12); } if(key3==0) { dd++; delay(5); while(!key3); if(dd==1) { for(cc=0;cc<3;cc++) { write_data(table8[cc]); } } write_com(0x80+12); if(dd==2) { for(cc=0;cc<3;cc++) { write_data(table7[cc]); } } write_com(0x80+12); if(dd==3) { for(cc=0;cc<3;cc++) { write_data(table6[cc]); } } write_com(0x80+12); if(dd==4) { for(cc=0;cc<3;cc++) { write_data(table5[cc]); } } write_com(0x80+12); if(dd==5) { for(cc=0;cc<3;cc++) { write_data(table4[cc]); } } write_com(0x80+12); if(dd==6) { for(cc=0;cc<3;cc++) { write_data(table3[cc]); } } write_com(0x80+12); if(dd==7) { dd=0; for(cc=0;cc<3;cc++) { write_data(table2[cc]); } } write_com(0x80+12); } } if(bb==5) { if(key2==0) { delay(5); while(!key2); ee++; if(ee==32) { ee=1; } nyr_date1(9,ee); write_com(0x80+9); } if(key3==0) { delay(5); while(!key3); ee--; if(ee==0) { ee=31; } nyr_date1(9,ee); write_com(0x80+9); } } if(bb==6) { if(key2==0) { delay(5); while(!key2); ff++; if(ff==13) { ff=1; } nyr_date1(6,ff); write_com(0x80+6); } if(key3==0) { delay(5); while(!key3); ff--; if(ff==0) { ff=12; } nyr_date1(6,ff); write_com(0x80+6); } } if(bb==7) { if(key2==0) { delay(5); while(!key2); gg++; if(gg==41) { gg=11; } nyr_date1(3,gg); write_com(0x80+3); } if(key3==0) { delay(5); while(!key3); gg--; if(gg==10) { gg=41; } nyr_date1(3,gg); write_com(0x80+3); } } if(aa==20) { aa=0; miao++; if(miao==60) { miao=0; fen++; if(fen==60) { fen=0; shi++; if(shi==24) { shi=0; flag=1; } sfm_date(4,shi); } sfm_date(7,fen); } sfm_date(10,miao); } if(flag==1) { flag=0; ee++; if(ee==32) { ee=1; flag1=1; } nyr_date1(9,ee); //write_com(0x80+9); dd++; if(dd==8) { dd=0; } if(dd==1) { write_com(0x80+12); for(cc=0;cc<3;cc++) { write_data(table2[cc]); } } write_com(0x80+12); if(dd==2) { write_com(0x80+12); for(cc=0;cc<3;cc++) { write_data(table3[cc]); } } //write_com(0x80+12); if(dd==3) { write_com(0x80+12); for(cc=0;cc<3;cc++) { write_data(table4[cc]); } } //write_com(0x80+12); if(dd==4) { write_com(0x80+12); for(cc=0;cc<3;cc++) { write_data(table5[cc]); } } //write_com(0x80+12); if(dd==5) { write_com(0x80+12); for(cc=0;cc<3;cc++) { write_data(table6[cc]); } } //write_com(0x80+12); if(dd==6) { write_com(0x80+12); for(cc=0;cc<3;cc++) { write_data(table7[cc]); } } //write_com(0x80+12); if(dd==7) { dd=0; write_com(0x80+12); for(cc=0;cc<3;cc++) { write_data(table8[cc]); } } // write_com(0x80+12); } if(flag1==1) { flag1=0; ff++; if(ff==13) { ff=1; flag2=1; } nyr_date1(6,ff); write_com(0x80+6); } if(flag2==1) { flag2=0; gg++; if(gg==41) { gg=11; } nyr_date1(3,gg); write_com(0x80+3); } } } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; aa++; }
/
本文档为【单片机控制1602液晶显示万年历】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索