TM1637.lua 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. module(..., package.seeall)
  2. require "pins"
  3. pmd.ldoset(15, pmd.LDO_VMMC)
  4. local CLK = pins.setup(pio.P0_25, 1, pio.PULLUP) -- TF_D0
  5. local DIO = pins.setup(pio.P0_26, 1, pio.PULLUP) -- TF_D1
  6. typeTable = {
  7. 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c,
  8. 0x39, 0x5e, 0x79, 0x71
  9. };
  10. function SEND(data)
  11. for i = 0, 7, 1 do
  12. CLK(0)
  13. local mbit = bit.isset(data, i) and 1 or 0
  14. DIO(mbit)
  15. CLK(1)
  16. end
  17. CLK(0)
  18. DIO(1)
  19. CLK(1)
  20. mack = DIO()
  21. if mack == 0 then DIO(0) end
  22. CLK(0)
  23. end
  24. function start()
  25. DIO(0)
  26. sys.wait(5)
  27. end
  28. function stop()
  29. DIO(0)
  30. CLK(1)
  31. DIO(1)
  32. end
  33. ---------------------------------------------------测试DEMO--------------------------------------
  34. sys.taskInit(function()
  35. start()
  36. SEND(0x8f)
  37. stop()
  38. start()
  39. SEND(0x40) -- 地址模式
  40. stop()
  41. start()
  42. SEND(0xc0)
  43. for i = 1, 4 do SEND(0x00) end
  44. stop()
  45. while true do
  46. for i = 1, #typeTable do
  47. start()
  48. SEND(0xc0)
  49. for j = 1, 4 do SEND(typeTable[i]) end
  50. stop()
  51. sys.wait(1000)
  52. end
  53. end
  54. end)