1、1602电子时钟1602电子时钟1602电子时钟源程序:#include#define uchar unsigned char#define uint unsigned intuint shi,fen,ge,miao,add,nian,yue,ri,a,num,count;void delay(uchar z) uchar i,j; for(i=z;i0;i-) for(j=110;j0;j-);sbit k1=P30;sbit k2=P31;sbit k3=P32;sbit duan=P22;sbit wei=P23;sbit rs=P24;sbit rw=P25;sbit en=P26;v
2、oid write_com(uchar com) rs=0; rw=0; P0=com; delay(5); en=1; delay(5); en=0; void write_date(uchar date) rs=1; rw=0; P0=date; delay(5); en=1; delay(5); en=0; void write_sfm(uchar add,uchar num) uchar shi,ge; shi=num/10; ge=num%10; write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge);
3、void write_nian(uint add,uint num ) uint qian,bai,shi,ge; qian=num/1000; bai=num%1000/100; shi=num%1000%100/10; ge=num%10; write_com(0x80+0x00+add); write_date(0x30+qian); write_date(0x30+bai); write_date(0x30+shi); write_date(0x30+ge); void write_yrxq(uint add,uint num) uint shi,ge; shi=num/10; ge=
4、num%10; write_com(0x80+0x00+add); write_date(0x30+shi); write_date(0x30+ge);void write_xq(uchar add,uchar num) write_com(0x80+0x00+add); write_date(0x30+num); void init() duan=0; wei=0; en=0; shi=0; fen=0; miao=0; nian=2012; yue=7; ri=28; a=6; num=0; count=0; write_com(0x38); write_com(0x0c); write_
5、com(0x06); write_com(0x01); write_com(0x80); write_com(0x80+0x40+6); write_date(:); delay(5); write_com(0x80+0x40+9); write_date(:); delay(5); write_com(0x80+0x00+4); write_date(-); delay(5); write_com(0x80+0x00+7); write_date(-); delay(5); write_com(0x80+0x00+10); write_date( ); delay(5); write_nia
6、n(0,nian); write_yrxq(5,yue); write_yrxq(8,ri); write_xq(11,a); write_sfm(10,miao); write_sfm(7,fen); write_sfm(4,shi); TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;void key1() if(k1=0) delay(5); if(k1=0) num+; while(!k1); if(num=1) TR0=0; write_com(0x80+0x40+10); writ
7、e_com(0x0f); if(num=2) write_com(0x80+0x40+7); if(num=3) write_com(0x80+0x40+4); if(num=4) write_com(0x80+11); if(num=5) write_com(0x80+8); if(num=6) write_com(0x80+5); if(num=7) write_com(0x80); if(num=8) num=0; write_com(0x0c); TR0=1; if(num!=0) if(k2=0) delay(5); if(k2=0) while(!k2); if(num=1) mi
8、ao+; if(miao=60) miao=0; write_sfm(10,miao); write_com(0x80+0x40+10); if(num=2) fen+; if(fen=60) fen=0; write_sfm(7,fen); write_com(0x80+0x40+7); if(num=3) shi+; if(shi=24) shi=0; write_sfm(4,shi); write_com(0x80+0x40+4); if(num=4) a+; if(a=8) a=1; write_xq(11,a); write_com(0x80+0x00+11); if(num=5)
9、ri+; if(ri=30) ri=1; write_yrxq(8,ri); write_com(0x80+0x00+8); if(num=6) yue+; if(yue=13) yue=1; write_yrxq(5,yue); write_com(0x80+0x00+5); if(num=7) nian+; write_nian(0,nian); write_com(0x80+0x00+0); if(k3=0) delay(5); if(k3=0) while(!k3); if(num=1) miao-; if(miao=-1) miao=59; write_sfm(10,miao); w
10、rite_com(0x80+0x40+10); if(num=2) fen-; if(fen=-1) fen=59; write_sfm(7,fen); write_com(0x80+0x40+7); if(num=3) shi-; if(shi=-1) shi=23; write_sfm(4,shi); write_com(0x80+0x40+4); if(num=4) a-; if(a=1) a=7; write_xq(11,a); write_com(0x80+0x00+11); if(num=5) ri-; if(ri=0) ri=30; write_yrxq(8,ri); write
11、_com(0x80+0x00+8); if(num=6) yue-; if(yue=0) yue=12; write_yrxq(5,yue); write_com(0x80+0x00+5); if(num=7) nian-; write_nian(0,nian); write_com(0x80+0x00+0); void main() init(); while(1) if(count=20) count=0; miao+; if(miao=60) miao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; a+; if(a=8) a=1; ri+; if(ri=31) ri=1; yue+; if(yue=13) yue=1; nian+; if(nian=9999) nian=2012; write_nian(0,nian); write_yrxq(5,yue); write_xq(11,a); write_yrxq(8,ri); write_sfm(4,shi); write_sfm(7,fen); write_sfm(10,miao); key1(); void led() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; count+;