一、简介
此电路主要有51单片机、LCD1602模块、PCF8563芯片和按键组成组成,通过LCD1062显示当前时间,按键可设置时间。
二、运行效果
三、部分代码
/*想要更多项目私wo!!!*/
#include
#include
#define uchar unsigned char
#define uint unsigned int
void init()
{
uchar num;
lcden=0;
write_com(0x38); //0011 1000B,功能模式设置,设置为8为数据口,两行显示,5*7点阵
write_com(0x0c); //0000 1011B,显示开及光标设置,关显示,显示光标,光标闪烁
write_com(0x06); //0000 0110B,显示光标移动设置,读或写一个字符,地址指针减一且光标减一,写一个字符屏幕显示不移动
write_com(0x01); //0000 0001B,显示清屏,数据指针和所有显示清屏
write_com(0x80); //1000 000B,关闭显示
delay1602(5);
write_com(0x80); //1000 000B,设置为2行显示,写入第一行字符的地址,第一行地址是00-2F
for(num=0;num<15;num++)
{
write_date(table[num]); //写入第一行数据
delay1602(5);
}
write_com(0x80+0x40); //1100 0000B,设置为2行显示,写入第二行字符的地址,第而行地址是40-67
for(num=0;num<15;num++) //写入第二行数据
{
write_date(table1[num]);//写入第二行数据
delay1602(5);
}
}
/********************************************
读入时间到内部缓冲区----外部调用
********************************************/
void P8563_gettime()
{
P8563_Read();
if(g8563_Store[0]==0)
P8563_Read(); /*如果为秒=0,为防止时间变化,再读一次*/
}
//---主函数---//
void main()
{
P8563_init();
init();
while(1)
{
P8563_gettime();
BCD_16( );
display();
key_scan();
}
}