单片机 实时时钟电路(LCD1602、PCF8563)
想要更多项目私wo!!!
一、简介
此电路主要有51单片机、LCD1602模块、PCF8563芯片和按键组成组成,通过LCD1062显示当前时间,按键可设置时间。
二、运行效果
三、部分代码
/*想要更多项目私wo!!!*/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned intvoid 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-2Ffor(num=0;num<15;num++){
write_date(table[num]); //写入第一行数据delay1602(5);}write_com(0x80+0x40); //1100 0000B,设置为2行显示,写入第二行字符的地址,第而行地址是40-67for(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(); }
}