TM1638.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. www.makerstudio.cc
  3. */
  4. #ifndef TM1638_h
  5. #define TM1638_h
  6. #include <inttypes.h>
  7. #include <Arduino.h>
  8. //************display mode for TM1638*********************
  9. #define DISPALY_ON_MODE 0x8F
  10. #define DISPALY_OFF_MODE 0x87
  11. //************data command (address mode) for TM1638*********************
  12. #define AUTO_ADDR 0x40
  13. #define FIXED_ADDR 0x44
  14. //************address command for TM1638*********************
  15. #define GRID1_ADDR 0xC0
  16. #define GRID2_ADDR 0xC2
  17. #define GRID3_ADDR 0xC4
  18. #define GRID4_ADDR 0xC6
  19. #define GRID5_ADDR 0xC8
  20. #define GRID6_ADDR 0xCA
  21. #define GRID7_ADDR 0xCC
  22. #define GRID8_ADDR 0xCE
  23. class TM1638
  24. {
  25. public:
  26. uint8_t Cmd_SetData;
  27. uint8_t Cmd_SetAddr;
  28. uint8_t Cmd_DispCtrl;
  29. TM1638(uint8_t, uint8_t, uint8_t);
  30. void clear();
  31. void displayAll();
  32. void displayPic(uint8_t picDat[8]);
  33. void setPoint(uint8_t line, uint8_t colume, uint8_t state);
  34. void displayLine(uint8_t line);
  35. void clearLine(uint8_t line);
  36. void setLine(uint8_t line, uint8_t lineDat);
  37. void displayColume(uint8_t colume);
  38. void clearColume(uint8_t colume);
  39. void setColume(uint8_t colume, uint8_t columeDat);
  40. private:
  41. uint8_t STB_pin;
  42. uint8_t CLK_pin;
  43. uint8_t DIO_pin;
  44. uint8_t matrixDat[8];
  45. void writeByte(uint8_t wr_data);//write 8bit data to TM1638
  46. void writeByteMSB(uint8_t wr_data);//write 8bit data to TM1638 with MSB
  47. void writeCmd(uint8_t cmd);
  48. void writeDat(uint8_t gridAddr, uint8_t wr_data);
  49. void displayMatrixDat();
  50. /*uint8_t exchangeBits(uint8_t dat);*/
  51. };
  52. #endif