初始化提交
This commit is contained in:
89
boards/default/micropython/build/lib/tm1650.py
Normal file
89
boards/default/micropython/build/lib/tm1650.py
Normal file
@@ -0,0 +1,89 @@
|
||||
"""
|
||||
TM1650 for Four Digit LED Display
|
||||
|
||||
CircuitPython library for the TM1650
|
||||
=======================================================
|
||||
|
||||
#Changed from circuitpython to micropython 20220216
|
||||
|
||||
dahanzimin From the Mixly Team
|
||||
"""
|
||||
import time
|
||||
from micropython import const
|
||||
|
||||
|
||||
COMMAND_I2C_ADDRESS = const(0x24)
|
||||
DISPLAY_I2C_ADDRESS = const(0x34)
|
||||
|
||||
|
||||
buf = (0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71)
|
||||
|
||||
class TM1650:
|
||||
|
||||
def __init__(self, i2c_bus):
|
||||
self.i2c = i2c_bus
|
||||
self._intensity = 2
|
||||
self.dbuf = [0, 0, 0, 0]
|
||||
self.tbuf = bytearray(1)
|
||||
self.on()
|
||||
|
||||
def intensity(self, dat = -1):
|
||||
if dat < 0 or dat > 8:
|
||||
return self._intensity
|
||||
if dat == 0:
|
||||
self.off()
|
||||
else:
|
||||
self._intensity = dat
|
||||
self.cmd((dat<<4)|0x01)
|
||||
|
||||
def cmd(self,command):
|
||||
self.tbuf[0] = command &0xff
|
||||
self.i2c.writeto(COMMAND_I2C_ADDRESS, self.tbuf)
|
||||
|
||||
def dat(self,bit, data):
|
||||
self.tbuf[0] = data&0xff
|
||||
self.i2c.writeto(DISPLAY_I2C_ADDRESS + bit%4, self.tbuf)
|
||||
|
||||
def on(self):
|
||||
self.cmd((self._intensity<<4)|0x01)
|
||||
|
||||
def off(self):
|
||||
self._intensity = 0
|
||||
self.cmd(0)
|
||||
|
||||
def clear(self):
|
||||
self.dat(0, 0)
|
||||
self.dat(1, 0)
|
||||
self.dat(2, 0)
|
||||
self.dat(3, 0)
|
||||
self.dbuf = [0, 0, 0, 0]
|
||||
|
||||
def showbit(self, num, bit = 0):
|
||||
self.dbuf[bit%4] = buf[num%16]
|
||||
self.dat(bit, buf[num%16])
|
||||
|
||||
def shownum(self, num):
|
||||
if num < 0:
|
||||
self.dat(0, 0x40) # '-'
|
||||
num = -num
|
||||
else:
|
||||
self.showbit((num // 1000) % 10)
|
||||
self.showbit(num % 10, 3)
|
||||
self.showbit((num // 10) % 10, 2)
|
||||
self.showbit((num // 100) % 10, 1)
|
||||
|
||||
def showhex(self, num):
|
||||
if num < 0:
|
||||
self.dat(0, 0x40) # '-'
|
||||
num = -num
|
||||
else:
|
||||
self.showbit((num >> 12) % 16)
|
||||
self.showbit(num % 16, 3)
|
||||
self.showbit((num >> 4) % 16, 2)
|
||||
self.showbit((num >> 8) % 16, 1)
|
||||
|
||||
def showDP(self, bit = 1, show = True):
|
||||
if show:
|
||||
self.dat(bit, self.dbuf[bit] | 0x80)
|
||||
else:
|
||||
self.dat(bit, self.dbuf[bit] & 0x7F)
|
||||
Reference in New Issue
Block a user