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解密
四川计算机软件开发哪家正规