使用 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 编程模拟时钟表盘相关推荐

  1. Windows下编程--模拟时钟的实现

    windows下编程--模拟时钟的实现: 主要可以分为几个步骤: (1)   编写按键事件处理(启动和停止时钟) (2)   编写时钟事件处理,调用显示时钟函数 (3)   编写显示时钟函数,要调用显 ...

  2. java时钟时针绘制代码,Java实现动态模拟时钟

    搜索热词 本文实例为大家分享了java动态模拟时钟的具体代码,供大家参考,具体内容如下 应用名称:java动态模拟时钟 用到的知识:javaGUI,java 绘图 开发环境:win10+eclipse ...

  3. 电脑罗盘时钟代码_轻松吃透实时时钟芯片DS1302软硬件设计

    今天我们来讨论一款老掉牙的实时时钟芯片DS1302.什么是实时时钟(RealTime Clock, RTC)呢?为什么我们需要它呢?假设你使用单片机实现万年历应用,一般的做法是这样的:设置中断后判断1 ...

  4. python动态时钟代码_python实现简易动态时钟

    本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下 from turtle import * from datetime import * #移动到指定位置 def ...

  5. python爬虫小说代码示例-中文编程,用python编写小说网站爬虫

    原标题:中文编程,用python编写小说网站爬虫 作者:乘风龙王 原文:https://zhuanlan.zhihu.com/p/51309019 为保持源码格式, 转载时使用了截图. 原文中的源码块 ...

  6. python课设代码_python课程编程题汇总(上)

    python编程题汇总 众所周知,由于疫情的原因,大家都在上网课,我也不例外啦~ 用这个贴子来记录也和大家分享一下我们课上的编程讨论题 中篇在此→python课程编程题汇总(中) 下篇在此→pytho ...

  7. python多进程并发代码_Python并发编程系列之多进程(multiprocessing)

    1引言 本篇博文主要对Python中并发编程中的多进程相关内容展开详细介绍,Python进程主要在multiprocessing模块中,本博文以multiprocessing种Process类为中心, ...

  8. 用python动态时钟代码_python实现简易动态时钟

    本文实例为大家分享了python实现简易动态时钟的具体代码,供大家参考,具体内容如下 from turtle import * from datetime import * #移动到指定位置 def ...

  9. python爬小说代码_中文编程,用python编写小说网站爬虫

    原标题:中文编程,用python编写小说网站爬虫 作者:乘风龙王 原文:https://zhuanlan.zhihu.com/p/51309019 为保持源码格式, 转载时使用了截图. 原文中的源码块 ...

  10. python画五角星代码_Python GUI 编程tkinter--画五角星和简单的动画制作

    1.利用Python的tkinter画一个五角星: 2.做一个简单的动画 分析五角心的五个顶点的坐标: 确立五角星的中心点和半径,再确立五角星的五个角的坐标信息,其中五角星的各个角读书为36度,具体的 ...

最新文章

  1. CS231n 学习笔记(3)——神经网络 part3 :最优化
  2. Flex/Silverlight的技术比较
  3. inlfuxdb版本_InfluxDB和MySQL的读写对比测试
  4. 编写高效的PyTorch代码技巧(上)
  5. asp空间和php空间_免费ASP空间与免费PHP空间
  6. 小米11全系机型补齐,超大杯压场,但Pro版也不容忽视
  7. linux下spark的python编辑_Linux下搭建Spark 的 Python 编程环境的方法
  8. Khan_Computer Science_Algorithms
  9. java图片颜色取反色,照片底片模式
  10. Ubuntu删除不干净导致的一系列后果
  11. android 在图上绘制字符串,Android 使用Canvas在图片上绘制文字的方法
  12. Java面试问题 021-030
  13. 师从施一公,4年8篇CNS,作为西湖大学博士后,她又以一作发了Science
  14. java 目录遍历漏洞_路径遍历 漏洞修复
  15. HTML5之帆布(canvas)(三)
  16. 解决关于VS无法加载解决方案中的项目的问题
  17. 二维灰度地形图山脊线自动提取方法整理(MST)
  18. Neural Networks and Deep Learning - 神经网络与深度学习 - Overfitting and regularization - 过拟合和正则化
  19. python+adb命令实现自动刷视频脚本
  20. C++ - 图形旋转

热门文章

  1. 本地html本地xml文件怎么打开,处理xml文件怎么打开
  2. Learning Robust Low-Rank Representation (2012)笔记
  3. 推荐一款linux下流程图绘制工具-yEd Graph Editor
  4. Mac上解压Rar,Zip,7z等格式的解压软件,推荐这一款免费软件就够了,堪比Win11上的winrar
  5. mysql secure_file_priv 属性相关的文件读写权限问题
  6. ctfshow 网络迷踪-来点福利
  7. vb.net 教程 20-3 控制Ie浏览器 2 获得Ie窗口的结构
  8. FS32R294JCK0MJDT功能、FS32R294KCK0MJDT特点、FS32R294KAK0MJDT雷达微控制器
  9. 【论文阅读】Conversational Memory Networkfor Emotion Recognition in Dyadic Dialogue Videos
  10. 苹果笔记本什么系统_怎么把苹果笔记本系统改为win7系统?