千家信息网

Python怎么实现DIY电子时钟

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章主要介绍了Python怎么实现DIY电子时钟的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现DIY电子时钟文章都会有所收获,下面我们一起来看看吧
千家信息网最后更新 2025年12月03日Python怎么实现DIY电子时钟

这篇文章主要介绍了Python怎么实现DIY电子时钟的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现DIY电子时钟文章都会有所收获,下面我们一起来看看吧。

一、 实验目的:
?学习在PC机系统中扩展简单I/O 接口的方法
?学习TurnipBit拼插编程
?学习TurnipBit扩展板与DS3231时钟模块连接接线方式
?学习时钟模块的使用

二、所需原器件:
?TurnipBit一块
?TurnipBit扩展板一块
?DS3231时钟模块一个
?杜邦线若干
?usb数据线一条

三、实验原理:
1. DS3231时钟模块原理
DS3231(图11-12)是一个时钟模块,其实就是像一个电子时钟,它自身带有电池,当设置好时间后,DS3231就会自动走时。DS3231与开发板之间的通讯是通过I2C接口来完成的。I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要SDA(串行数据线)和SCL(串行时钟线)两根线即可在连接于总线上的器件之间传送信息。SDA和SCL都是双向I/O线,连接时,只需要将DS3231上的SDA和SCL与TurnipBit扩展板上的SDA和SCL相连即可。


四、接线方法:
TurnipBit扩展板与发光二极管接口对应如下表:


五、 源代码:

from microbit import *DS3231_ADDR       = 0x68DS3231_REG_SEC    = b'\x00'DS3231_REG_MIN    = b'\x01'DS3231_REG_HOUR   = b'\x02'DS3231_REG_DAY    = b'\x04'DS3231_REG_MONTH  = b'\x05'DS3231_REG_YEAR   = b'\x06'DS3231_REG_TEMP   = b'\x11'class DS3231(object):        def __init__(self):        pass    def DATE(self, dat=[]):        if dat==[]:            t = []            t.append(self.year())            t.append(self.month())            t.append(self.day())            return t        else:            self.year(dat[0])            self.month(dat[1])            self.day(dat[2])                def TIME(self, dat=[]):        if dat==[]:            t = []            t.append(self.hour())            t.append(self.min())            t.append(self.sec())            return t        else:            self.hour(dat[0])            self.min(dat[1])            self.sec(dat[2])    def DateTime(self, dat=[]):        if dat==[]:            return self.DATE() + self.TIME()        else:            self.year(dat[0])            self.month(dat[1])            self.day(dat[2])            self.hour(dat[3])            self.min(dat[4])            self.sec(dat[5])    def dec2hex(self, dat):        return (int(dat/10)<<4) + (dat)    def setREG(self, dat,reg):        buf = bytearray(2)        buf[0] = reg[0]        buf[1] = dat        i2c.write(DS3231_ADDR,buf, repeat=False)            def getREG_DEC(self,reg):        i2c.write(DS3231_ADDR,reg)        t = i2c.read(DS3231_ADDR,1)[0]        #print("--===",t,"----------")        return (t>>4)*10 + (t)    def sec(self, sec=''):        if sec == '':            return self.getREG_DEC(DS3231_REG_SEC)        else:            self.setREG(self.dec2hex(sec), DS3231_REG_SEC)    def min(self, min=''):        if min == '':            return self.getREG_DEC(DS3231_REG_MIN)        else:            self.setREG(self.dec2hex(min), DS3231_REG_MIN)    def hour(self, hour=''):        if hour=='':            return self.getREG_DEC(DS3231_REG_HOUR)        else:            self.setREG(self.dec2hex(hour), DS3231_REG_HOUR)    def day(self, day=''):        if day=='':            return self.getREG_DEC(DS3231_REG_DAY)        else:            self.setREG(self.dec2hex(day), DS3231_REG_DAY)    def month(self, month=''):        if month=='':            return self.getREG_DEC(DS3231_REG_MONTH)        else:            self.setREG(self.dec2hex(month), DS3231_REG_MONTH)    def year(self, year=''):        if year=='':            return self.getREG_DEC(DS3231_REG_YEAR)        else:            self.setREG(self.dec2hex(year), DS3231_REG_YEAR)    def TEMP(self):        i2c.write(DS3231_ADDR,DS3231_REG_TEMP, repeat=False)        t1 = i2c.read(DS3231_ADDR,1, repeat=False)[0]        i2c.write(DS3231_ADDR,b'\x12', repeat=False)        t2 = i2c.read(DS3231_ADDR,1, repeat=False)[0]        if t1>0x7F:            return t1 - t2/256 -256        else:            return t1 + t2/256ds=DS3231()ds.DATE([17,10,24])ds.TIME([10,03,00])while True:    Time=ds.TIME()    Time_s=''    for i in Time:        Time_s+=str(i)+':'    display.scroll(Time_s[:-1]+"-")        #print(Time)    #print(ds.TEMP())    sleep(1000)

关于"Python怎么实现DIY电子时钟"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Python怎么实现DIY电子时钟"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

0