制作双屏切换的LCD1602电子钟
要求:在单片机AT89S51的控制下,利用LCD1602和两只按键完成两屏信息的切换显示。第一屏信息:第一行为自己姓名的拼音,第二行为自己学号。第二屏信息:第一行为所在城市和国家拼音,第二行为电子时钟时间显示。要求时间可通过按键进行调整。
硬件电路
软件设计
#include <reg51.h>
#include <lcd1602.h>
sbit L3=P3^2;
sbit K1=P3^3;
sbit K2=P2^3;
sbit K3=P2^4;
sbit K4=P2^5;
sbit L1=P2^6;
sbit L2=P2^7;
uint cishu;
uchar miao;
uchar fen;
uchar shi;
uchar miao=0,fen=0,shi=0;
uchar code tab[]={
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
bit keyflag;
void xianshi1(void);
void xianshi2(void);
void write_sfm(uchar add,uchar date)
{
uchar ge,shi;
shi=tab[date/10];
ge=tab[date%10];
write_command(add);
write_data(shi);
write_command(add+0x01);
write_data(ge);
}
void clock_write(uint s,uint m,uint h)
{
write_sfm(0xc4,h);
write_sfm(0