TM1638 LED controller. Max 80 LEDs, Max 24 Key scan. Supports LED&KEY, QYF-TM1638 and JY-LKM1638 module.

Dependents:   mbed_TM1638 Otjimaniya RL0201-V1

See here for more information.

Committer:
wim
Date:
Sat Jan 09 14:30:43 2016 +0000
Revision:
1:1f2453ed85d7
Parent:
0:201dfacbe0e5
Child:
2:532ce15ea9ec
TM1638 LED controller, Initial version.; Supports LED&KEY module.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 0:201dfacbe0e5 1 /* mbed LED Font Library, for TM1638 LED Controller
wim 0:201dfacbe0e5 2 * Copyright (c) 2015, v01: WH, Initial version, Test in LEDKEY8
wim 0:201dfacbe0e5 3 *
wim 0:201dfacbe0e5 4 * Permission is hereby granted, free of charge, to any person obtaining a copy
wim 0:201dfacbe0e5 5 * of this software and associated documentation files (the "Software"), to deal
wim 0:201dfacbe0e5 6 * in the Software without restriction, including without limitation the rights
wim 0:201dfacbe0e5 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
wim 0:201dfacbe0e5 8 * copies of the Software, and to permit persons to whom the Software is
wim 0:201dfacbe0e5 9 * furnished to do so, subject to the following conditions:
wim 0:201dfacbe0e5 10 *
wim 0:201dfacbe0e5 11 * The above copyright notice and this permission notice shall be included in
wim 0:201dfacbe0e5 12 * all copies or substantial portions of the Software.
wim 0:201dfacbe0e5 13 *
wim 0:201dfacbe0e5 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
wim 0:201dfacbe0e5 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
wim 0:201dfacbe0e5 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
wim 0:201dfacbe0e5 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
wim 0:201dfacbe0e5 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
wim 0:201dfacbe0e5 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
wim 0:201dfacbe0e5 20 * THE SOFTWARE.
wim 0:201dfacbe0e5 21 */
wim 0:201dfacbe0e5 22 #ifndef MBED_FONT_7SEG_H
wim 0:201dfacbe0e5 23 #define MBED_FONT_7SEG_H
wim 0:201dfacbe0e5 24
wim 0:201dfacbe0e5 25 // Select one of the testboards for TM1638 controller
wim 0:201dfacbe0e5 26 #include "TM1638_Config.h"
wim 0:201dfacbe0e5 27
wim 0:201dfacbe0e5 28 #if ((LEDKEY8_TEST == 1) || (TM1638_TEST == 1))
wim 0:201dfacbe0e5 29 // Segment bit positions for 7 Segment display using the LEDKEY8 mapping for TM1638
wim 0:201dfacbe0e5 30 // Modify this table for different 'bit-to-segment' mappings. The ASCII character defines and the FONT_7S const table below
wim 0:201dfacbe0e5 31 // will be adapted automatically according to the bit-to-segment mapping. Obviously this will only work when the segment
wim 0:201dfacbe0e5 32 // mapping is identical for every digit position. This will be the case unless the hardware designer really hates software developers.
wim 0:201dfacbe0e5 33 //
wim 0:201dfacbe0e5 34 #define S7_A 0x0001
wim 0:201dfacbe0e5 35 #define S7_B 0x0002
wim 0:201dfacbe0e5 36 #define S7_C 0x0004
wim 0:201dfacbe0e5 37 #define S7_D 0x0008
wim 0:201dfacbe0e5 38 #define S7_E 0x0010
wim 0:201dfacbe0e5 39 #define S7_F 0x0020
wim 0:201dfacbe0e5 40 #define S7_G 0x0040
wim 1:1f2453ed85d7 41 #define S7_DP 0x0080
wim 0:201dfacbe0e5 42
wim 0:201dfacbe0e5 43 //Mask for blending out and setting 7 segments digits
wim 0:201dfacbe0e5 44 #define MASK_7S_ALL = (S7_A | S7_B | S7_C | S7_D | S7_E | S7_F | S7_G}
wim 0:201dfacbe0e5 45
wim 0:201dfacbe0e5 46 //Icons Grid 1
wim 0:201dfacbe0e5 47 #define S7_DP1 0x0080
wim 0:201dfacbe0e5 48 #define S7_LD1 0x0100
wim 1:1f2453ed85d7 49 #define S7_ICON_GR1 (S7_LD1)
wim 1:1f2453ed85d7 50 //#define S7_ICON_GR1 (S7_LD1 | S7_DP1)
wim 0:201dfacbe0e5 51
wim 0:201dfacbe0e5 52 //Icons Grid 2
wim 0:201dfacbe0e5 53 #define S7_DP2 0x0080
wim 0:201dfacbe0e5 54 #define S7_LD2 0x0100
wim 1:1f2453ed85d7 55 #define S7_ICON_GR2 (S7_LD2)
wim 1:1f2453ed85d7 56 //#define S7_ICON_GR2 (S7_LD2 | S7_DP2)
wim 0:201dfacbe0e5 57
wim 0:201dfacbe0e5 58 //Icons Grid 3
wim 0:201dfacbe0e5 59 #define S7_DP3 0x0080
wim 0:201dfacbe0e5 60 #define S7_LD3 0x0100
wim 1:1f2453ed85d7 61 #define S7_ICON_GR3 (S7_LD3)
wim 1:1f2453ed85d7 62 //#define S7_ICON_GR3 (S7_LD3 | S7_DP3)
wim 0:201dfacbe0e5 63
wim 0:201dfacbe0e5 64 //Icons Grid 4
wim 0:201dfacbe0e5 65 #define S7_DP4 0x0080
wim 0:201dfacbe0e5 66 #define S7_LD4 0x0100
wim 1:1f2453ed85d7 67 #define S7_ICON_GR4 (S7_LD4)
wim 1:1f2453ed85d7 68 //#define S7_ICON_GR4 (S7_LD4 | S7_DP4)
wim 0:201dfacbe0e5 69
wim 0:201dfacbe0e5 70 //Icons Grid 5
wim 0:201dfacbe0e5 71 #define S7_DP5 0x0080
wim 0:201dfacbe0e5 72 #define S7_LD5 0x0100
wim 1:1f2453ed85d7 73 #define S7_ICON_GR5 (S7_LD5)
wim 1:1f2453ed85d7 74 //#define S7_ICON_GR5 (S7_LD5 | S7_DP5)
wim 0:201dfacbe0e5 75
wim 0:201dfacbe0e5 76 //Icons Grid 6
wim 0:201dfacbe0e5 77 #define S7_DP6 0x0080
wim 0:201dfacbe0e5 78 #define S7_LD6 0x0100
wim 1:1f2453ed85d7 79 #define S7_ICON_GR6 (S7_LD6)
wim 1:1f2453ed85d7 80 //#define S7_ICON_GR6 (S7_LD6 | S7_DP6)
wim 0:201dfacbe0e5 81
wim 0:201dfacbe0e5 82 //Icons Grid 7
wim 0:201dfacbe0e5 83 #define S7_DP7 0x0080
wim 0:201dfacbe0e5 84 #define S7_LD7 0x0100
wim 1:1f2453ed85d7 85 #define S7_ICON_GR7 (S7_LD7)
wim 1:1f2453ed85d7 86 //#define S7_ICON_GR7 (S7_LD7 | S7_DP7)
wim 0:201dfacbe0e5 87
wim 0:201dfacbe0e5 88 //Icons Grid 8
wim 0:201dfacbe0e5 89 #define S7_DP8 0x0080
wim 0:201dfacbe0e5 90 #define S7_LD8 0x0100
wim 1:1f2453ed85d7 91 #define S7_ICON_GR8 (S7_LD8)
wim 1:1f2453ed85d7 92 //#define S7_ICON_GR8 (S7_LD8 | S7_DP8)
wim 0:201dfacbe0e5 93
wim 0:201dfacbe0e5 94 //Icons Grid 9
wim 0:201dfacbe0e5 95 #define S7_DP9 0x0080
wim 0:201dfacbe0e5 96 #define S7_LD9 0x0100
wim 1:1f2453ed85d7 97 #define S7_ICON_GR9 (S7_LD9)
wim 1:1f2453ed85d7 98 //#define S7_ICON_GR9 (S7_LD9 | S7_DP9)
wim 0:201dfacbe0e5 99
wim 0:201dfacbe0e5 100 //Icons Grid 10
wim 0:201dfacbe0e5 101 #define S7_DP10 0x0080
wim 0:201dfacbe0e5 102 #define S7_LD10 0x0100
wim 1:1f2453ed85d7 103 #define S7_ICON_GR10 (S7_LD10)
wim 1:1f2453ed85d7 104 //#define S7_ICON_GR10 (S7_LD10 | S7_DP10)
wim 0:201dfacbe0e5 105
wim 0:201dfacbe0e5 106 //Mask for blending out and restoring Icons
wim 0:201dfacbe0e5 107 extern const char MASK_ICON_GRID[][2];
wim 0:201dfacbe0e5 108 #endif
wim 0:201dfacbe0e5 109
wim 0:201dfacbe0e5 110
wim 0:201dfacbe0e5 111 // ASCII Font definitions for segments in each character
wim 0:201dfacbe0e5 112 //
wim 0:201dfacbe0e5 113 //32 0x20 Symbols
wim 1:1f2453ed85d7 114 #define C7_SPC (0x0000)
wim 1:1f2453ed85d7 115 #define C7_CMA (S7_DP)
wim 1:1f2453ed85d7 116 #define C7_DPT (S7_DP)
wim 1:1f2453ed85d7 117 #define C7_MIN (S7_G)
wim 0:201dfacbe0e5 118
wim 0:201dfacbe0e5 119 //48 0x30 Digits
wim 0:201dfacbe0e5 120 #define C7_0 (S7_A | S7_B | S7_C | S7_D | S7_E | S7_F)
wim 0:201dfacbe0e5 121 #define C7_1 (S7_B | S7_C)
wim 0:201dfacbe0e5 122 #define C7_2 (S7_A | S7_B | S7_D | S7_E | S7_G)
wim 0:201dfacbe0e5 123 #define C7_3 (S7_A | S7_B | S7_C | S7_D | S7_G)
wim 0:201dfacbe0e5 124 #define C7_4 (S7_B | S7_C | S7_F | S7_G)
wim 0:201dfacbe0e5 125 #define C7_5 (S7_A | S7_C | S7_D | S7_F | S7_G)
wim 0:201dfacbe0e5 126 #define C7_6 (S7_A | S7_C | S7_D | S7_E | S7_F | S7_G)
wim 0:201dfacbe0e5 127 #define C7_7 (S7_A | S7_B | S7_C)
wim 0:201dfacbe0e5 128 #define C7_8 (S7_A | S7_B | S7_C | S7_D | S7_E | S7_F | S7_G)
wim 0:201dfacbe0e5 129 #define C7_9 (S7_A | S7_B | S7_C | S7_D | S7_F | S7_G)
wim 0:201dfacbe0e5 130 //64 0x40 Upper case alphabet
wim 0:201dfacbe0e5 131 #define C7_A (S7_A | S7_B | S7_C | S7_E | S7_F | S7_G )
wim 0:201dfacbe0e5 132 #define C7_B (S7_C | S7_D | S7_E | S7_F | S7_G)
wim 0:201dfacbe0e5 133 #define C7_C (S7_A | S7_D | S7_E | S7_F)
wim 0:201dfacbe0e5 134 #define C7_D (S7_B | S7_C | S7_D | S7_E | S7_G)
wim 0:201dfacbe0e5 135 #define C7_E (S7_A | S7_D | S7_E | S7_F | S7_G)
wim 0:201dfacbe0e5 136 #define C7_F (S7_A | S7_E | S7_F | S7_G)
wim 0:201dfacbe0e5 137
wim 0:201dfacbe0e5 138 #define C7_G (S7_A | S7_B | S7_C | S7_F | S7_G)
wim 0:201dfacbe0e5 139 #define C7_H (S7_B | S7_C | S7_E | S7_F | S7_G)
wim 0:201dfacbe0e5 140 #define C7_I (S7_B | S7_C)
wim 0:201dfacbe0e5 141 #define C7_J (S7_B | S7_C | S7_D)
wim 0:201dfacbe0e5 142 #define C7_L (S7_D | S7_E | S7_F)
wim 0:201dfacbe0e5 143 #define C7_M (S7_C | S7_E | S7_G)
wim 0:201dfacbe0e5 144 #define C7_N (S7_C | S7_E | S7_G)
wim 0:201dfacbe0e5 145 #define C7_O (S7_A | S7_B | S7_C | S7_D | S7_E | S7_F)
wim 0:201dfacbe0e5 146 #define C7_P (S7_A | S7_B | S7_E | S7_F | S7_G)
wim 0:201dfacbe0e5 147 #define C7_Q (S7_A | S7_B | S7_C | S7_F | S7_G)
wim 0:201dfacbe0e5 148 #define C7_R (S7_E | S7_G)
wim 0:201dfacbe0e5 149 #define C7_S (S7_A | S7_C | S7_D | S7_F | S7_G)
wim 0:201dfacbe0e5 150 #define C7_T (S7_D | S7_E | S7_F | S7_G)
wim 0:201dfacbe0e5 151 #define C7_U (S7_B | S7_C | S7_D | S7_E | S7_F)
wim 0:201dfacbe0e5 152 #define C7_Y (S7_B | S7_C | S7_D | S7_F | S7_G)
wim 0:201dfacbe0e5 153 #define C7_Z (S7_A | S7_B | S7_D | S7_E | S7_G)
wim 0:201dfacbe0e5 154
wim 0:201dfacbe0e5 155 //97 0x61 Lower case alphabet
wim 0:201dfacbe0e5 156 #define C7_a C7_A
wim 0:201dfacbe0e5 157 #define C7_b C7_B
wim 0:201dfacbe0e5 158 #define C7_c C7_C
wim 0:201dfacbe0e5 159 #define C7_d C7_D
wim 0:201dfacbe0e5 160 #define C7_e C7_E
wim 0:201dfacbe0e5 161 #define C7_f C7_H
wim 0:201dfacbe0e5 162
wim 0:201dfacbe0e5 163 #define C7_g C7_G
wim 0:201dfacbe0e5 164 #define C7_h C7_H
wim 0:201dfacbe0e5 165 #define C7_i C7_I
wim 0:201dfacbe0e5 166 #define C7_j C7_J
wim 0:201dfacbe0e5 167 #define C7_l C7_L
wim 0:201dfacbe0e5 168 #define C7_m C7_M
wim 0:201dfacbe0e5 169 #define C7_n C7_N
wim 0:201dfacbe0e5 170 #define C7_o C7_O
wim 0:201dfacbe0e5 171 #define C7_p C7_P
wim 0:201dfacbe0e5 172 #define C7_q C7_Q
wim 0:201dfacbe0e5 173 #define C7_r C7_R
wim 0:201dfacbe0e5 174 #define C7_s C7_S
wim 0:201dfacbe0e5 175 #define C7_t C7_T
wim 0:201dfacbe0e5 176 #define C7_u C7_U
wim 0:201dfacbe0e5 177 #define C7_y C7_Y
wim 0:201dfacbe0e5 178 #define C7_z C7_Z
wim 0:201dfacbe0e5 179
wim 0:201dfacbe0e5 180
wim 0:201dfacbe0e5 181 //User Defined Characters (some examples)
wim 0:201dfacbe0e5 182
wim 0:201dfacbe0e5 183 // Font data selection for transmission to TM1638 memory
wim 0:201dfacbe0e5 184 #define LO(x) ( x & 0xFF)
wim 0:201dfacbe0e5 185 #define HI(x) ((x >> 8) & 0xFF)
wim 0:201dfacbe0e5 186
wim 0:201dfacbe0e5 187
wim 0:201dfacbe0e5 188 // ASCII Font definition table
wim 0:201dfacbe0e5 189 //
wim 0:201dfacbe0e5 190 //#define FONT_7S_START 0x20
wim 0:201dfacbe0e5 191 //#define FONT_7S_END 0x7F
wim 0:201dfacbe0e5 192 //#define FONT_7S_NR_CHARS (FONT_7S_END - FONT_7S_START + 1)
wim 0:201dfacbe0e5 193 extern const char FONT_7S[];
wim 0:201dfacbe0e5 194
wim 0:201dfacbe0e5 195 #endif