文章目录
- 一、功能简介
- 二、软件设计
- 三、实验现象
- 联系作者
一、功能简介
本项目使用Proteus8仿真Arduino单片机控制器,使用PCF8574、LCD1602液晶、DS1302等。
主要功能:
系统运行后,LCD1602显示时间日期。
二、软件设计
/*
作者:嗨小易(QQ:3443792007)
*/
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
// 创建液晶显示屏对象
LiquidCrystal_I2C lcd(0x27,16,2);
//创建DS1302对象
DS1302 rtc(4, 5, 6);
void setup(void)
{
//LCD1602初始化
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
rtc.begin();
while (!rtc.isrunning())
{
lcd.print("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(__DATE__, __TIME__));
}
lcd.clear();
rtc.adjust(DateTime(__DATE__, __TIME__));
lcd.setCursor(0, 0);
lcd.print("20 - - Day ");
lcd.setCursor(0, 1);
lcd.print(" : : ");
}
void loop(void)
{
char buf[5];
DateTime now = rtc.now();
sprintf(buf,"%04d",now.year());
lcd.setCursor(0, 0);
lcd.print(buf);//年
sprintf(buf,"%02d",now.month());
lcd.setCursor(5, 0);
lcd.print(buf);//月
sprintf(buf,"%02d",now.day());
lcd.setCursor(8, 0);
lcd.print(buf);//日
lcd.setCursor(15, 0);
lcd.print(now.dayOfWeek());//星期
sprintf(buf,"%02d",now.hour());
lcd.setCursor(0, 1);
lcd.print(buf);//时
sprintf(buf,"%02d",now.minute());
lcd.setCursor(3, 1);
lcd.print(buf);//分
sprintf(buf,"%02d",now.second());
lcd.setCursor(6, 1);
lcd.print(buf);//秒
}
三、实验现象
B站演示视频:https://space.bilibili.com/444388619
联系作者
视频地址:https://space.bilibili.com/444388619/video
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。