一、功能简介
本项目使用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 compiledrtc.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设计,视频分享,技术交流。