Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 /** 00002 * TEST 00003 * TS119-3 3.3v it is't worked. 00004 * TS119-5 3.3v it's worked. http://www.aitendo.com/product/5152 00005 * TS174 3.3v it's worked. http://www.aitendo.com/product/5153 00006 * http://www.holtek.com.tw/documents/10179/a33bf4b4-f0ef-4b77-94e4-3dd5d0c35f16 00007 * 00008 * HT1621 Library 00009 * https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/wirejungle/source-archive.zip 00010 * 00011 * reference 00012 * http://jr4pdp.blog.enjoy.jp/myblog/2016/01/lcd-ts174nblpic-da92.html 00013 * http://morecatlab.akiba.coocan.jp/lab/index.php/2015/10/segment-lcd/ 00014 */ 00015 #include "mbed.h" 00016 #include "HT1621.h" 00017 #include "7seg_fonts.h" 00018 00019 // ICON 00020 #define ICON_ON true 00021 #define ICON_OFF false 00022 #define ICON_1 0 00023 #define ICON_COLON 1 00024 #define ICON_H 2 00025 #define ICON_TIME 3 00026 #define ICON_CAUTION 4 00027 #define ICON_ASTERISK 5 00028 #define ICON_POINTL 6 00029 #define ICON_POINTR 7 00030 #define UNIT_k 0b01000000 00031 #define UNIT_W 0b00001111 00032 #define UNIT_V 0b00001100 00033 #define UNIT_A 0b00010001 00034 #define UNIT_h 0b00100000 00035 #define UNIT_MD 0b10000000 00036 00037 #define BACKLIGHT_ON LED_A = 1 00038 #define BACKLIGHT_OFF LED_A = 0 00039 #define WAIT_TIME 1 00040 00041 #define BIASTEST 00042 00043 #if defined(TARGET_ARCH_PRO) 00044 HT1621 ht1621(D5, D4, D3, D2); 00045 DigitalOut LED_A(D7); 00046 DigitalOut LED_K(D6); 00047 #elif defined(TARGET_LPC1768) 00048 HT1621 ht1621(p24, p25, p26, p8); 00049 DigitalOut LED_A(p10); 00050 DigitalOut LED_K(p23); 00051 #elif defined TARGET_NUCLEO_F446RE 00052 HT1621 ht1621(D5, D4, D3, D2); 00053 DigitalOut LED_A(D7); 00054 DigitalOut LED_K(D6); 00055 #elif defined TARGET_NUCLEO_F103RB 00056 HT1621 ht1621(D5, D4, D3, D2); 00057 DigitalOut LED_A(D7); 00058 DigitalOut LED_K(D6); 00059 #endif 00060 00061 00062 #define MEM_MAX 9 00063 uint8_t MEM[MEM_MAX] = {0,0,0,0,0,0,0,0,0}; 00064 char STR_BUF[MEM_MAX]; 00065 uint8_t bias; 00066 00067 void icon(uint8_t num, bool f) 00068 { 00069 if (f) 00070 { 00071 MEM[num] = MEM[num] | 0x01; 00072 } else 00073 { 00074 MEM[num] = MEM[num] & 0xFE; 00075 } 00076 } 00077 void unit(uint8_t c) 00078 { 00079 MEM[8] = c; 00080 } 00081 00082 void write_char(uint8_t col, char c) 00083 { 00084 uint8_t num = c -0x20; 00085 MEM[col] = (MEM[col] & 0x01) | fonts[num]; 00086 } 00087 void write_mem() 00088 { 00089 for (int i =0; i<9; i++) { 00090 ht1621.writeMem(i*2, (MEM[i]>>4) & 0x0F); 00091 ht1621.writeMem(i*2+1, (MEM[i]) & 0x0F); 00092 } 00093 } 00094 00095 void write_str(char *st) 00096 { 00097 int stl, i, n; 00098 char c; 00099 stl = strlen(st); 00100 n =0; 00101 icon(ICON_COLON, ICON_OFF); 00102 icon(ICON_POINTL, ICON_OFF); 00103 icon(ICON_POINTR, ICON_OFF); 00104 for (i=0; i<stl; i++) { 00105 c = *st++; 00106 if (c == ':') { 00107 icon(ICON_COLON, ICON_ON); 00108 } 00109 else if (c == '.') { 00110 if (n == 6) { 00111 icon(ICON_POINTL, ICON_ON); 00112 } else if (n == 7) { 00113 icon(ICON_POINTR, ICON_ON); 00114 } 00115 } 00116 else 00117 { 00118 write_char(n, c); 00119 n++; 00120 } 00121 } 00122 } 00123 00124 void clear_mem(uint8_t data) 00125 { 00126 for (int i = 0; i<MEM_MAX;i++){ 00127 MEM[i] = data; 00128 } 00129 write_mem(); 00130 } 00131 00132 int main() { 00133 ht1621.sendCommand(ht1621.BIAS_THIRD_4_COM); 00134 LED_K = 0; 00135 while(1) { 00136 BACKLIGHT_ON; 00137 write_char(0, '0'); 00138 write_char(1, '1'); 00139 write_char(2, '2'); 00140 write_char(3, '3'); 00141 write_char(4, '4'); 00142 write_char(5, '5'); 00143 write_char(6, '6'); 00144 write_char(7, '7'); 00145 write_mem(); 00146 wait(WAIT_TIME); 00147 write_char(0, '8'); 00148 write_char(1, '9'); 00149 write_char(2, 'A'); 00150 write_char(3, 'B'); 00151 write_char(4, 'C'); 00152 write_char(5, 'D'); 00153 write_char(6, 'E'); 00154 write_char(7, 'F'); 00155 write_mem(); 00156 wait(WAIT_TIME); 00157 write_char(0, 'G'); 00158 write_char(1, 'H'); 00159 write_char(2, 'I'); 00160 write_char(3, 'J'); 00161 write_char(4, 'K'); 00162 write_char(5, 'L'); 00163 write_char(6, 'M'); 00164 write_char(7, 'N'); 00165 write_mem(); 00166 wait(WAIT_TIME); 00167 write_char(0, 'O'); 00168 write_char(1, 'P'); 00169 write_char(2, 'Q'); 00170 write_char(3, 'R'); 00171 write_char(4, 'S'); 00172 write_char(5, 'T'); 00173 write_char(6, 'U'); 00174 write_char(7, 'V'); 00175 write_mem(); 00176 wait(WAIT_TIME); 00177 write_char(0, 'W'); 00178 write_char(1, 'X'); 00179 write_char(2, 'Y'); 00180 write_char(3, 'Z'); 00181 write_char(4, ' '); 00182 write_char(5, '-'); 00183 write_char(6, '='); 00184 write_char(7, ' '); 00185 write_mem(); 00186 wait(WAIT_TIME); 00187 write_char(0, '!'); 00188 write_char(1, '"'); 00189 write_char(2, '#'); 00190 write_char(3, '$'); 00191 write_char(4, '%'); 00192 write_char(5, '&'); 00193 write_char(6, '\''); 00194 write_char(7, '('); 00195 write_mem(); 00196 wait(WAIT_TIME); 00197 write_str("0123:45.67"); 00198 write_mem(); 00199 wait(WAIT_TIME); 00200 write_str(" 999887.1"); 00201 write_mem(); 00202 wait(WAIT_TIME); 00203 icon(ICON_1, ICON_ON); 00204 icon(ICON_COLON, ICON_ON); 00205 icon(ICON_H, ICON_ON); 00206 icon(ICON_TIME, ICON_ON); 00207 icon(ICON_CAUTION, ICON_ON); 00208 icon(ICON_ASTERISK, ICON_ON); 00209 icon(ICON_POINTL, ICON_ON); 00210 icon(ICON_POINTR, ICON_ON); 00211 unit(UNIT_k|UNIT_A|UNIT_h|UNIT_MD); 00212 write_mem(); 00213 wait(WAIT_TIME); 00214 BACKLIGHT_OFF; 00215 clear_mem(0x00); 00216 wait(WAIT_TIME); 00217 for (bias = 0 ; bias<0x10; bias++) { 00218 #ifdef BIASTEST 00219 ht1621.sendCommand(0b00100000|bias); 00220 #endif 00221 sprintf(STR_BUF, "8888%4d", bias); 00222 write_str(STR_BUF); 00223 write_mem(); 00224 wait(WAIT_TIME); 00225 } 00226 } 00227 }
Generated on Sat Jul 16 2022 11:42:37 by
1.7.2