当前位置: 代码迷 >> 综合 >> 单片机 实时时钟电路(LCD1602、PCF8563)
  详细解决方案

单片机 实时时钟电路(LCD1602、PCF8563)

热度:23   发布时间:2023-12-17 16:49:30.0

单片机 实时时钟电路(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(); }
}