TurnipBit扩展板
|
DS3231时钟模块
|
3V3
|
VCC
|
GND
|
GND
|
SCL
|
SCL
|
SDA
|
SDA
|
from microbit import *
DS3231_ADDR = 0x68
DS3231_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%10)
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%16)
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/256
ds=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)
Micropython TurnipBit 电子时钟 青少年编程入门的更多相关文章
-
Micropython TurnipBit 青少年入门编程 交通灯实验
不知道大家小时候对红绿灯的原理有什么研究过,我是农村的孩子直到初中才见到真实的红绿灯,当时我记得很清楚,在那个路口站了五六分钟就盯着红绿灯变换,搞不清原理,只觉得神奇.现在想来实在可笑,今天写这个的很 ...
-
3分钟利用TurnipBit制作电子时钟
转载请注明:@小五义 http://www.cnblogs.com/xiao* 欢迎加入讨论群 64770604 TurnipBit(www.turnipbit.com)是一个面向青少年的开发板 ...
-
国内第一本micropython的书出版《机器人Python极客编程入门与实战》
第一本micropython的书<机器人Python极客编程入门与实战>. 购买地址:https://item.taobao.com/item.htm?spm=2013.1.w4018-1 ...
-
PC游戏编程(入门篇)(前言写的很不错)
PC游戏编程(入门篇) 第一章 基石 1. 1 BOSS登场--GAF简介 第二章 2D图形程式初体验 2.l 饮水思源--第一个"游戏"程式 2.2 知其所以然一一2D图形学基础 ...
-
用http.get()简单实现网络验证防止客户不给尾款_电脑计算机编程入门教程自学
首发于:用http.get()简单实现网络验证防止客户不给尾款_电脑计算机编程入门教程自学 http://jianma123.com/viewthread.aardio?threadid=428 给软 ...
-
C语言编程入门之--第四章C语言基本数据类型
导读:C语言程序中经常涉及一些数学计算,所以要熟悉其基本的数据类型.数据类型学习起来比较枯燥,不过结合之前的内存概念,以及本节的字节概念,相信数据类型也就不难理解了.本章从二进制的基本概念开始,然 ...
-
3000字编程入门--附带Java学习路线及视频
Title: 编程入门 GitHub: BenCoper Reference: 尚硅谷-2019 Study: 文字版+视频+实战(第一个自学的网站) Explain: 文末附带Java学习视频以及项 ...
-
《Cortex-M0权威指南》之Cortex-M0编程入门
转载请注明来源:cuixiaolei的技术博客 嵌入式系统编程入门 微控制器是如何启动的 为了保存编译号的二进制程序代码,大多数的现代微控制器都会包含片上flash存储器.有些微控制器还可能有一个独立 ...
-
【浅墨著作】《OpenCV3编程入门》内容简单介绍&;amp;勘误&;amp;配套源码下载
经过近一年的沉淀和总结,<OpenCV3编程入门>一书最终和大家见面了. 近期有为数不少的小伙伴们发邮件给浅墨建议最好在博客里面贴出这本书的文件夹,方便大家更好的了解这本书的内容.事实上近 ...
随机推荐
-
Yii2 时间控件之把layDate做成widget
实现效果如下 1.把layDate封装成Yii2的widget,存在 "\common\widgets"目录下,命名为DycLayDate,具体引用查看代码. 2.对应的model ...
-
Monkey基本使用流程及测试报告分析
前一篇文章介绍了Monkey的API函数内容,这篇文章介绍windows环境下Monkey的基本使用方法. 由于博客园年底才能完成对markdown解析的升级,可移步我的个人博客查看此文,已获得更好的 ...
-
去除VA(Visual Assist)中文注释的红色波浪线
VS版本:vs2015 番茄版本:VA_X.dll file version 10.9.2089.0 built 2016.02.01 1.打开番茄设置 2.去掉 Underlining->Un ...
-
新浪微博XSS攻击源代码下载(2012.06.28_sina_XSS.txt)
function createXHR(){ return window.XMLHttpRequest? new XMLHttpRequest(): new ActiveXObject("Mi ...
-
[老老实实学WCF] 第十篇 消息通信模式(下) 双工
老老实实学WCF 第十篇 消息通信模式(下) 双工 在前一篇的学习中,我们了解了单向和请求/应答这两种消息通信模式.我们知道可以通过配置操作协定的IsOneWay属性来改变模式.在这一篇中我们来研究双 ...
-
转载: Vim 练级攻略
转自:http://coolshell.cn/articles/5426.html 酷壳 vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类, ...
-
Linux 内核进程管理之进程ID 。图解
http://www.cnblogs.com/hazir/tag/kernel/ Linux 内核进程管理之进程ID Linux 内核使用 task_struct 数据结构来关联所有与进程有关的数 ...
-
Cocos2D中的ObjectAL简介
Cocos2D包含ObjectAL音频库,可以回放音效和音乐. ObjectAL是一个建立在低级别OpenAL API上的库.OpenAL最擅长被用来播放短的音效(.wav,.caf,.aiff),并 ...
-
css3中的布局相关样式
web页面中的布局是指在页面中如何对标题.导航栏.主要内容.脚注.表单等各种构成要素进行合理编辑.在css3之前,主要使用float属性或position属性进行页面中的简单布局,但是也存在一些缺点, ...
-
CentOs7.5安装Redis
前言 虽说现在都是买服务了,可是自己做的小DEMO偶尔也用用Redis,不会装也不行 变更记录 # 19.4.24 起笔 正文 官网 https://redis.io/ 首先去官网找到最新的链接 截 ...