python数码时钟代码_micro:bit 编程模拟时钟表盘
使用 micro:bit 的屏幕显示模拟时钟,利用亮度表示秒。这里提供两种实现方式,分别是 MicroPython 和 MakeCode 图形化编程。效果如下。
MicroPython 实现代码如下。
from microbit import *
DS1302_REG_SECOND = (0x80)
DS1302_REG_MINUTE = (0x82)
DS1302_REG_HOUR = (0x84)
DS1302_REG_DAY = (0x86)
DS1302_REG_MONTH = (0x88)
DS1302_REG_WEEKDAY= (0x8A)
DS1302_REG_YEAR = (0x8C)
DS1302_REG_WP = (0x8E)
DS1302_REG_CTRL = (0x90)
DS1302_REG_RAM = (0xC0)
class DS1302:
def __init__(self, clk, dio, cs):
self.clk = clk
self.dio = dio
self.cs = cs
def DecToHex(self, dat):
return (dat//10) * 16 + (dat%10)
def HexToDec(self, dat):
return (dat//16) * 10 + (dat%16)
def write_byte(self, dat):
for i in range(8):
self.dio.write_digital((dat >> i) & 1)
self.clk.write_digital(1)
self.clk.write_digital(0)
def read_byte(self):
d = 0
for i in range(8):
d = d | (self.dio.read_digital()<
self.clk.write_digital(1)
self.clk.write_digital(0)
return d
def getReg(self, reg):
self.cs.write_digital(1)
self.write_byte(reg)
t = self.read_byte()
self.cs.write_digital(0)
return t
def setReg(self, reg, dat):
self.cs.write_digital(1)
self.write_byte(reg)
self.write_byte(dat)
self.cs.write_digital(0)
def wr(self, reg, dat):
self.setReg(DS1302_REG_WP, 0)
self.setReg(reg, dat)
self.setReg(DS1302_REG_WP, 0x80)
def start(self):
t = self.getReg(DS1302_REG_SECOND + 1)
self.wr(DS1302_REG_SECOND, t & 0x7f)
def stop(self):
t = self.getReg(DS1302_REG_SECOND + 1)
self.wr(DS1302_REG_SECOND, t | 0x80)
def Second(self, second = None):
if second == None:
return self.HexToDec(self.getReg(DS1302_REG_SECOND+1))%60
else:
self.wr(DS1302_REG_SECOND, self.DecToHex(second%60))
def Minute(self, minute = None):
if minute == None:
return self.HexToDec(self.getReg(DS1302_REG_MINUTE+1))
else:
self.wr(DS1302_REG_MINUTE, self.DecToHex(minute%60))
def Hour(self, hour = None):
if hour == None:
return self.HexToDec(self.getReg(DS1302_REG_HOUR+1))
else:
self.wr(DS1302_REG_HOUR, self.DecToHex(hour%24))
def Weekday(self, weekday = None):
if weekday == None:
return self.HexToDec(self.getReg(DS1302_REG_WEEKDAY+1))
else:
self.wr(DS1302_REG_WEEKDAY, self.DecToHex(weekday%8))
def Day(self, day = None):
if day == None:
return self.HexToDec(self.getReg(DS1302_REG_DAY+1))
else:
self.wr(DS1302_REG_DAY, self.DecToHex(day%32))
def Month(self, month = None):
if month == None:
return self.HexToDec(self.getReg(DS1302_REG_MONTH+1))
else:
self.wr(DS1302_REG_MONTH, self.DecToHex(month%13))
def Year(self, year = None):
if year == None:
return self.HexToDec(self.getReg(DS1302_REG_YEAR+1)) + 2000
else:
self.wr(DS1302_REG_YEAR, self.DecToHex(year%100))
mx=(2,3,4,4,4,3,2,1,0,0,0,1)
my=(0,0,1,2,3,4,4,4,3,2,1,0)
ds=DS1302(clk=pin13,dio=pin14,cs=pin15)
old = -1
while 1:
s = ds.Second()
if old != s:
old = s
m=ds.Minute()
a=s//5
b=s%5
if b==4:
display.set_pixel(mx[a],my[a],0)
else:
display.set_pixel(mx[a],my[a],b*3)
if s%2:
display.set_pixel(2, 2, 5)
else:
display.set_pixel(2, 2, 0)
sleep(200)
MakeCode 程序如下。
python数码时钟代码_micro:bit 编程模拟时钟表盘相关推荐
- Windows下编程--模拟时钟的实现
windows下编程--模拟时钟的实现: 主要可以分为几个步骤: (1) 编写按键事件处理(启动和停止时钟) (2) 编写时钟事件处理,调用显示时钟函数 (3) 编写显示时钟函数,要调用显 ...
- java时钟时针绘制代码,Java实现动态模拟时钟
搜索热词 本文实例为大家分享了java动态模拟时钟的具体代码,供大家参考,具体内容如下 应用名称:java动态模拟时钟 用到的知识:javaGUI,java 绘图 开发环境:win10+eclipse ...
- 电脑罗盘时钟代码_轻松吃透实时时钟芯片DS1302软硬件设计
今天我们来讨论一款老掉牙的实时时钟芯片DS1302.什么是实时时钟(RealTime Clock, RTC)呢?为什么我们需要它呢?假设你使用单片机实现万年历应用,一般的做法是这样的:设置中断后判断1 ...
- python动态时钟代码_python实现简易动态时钟
本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下 from turtle import * from datetime import * #移动到指定位置 def ...
- python爬虫小说代码示例-中文编程,用python编写小说网站爬虫
原标题:中文编程,用python编写小说网站爬虫 作者:乘风龙王 原文:https://zhuanlan.zhihu.com/p/51309019 为保持源码格式, 转载时使用了截图. 原文中的源码块 ...
- python课设代码_python课程编程题汇总(上)
python编程题汇总 众所周知,由于疫情的原因,大家都在上网课,我也不例外啦~ 用这个贴子来记录也和大家分享一下我们课上的编程讨论题 中篇在此→python课程编程题汇总(中) 下篇在此→pytho ...
- python多进程并发代码_Python并发编程系列之多进程(multiprocessing)
1引言 本篇博文主要对Python中并发编程中的多进程相关内容展开详细介绍,Python进程主要在multiprocessing模块中,本博文以multiprocessing种Process类为中心, ...
- 用python动态时钟代码_python实现简易动态时钟
本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下 from turtle import * from datetime import * #移动到指定位置 def ...
- python爬小说代码_中文编程,用python编写小说网站爬虫
原标题:中文编程,用python编写小说网站爬虫 作者:乘风龙王 原文:https://zhuanlan.zhihu.com/p/51309019 为保持源码格式, 转载时使用了截图. 原文中的源码块 ...
- python画五角星代码_Python GUI 编程tkinter--画五角星和简单的动画制作
1.利用Python的tkinter画一个五角星: 2.做一个简单的动画 分析五角心的五个顶点的坐标: 确立五角星的中心点和半径,再确立五角星的五个角的坐标信息,其中五角星的各个角读书为36度,具体的 ...
最新文章
- CS231n 学习笔记(3)——神经网络 part3 :最优化
- Flex/Silverlight的技术比较
- inlfuxdb版本_InfluxDB和MySQL的读写对比测试
- 编写高效的PyTorch代码技巧(上)
- asp空间和php空间_免费ASP空间与免费PHP空间
- 小米11全系机型补齐,超大杯压场,但Pro版也不容忽视
- linux下spark的python编辑_Linux下搭建Spark 的 Python 编程环境的方法
- Khan_Computer Science_Algorithms
- java图片颜色取反色,照片底片模式
- Ubuntu删除不干净导致的一系列后果
- android 在图上绘制字符串,Android 使用Canvas在图片上绘制文字的方法
- Java面试问题 021-030
- 师从施一公,4年8篇CNS,作为西湖大学博士后,她又以一作发了Science
- java 目录遍历漏洞_路径遍历 漏洞修复
- HTML5之帆布(canvas)(三)
- 解决关于VS无法加载解决方案中的项目的问题
- 二维灰度地形图山脊线自动提取方法整理(MST)
- Neural Networks and Deep Learning - 神经网络与深度学习 - Overfitting and regularization - 过拟合和正则化
- python+adb命令实现自动刷视频脚本
- C++ - 图形旋转
热门文章
- 本地html本地xml文件怎么打开,处理xml文件怎么打开
- Learning Robust Low-Rank Representation (2012)笔记
- 推荐一款linux下流程图绘制工具-yEd Graph Editor
- Mac上解压Rar,Zip,7z等格式的解压软件,推荐这一款免费软件就够了,堪比Win11上的winrar
- mysql secure_file_priv 属性相关的文件读写权限问题
- ctfshow 网络迷踪-来点福利
- vb.net 教程 20-3 控制Ie浏览器 2 获得Ie窗口的结构
- FS32R294JCK0MJDT功能、FS32R294KCK0MJDT特点、FS32R294KAK0MJDT雷达微控制器
- 【论文阅读】Conversational Memory Networkfor Emotion Recognition in Dyadic Dialogue Videos
- 苹果笔记本什么系统_怎么把苹果笔记本系统改为win7系统?