- /*
- Eagler8系列实验程序列表
- 第10类 扩展实验
- 21、TM1637四位数码管(数码管和点阵类,接扩展板数字D7/D8接口)
- 项目:TM1637驱动四位数码管显示
- 要点:初始化必需加载二个库(IDE-工具-管理库-搜索-下载)
- TM1637Display.h
- */
- #include <Arduino.h>
- #include <TM1637Display.h>
- #define CLK 7
- #define DIO 8
- #define TEST_DELAY 2000
- const uint8_t SEG_DONE[] = {
- SEG_B | SEG_C | SEG_D | SEG_E | SEG_G,
- SEG_A | SEG_B | SEG_C | SEG_D | SEG_E | SEG_F,
- SEG_C | SEG_E | SEG_G,
- SEG_A | SEG_D | SEG_E | SEG_F | SEG_G
- };
- TM1637Display display(CLK, DIO);
- void setup()
- {
- }
- void loop()
- {
- int k;
- uint8_t data[] = { 0xff, 0xff, 0xff, 0xff };
- uint8_t blank[] = { 0x00, 0x00, 0x00, 0x00 };
- display.setBrightness(0x0f);
- display.setSegments(data);
- delay(TEST_DELAY);
- data[0] = display.encodeDigit(0);
- data[1] = display.encodeDigit(1);
- data[2] = display.encodeDigit(2);
- data[3] = display.encodeDigit(3);
- display.setSegments(data);
- delay(TEST_DELAY);
- display.clear();
- display.setSegments(data+2, 2, 2);
- delay(TEST_DELAY);
- display.clear();
- display.setSegments(data+2, 2, 1);
- delay(TEST_DELAY);
- display.clear();
- display.setSegments(data+1, 3, 1);
- delay(TEST_DELAY);
- display.showNumberDec(0, false);
- delay(TEST_DELAY);
- display.showNumberDec(0, true);
- delay(TEST_DELAY);
- display.showNumberDec(1, false);
- delay(TEST_DELAY);
- display.showNumberDec(1, true);
- delay(TEST_DELAY);
- display.showNumberDec(301, false);
- delay(TEST_DELAY);
- display.showNumberDec(301, true);
- delay(TEST_DELAY);
- display.clear();
- display.showNumberDec(14, false, 2, 1);
- delay(TEST_DELAY);
- display.clear();
- display.showNumberDec(4, true, 2, 2);
- delay(TEST_DELAY);
- display.showNumberDec(-1, false);
- delay(TEST_DELAY);
- display.showNumberDec(-12);
- delay(TEST_DELAY);
- display.showNumberDec(-999);
- delay(TEST_DELAY);
- display.clear();
- display.showNumberDec(-5, false, 3, 0);
- delay(TEST_DELAY);
- display.showNumberHexEx(0xf1af);
- delay(TEST_DELAY);
- display.showNumberHexEx(0x2c);
- delay(TEST_DELAY);
- display.showNumberHexEx(0xd1, 0, true);
- delay(TEST_DELAY);
- display.clear();
- display.showNumberHexEx(0xd1, 0, true, 2);
- delay(TEST_DELAY);
-
- for(k=0; k <= 4; k++) {
- display.showNumberDecEx(0, (0x80 >> k), true);
- delay(TEST_DELAY);
- }
- for(k = 0; k < 4; k++)
- data[k] = 0xff;
- for(k = 0; k < 7; k++) {
- display.setBrightness(k);
- display.setSegments(data);
- delay(TEST_DELAY);
- }
-
- for(k = 0; k < 4; k++) {
- display.setBrightness(7, false);
- display.setSegments(data);
- delay(TEST_DELAY);
- display.setBrightness(7, true);
- display.setSegments(data);
- delay(TEST_DELAY);
- }
- display.setSegments(SEG_DONE);
- while(1);
- }
复制代码
|