千家信息网

Python怎么实现DIY电子时钟

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍了Python怎么实现DIY电子时钟的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python怎么实现DIY电子时钟文章都会有所收获,下面我们一起来看看吧
千家信息网最后更新 2025年01月23日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电子时钟"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

时钟 电子 模块 学习 扩展板 总线 接口 知识 之间 内容 原理 双向 器件 数据 数据线 方法 篇文章 实验 开发 接线 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 内蒙古网络安全认证公司 网络安全计划清单 国家网络安全建设与国民经济发展 杭州智慧工会软件开发什么价格 系统可以同时部署在两个服务器吗 软件开发专业哪个学院好 华为云服务器有试用期吗 物流软件开发设计哪家有名 吉林电商系统软件开发 pgbn神经网络技术 数据库 唯一性约束 优摩登软件开发有限公司面试 辽宁专业软件开发价格参考价格 坦克世界选择南方服务器 数据库多人操作锁死 google服务器通信怎么设置 欧赔数据库下载 互联网教育的高科技 吉林网络安全工程招聘 北京戴尔服务器数据库恢复服务器 中文数据库哪个重要 郑鹏超网络安全阵地 全民奇迹服务器跨服修改 网络安全专业属于哪个类别 计算机网络技术创新设计 如何取出插入数据库的id 美图软件开发笔试题目 ecshop 数据库字典 sql 数据库md5解密 四川计算机软件开发哪家正规
0