from machine import Pin,SoftI2C,RTC,Timer
from i2c_lcd import I2cLcd
# 定义一个 SoftI2C 的对象,指定 sda 和 scl 的 GPIO 口,并设置好通信的频率
i2c = SoftI2C(sda=Pin(19),scl=Pin(18),freq=100000)
# 获取 lcd 的地址,因为只控制了一个屏幕,因此选第 0 个设备的地址
DEFAULT_I2C_ADDR = i2c.scan()[0]
print(f"LCD设备为列表:{i2c.scan()}")
# 定义一个I2CLcd对象,设置模式为i2c,地址,行数,行的大小16个字节
lcd = I2cLcd(i2c, DEFAULT_I2C_ADDR, 2, 16)
# 定义 RTC 控制对象
rtc = RTC()
# 定义定时器对象
timer = Timer(0)
# 定义星期
week = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun']
# 定义定时器中断函数
def timer_irq(timer_obj):
date_time=rtc.datetime()
print(date_time)
lcd.clear()
lcd.putstr("%d-%02d-%02d %s\n" %(date_time[0],date_time[1],date_time[2], week[date_time[3]]))
lcd.putstr(" %02d:%02d:%02d" % (date_time[4],date_time[5],date_time[6]))
# 初始化定时器对象
timer.init(mode=Timer.PERIODIC, period=1000, callback=timer_irq)