申博太阳娱乐评价登入官网:

 找回密码
 立即注册

只需一步,快速开始

微信扫一扫,快速登录

搜索
查看: 1014|回复: 0

申博太阳娱乐评价登入官网: MY808_DIY:micropython_ESP32_MAX7219 滚动点阵模块源码

深圳明珠国际货运代网上娱乐场
1#
发表于 2020-1-3 00:46:10 | 只看该作者 |倒序浏览 |阅读模式

认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
用micropython_ESP32_MAX7219 点阵模块,滚动。

很喜欢翻页钟效果,花了两天时间,终于搞定,贴出源码,供大家参考。


点击图片可播放视频。





  1. # 用缓存来定义并滚动
  2. from machine import Pin, SPI
  3. import time
  4. from micropython import const
  5. import ntptime
  6. import network

  7. font = (  #8x8矩阵中的字符集5x8
  8.   0x0e, 0x11, 0x13, 0x15, 0x19, 0x11, 0x0e, 0x00,   # 0x30, 0
  9.   0x04, 0x0c, 0x04, 0x04, 0x04, 0x04, 0x0e, 0x00,   # 0x31, 1
  10.   0x0e, 0x11, 0x01, 0x02, 0x04, 0x08, 0x1f, 0x00,   # 0x32, 2
  11.   0x0e, 0x11, 0x01, 0x06, 0x01, 0x11, 0x0e, 0x00,   # 0x33, 3
  12.   0x02, 0x06, 0x0a, 0x12, 0x1f, 0x02, 0x02, 0x00,   # 0x34, 4
  13.   0x1f, 0x10, 0x1e, 0x01, 0x01, 0x11, 0x0e, 0x00,   # 0x35, 5
  14.   0x06, 0x08, 0x10, 0x1e, 0x11, 0x11, 0x0e, 0x00,   # 0x36, 6
  15.   0x1f, 0x01, 0x02, 0x04, 0x08, 0x08, 0x08, 0x00,   # 0x37, 7
  16.   0x0e, 0x11, 0x11, 0x0e, 0x11, 0x11, 0x0e, 0x00,   # 0x38, 8
  17.   0x0e, 0x11, 0x11, 0x0f, 0x01, 0x02, 0x0c, 0x00,   # 0x39, 9  
  18. )

  19. _NOOP = const(0)
  20. _DIGIT0 = const(1)
  21. _DECODEMODE = const(9)
  22. _INTENSITY = const(10)
  23. _SCANLIMIT = const(11)
  24. _SHUTDOWN = const(12)
  25. _DISPLAYTEST = const(15)

  26. class Matrix8x8:
  27.     def __init__(self, spi, cs):
  28.         self.spi = spi
  29.         self.cs = cs
  30.         self.cs.init(mode=Pin.OUT, value=1)
  31.         self.buff = [0]*8*4 #缓存list ,4个7219
  32.         self.init()

  33.     def _write(self, command, data):
  34.         self.cs(0)
  35.         for m in range(4):  #4个7219都要写
  36.             self.spi.write(bytearray([command, data]))
  37.         self.cs(1)

  38.     def init(self):
  39.         for command, data in (
  40.             (_SHUTDOWN, 0),
  41.             (_DISPLAYTEST, 0),
  42.             (_SCANLIMIT, 7),
  43.             (_DECODEMODE, 0),
  44.             (_SHUTDOWN, 1),
  45.             (_INTENSITY, 0) #默认亮度0
  46.         ):
  47.             self._write(command, data)

  48.     def brightness(self, value):
  49.         if not 0 <= value <= 15:
  50.             raise ValueError("Brightness out of range")
  51.         self._write(_INTENSITY, value)
  52.    
  53.     def set_nub(self,nub,psion): # 数字,位置        
  54.         for j in range(8):
  55.             self.buff[j*4+psion] = font[nub*8+j]

  56.     def up_roll(self,nub,psion): # 数字,位置        
  57.         for i in range(8):
  58.             for j in range(7):
  59.                 self.buff[4*j+psion] =self.buff[4*(j+1)+psion]
  60.             self.buff[4*7+psion] = font[nub*8+i]
  61.             self.show()
  62.             time.sleep_ms(80)

  63.     def down_roll(self,nub,psion): # 数字,位置        
  64.         for i in range(7,-1,-1):
  65.             for j in range(7,0,-1):
  66.                 self.buff[4*j+psion] =self.buff[4*(j-1)+psion]
  67.             self.buff[0+psion] = font[nub*8+i]
  68.             self.show()            
  69.             time.sleep_ms(80)

  70. spi = SPI(1, sck=Pin(14), mosi=Pin(13), miso=Pin(12), baudrate=10000000)  #10Mhz 串口
  71. display = Matrix8x8(spi, Pin(26))

  72. def  digt(nub):
  73.     _l = []
  74.     _s = '{0:0>4d}'.format(nub)
  75.     for i in range(len(_s)):
  76.         _l.append(int(_s[i]))
  77.     return(_l)

  78. while True:
  79.     for i in range(10):
  80.         display.up_roll(i,0)
  81.         display.down_roll(9-i,1)
  82.         display.up_roll(i,2)
  83.         display.down_roll(9-i,3)
  84.         time.sleep_ms(500)

  85.     for i in range(10):
  86.         display.up_roll(i,1)
  87.         display.up_roll(i,3)
  88.         time.sleep_ms(500)

  89.     #display.down_4_roll((0,0,0,0),(9,9,9,9))   
  90.     for i in range(9999,9980,-1):
  91.         display.down_4_roll(digt(i),digt(i-1))
  92.         time.sleep_ms(300)
  93.       
  94.     for i in range(9980,9999):
  95.         display.up_4_roll(digt(i),digt(i+1))
  96.         time.sleep_ms(300)
复制代码




打赏

参与人数 3M币 +60 收起 理由
阿睦 + 30
wenxueroom + 20 原創內容
人艰不拆了 + 10

查看全部打赏

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|关于我们|联系我们|网站条款|数码之家 ( 闽ICP备05031405号 )

GMT+8, 2020-11-1 08:48 , Processed in 0.218401 second(s), 16 queries , Redis On.

Powered by 深圳明珠国际货运代网上娱乐场

© 2001-2019 Comsenz Inc.

www.vni99.com登入 返回顶部 返回列表
博彩送彩金网址大全 深圳明珠国际货运代网上娱乐场 优信彩票直营网 钻石娱乐MG电子 澳洲国际皇家六合彩最牛攻略
名人娱乐登陆 聚星娱乐招商 永利博网址登入 t6娱乐下载 大三巴游戏登入网址
白小姐网站 bbin金瓶梅2登入 本溪娱乐棋牌 诚信第一品牌值得您信赖 大丰娱乐
68500.com 百家乐AB亚洲馆开奖记录 银河官方直营登入 hb小丑扑克100手登入 博奕娱乐城电子游戏