51单片机实现电子时钟功能 - 1602液晶显示 联系客服

发布时间 : 星期一 文章51单片机实现电子时钟功能 - 1602液晶显示更新完毕开始阅读ee34e83443323968011c92cd

图2.6 1602与单片机连线图

第三章 程序设计及其调试

3.1 程序设计 程序设计如下: #include

#define uchar unsigned char #define uint unsigned int sbit lcdrs=P2^0; sbit lcswr=P2^1; sbit lcden=P2^2; sbit s1=P1^0; sbit s2=P1^1;

9

sbit s3=P1^2; sbit rd=P3^7; uchar count,s1num; char miao,shi,fen;

uchar code table[]=%uchar code table1[]=\void delay(uint z) { uint x,y; for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void write_com(uchar com) { lcdrs=0; lcswr=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; }

void write_date(uchar date) { lcdrs=1; lcden=0; P0=date; delay(5);

lcden=1; 10

delay(5); lcden=0;

}

void init() {

uchar num;

lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(num=0;num<15;num++) { write_date(table[num]); delay(5);

}

write_com(0x80+0x40); for(num=0;num<12;num++) { write_date(table1[num]); delay(5);

}

TMOD=0x01;

TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1; ET0=1;

TR0=1;

11

}

void write_sfm(uchar add,uchar date) { uchar shi,ge; shi=date/10; ge=date;

write_com(0x80+0x40+add); write_date(0x30+shi); write_date(0x30+ge);

}

void keyscan() { rd=0; if(s1==0) { delay(5); if(s1==0) { s1num++; while(!s1); if(s1num==1) { TR0=0;

write_com(0x80+0x40+10); write_com(0x0f);

}

} if(s1num==2) {

write_com(0x80+0x40+7);

12