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@4:0f29c512e03d, 2019-06-22 (annotated)
- Committer:
- tontoko
- Date:
- Sat Jun 22 11:44:01 2019 +0000
- Revision:
- 4:0f29c512e03d
- Parent:
- 3:d4b979f6f27e
TextLCD FULL version
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| tontoko | 0:224a2b438db4 | 1 | #include "mbed.h" |
| tontoko | 0:224a2b438db4 | 2 | #include "TextLCD.h" |
| tontoko | 0:224a2b438db4 | 3 | |
| tontoko | 2:d2d66ce72529 | 4 | #define LED_TIME 0.2 |
| tontoko | 0:224a2b438db4 | 5 | |
| tontoko | 0:224a2b438db4 | 6 | DigitalOut myled(P0_22); |
| tontoko | 0:224a2b438db4 | 7 | Serial pc(USBTX, USBRX); |
| tontoko | 0:224a2b438db4 | 8 | |
| tontoko | 3:d4b979f6f27e | 9 | // TextLCDの使用宣言 |
| tontoko | 0:224a2b438db4 | 10 | TextLCD lcd(p15,p16,p17,p18,p19,p20); //接続ポートの設定(rs,e,d4,d5,d6,d7) |
| tontoko | 0:224a2b438db4 | 11 | |
| tontoko | 0:224a2b438db4 | 12 | int main() |
| tontoko | 0:224a2b438db4 | 13 | { |
| tontoko | 4:0f29c512e03d | 14 | //各種設定を初期値に。画面も消去。カーソル位置(0,0) |
| tontoko | 4:0f29c512e03d | 15 | lcd.init(); |
| tontoko | 3:d4b979f6f27e | 16 | |
| tontoko | 3:d4b979f6f27e | 17 | // 単純な文字列表示 |
| tontoko | 4:0f29c512e03d | 18 | lcd.printf("RoBoCon 2019!"); |
| tontoko | 3:d4b979f6f27e | 19 | |
| tontoko | 3:d4b979f6f27e | 20 | wait(1); |
| tontoko | 2:d2d66ce72529 | 21 | |
| tontoko | 3:d4b979f6f27e | 22 | // カーソル位置を(0,1)に指定 |
| tontoko | 0:224a2b438db4 | 23 | lcd.locate(0,1); |
| tontoko | 4:0f29c512e03d | 24 | lcd.printf("Run Run Laundry"); |
| tontoko | 4:0f29c512e03d | 25 | wait(5); |
| tontoko | 3:d4b979f6f27e | 26 | //表示内容はそのままで、カーソル位置を0,0に。画面のシフトも初期位置に |
| tontoko | 0:224a2b438db4 | 27 | lcd.home(); |
| tontoko | 4:0f29c512e03d | 28 | wait(0.5); |
| tontoko | 3:d4b979f6f27e | 29 | |
| tontoko | 0:224a2b438db4 | 30 | lcd.noDisplay(); //ディスプレイ表示OFF |
| tontoko | 0:224a2b438db4 | 31 | |
| tontoko | 4:0f29c512e03d | 32 | wait(0.5); |
| tontoko | 4:0f29c512e03d | 33 | |
| tontoko | 4:0f29c512e03d | 34 | lcd.display(); //ディスプレイ表示ON |
| tontoko | 4:0f29c512e03d | 35 | |
| tontoko | 4:0f29c512e03d | 36 | wait(0.5); |
| tontoko | 0:224a2b438db4 | 37 | |
| tontoko | 4:0f29c512e03d | 38 | lcd.noDisplay(); //ディスプレイ表示OFF |
| tontoko | 0:224a2b438db4 | 39 | |
| tontoko | 4:0f29c512e03d | 40 | wait(0.5); |
| tontoko | 4:0f29c512e03d | 41 | |
| tontoko | 4:0f29c512e03d | 42 | lcd.display(); //ディスプレイ表示ON |
| tontoko | 4:0f29c512e03d | 43 | |
| tontoko | 4:0f29c512e03d | 44 | wait(0.5); |
| tontoko | 3:d4b979f6f27e | 45 | |
| tontoko | 0:224a2b438db4 | 46 | lcd.cursor(); //カーソル表示ON |
| tontoko | 0:224a2b438db4 | 47 | |
| tontoko | 3:d4b979f6f27e | 48 | lcd.blink(); //カーソルブリンクON |
| tontoko | 0:224a2b438db4 | 49 | |
| tontoko | 0:224a2b438db4 | 50 | wait(5); |
| tontoko | 0:224a2b438db4 | 51 | |
| tontoko | 3:d4b979f6f27e | 52 | lcd.noBlink(); //カーソルブリンクOFF |
| tontoko | 0:224a2b438db4 | 53 | |
| tontoko | 0:224a2b438db4 | 54 | lcd.noCursor(); //カーソル表示OFF |
| tontoko | 3:d4b979f6f27e | 55 | |
| tontoko | 3:d4b979f6f27e | 56 | |
| tontoko | 3:d4b979f6f27e | 57 | //表示内容はそのままで、画面を左にシフト 4回 |
| tontoko | 3:d4b979f6f27e | 58 | for (int i = 0; i < 4; i++) { |
| tontoko | 3:d4b979f6f27e | 59 | lcd.shiftDisplayLeft(); |
| tontoko | 3:d4b979f6f27e | 60 | wait(1); |
| tontoko | 3:d4b979f6f27e | 61 | } |
| tontoko | 3:d4b979f6f27e | 62 | //表示内容はそのままで、画面を右にシフト 4回 |
| tontoko | 3:d4b979f6f27e | 63 | for (int i = 0; i< 4; i++) { |
| tontoko | 3:d4b979f6f27e | 64 | lcd.shiftDisplayRight(); |
| tontoko | 3:d4b979f6f27e | 65 | wait(1); |
| tontoko | 3:d4b979f6f27e | 66 | } |
| tontoko | 3:d4b979f6f27e | 67 | |
| tontoko | 3:d4b979f6f27e | 68 | lcd.cls(); //画面消去、カーソルは(0,0)へ |
| tontoko | 0:224a2b438db4 | 69 | |
| tontoko | 3:d4b979f6f27e | 70 | //カーソル位置を10,0へ |
| tontoko | 0:224a2b438db4 | 71 | lcd.locate(10,0); |
| tontoko | 3:d4b979f6f27e | 72 | |
| tontoko | 3:d4b979f6f27e | 73 | //表示位置をカーソルから右方向へ設定(デフォルト) |
| tontoko | 1:5c99971e3ee5 | 74 | lcd.leftToRight(); |
| tontoko | 2:d2d66ce72529 | 75 | lcd.printf("5678"); |
| tontoko | 2:d2d66ce72529 | 76 | wait(1); |
| tontoko | 3:d4b979f6f27e | 77 | |
| tontoko | 3:d4b979f6f27e | 78 | //カーソル位置を4,0へ |
| tontoko | 3:d4b979f6f27e | 79 | lcd.locate(4,0); |
| tontoko | 3:d4b979f6f27e | 80 | |
| tontoko | 3:d4b979f6f27e | 81 | //表示位置をカーソル位置から左方向へ設定 |
| tontoko | 2:d2d66ce72529 | 82 | lcd.rightToLeft(); |
| tontoko | 3:d4b979f6f27e | 83 | lcd.printf("1234"); //画面上では "4321"とカーソル位置から左方向に表示される |
| tontoko | 3:d4b979f6f27e | 84 | wait(1); |
| tontoko | 2:d2d66ce72529 | 85 | |
| tontoko | 3:d4b979f6f27e | 86 | //表示位置をカーソルから右方向へ設定(デフォルト |
| tontoko | 2:d2d66ce72529 | 87 | lcd.leftToRight(); |
| tontoko | 2:d2d66ce72529 | 88 | |
| tontoko | 2:d2d66ce72529 | 89 | lcd.cls(); |
| tontoko | 2:d2d66ce72529 | 90 | lcd.home(); |
| tontoko | 0:224a2b438db4 | 91 | wait(1); |
| tontoko | 2:d2d66ce72529 | 92 | |
| tontoko | 3:d4b979f6f27e | 93 | //オートスクロール カーソル位置に文字を表示する度に、設定した方向に画面をシフト |
| tontoko | 2:d2d66ce72529 | 94 | lcd.AutoScroll(); |
| tontoko | 2:d2d66ce72529 | 95 | lcd.locate(8,0); |
| tontoko | 3:d4b979f6f27e | 96 | lcd.printf("1"); //わかりやすく1文字ずつ描画 |
| tontoko | 2:d2d66ce72529 | 97 | wait(1); |
| tontoko | 2:d2d66ce72529 | 98 | lcd.printf("2"); |
| tontoko | 2:d2d66ce72529 | 99 | wait(1); |
| tontoko | 2:d2d66ce72529 | 100 | lcd.printf("3"); |
| tontoko | 2:d2d66ce72529 | 101 | wait(1); |
| tontoko | 2:d2d66ce72529 | 102 | lcd.printf("4"); |
| tontoko | 2:d2d66ce72529 | 103 | wait(1); |
| tontoko | 3:d4b979f6f27e | 104 | |
| tontoko | 3:d4b979f6f27e | 105 | |
| tontoko | 3:d4b979f6f27e | 106 | lcd.init(); |
| tontoko | 3:d4b979f6f27e | 107 | |
| tontoko | 3:d4b979f6f27e | 108 | // 表示する最大桁数を設定 1 〜 40(画面は16文字まで。DDRAMは最大40文字×2行) |
| tontoko | 3:d4b979f6f27e | 109 | lcd.set_max_cols(12); //12文字で折返しになる設定 |
| tontoko | 3:d4b979f6f27e | 110 | lcd.locate(4,0); |
| tontoko | 3:d4b979f6f27e | 111 | lcd.rightToLeft(); |
| tontoko | 3:d4b979f6f27e | 112 | lcd.printf("1234567890123456789012"); |
| tontoko | 3:d4b979f6f27e | 113 | wait(5); |
| tontoko | 3:d4b979f6f27e | 114 | |
| tontoko | 3:d4b979f6f27e | 115 | lcd.init(); |
| tontoko | 3:d4b979f6f27e | 116 | |
| tontoko | 3:d4b979f6f27e | 117 | // CGRAM(外字)の設定 bitを設定した配列を用意 |
| tontoko | 3:d4b979f6f27e | 118 | char bell[8] = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4}; |
| tontoko | 3:d4b979f6f27e | 119 | char note[8] = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0}; |
| tontoko | 3:d4b979f6f27e | 120 | char clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; |
| tontoko | 3:d4b979f6f27e | 121 | char heart[8] = {0x0,0xa,0x1f,0x1f,0xe,0x4,0x0}; |
| tontoko | 3:d4b979f6f27e | 122 | char duck[8] = {0x0,0xc,0x1d,0xf,0xf,0x6,0x0}; |
| tontoko | 3:d4b979f6f27e | 123 | char check[8] = {0x0,0x1,0x3,0x16,0x1c,0x8,0x0}; |
| tontoko | 3:d4b979f6f27e | 124 | char cross[8] = {0x0,0x1b,0xe,0x4,0xe,0x1b,0x0}; |
| tontoko | 3:d4b979f6f27e | 125 | char retarrow[8] = {0x1,0x1,0x5,0x9,0x1f,0x8,0x4}; |
| tontoko | 3:d4b979f6f27e | 126 | |
| tontoko | 3:d4b979f6f27e | 127 | //CGRAMに格納 0番〜7番までの8文字 |
| tontoko | 3:d4b979f6f27e | 128 | lcd.createChar(0, bell); |
| tontoko | 3:d4b979f6f27e | 129 | lcd.createChar(1, note); |
| tontoko | 3:d4b979f6f27e | 130 | lcd.createChar(2, clock); |
| tontoko | 3:d4b979f6f27e | 131 | lcd.createChar(3, heart); |
| tontoko | 3:d4b979f6f27e | 132 | lcd.createChar(4, duck); |
| tontoko | 3:d4b979f6f27e | 133 | lcd.createChar(5, check); |
| tontoko | 3:d4b979f6f27e | 134 | lcd.createChar(6, cross); |
| tontoko | 3:d4b979f6f27e | 135 | lcd.createChar(7, retarrow); |
| tontoko | 3:d4b979f6f27e | 136 | |
| tontoko | 3:d4b979f6f27e | 137 | lcd.home(); |
| tontoko | 3:d4b979f6f27e | 138 | |
| tontoko | 3:d4b979f6f27e | 139 | //設定した外字を表示 |
| tontoko | 3:d4b979f6f27e | 140 | for (int j=0; j<8; j++) { |
| tontoko | 3:d4b979f6f27e | 141 | lcd.putc(j); |
| tontoko | 3:d4b979f6f27e | 142 | } |
| tontoko | 4:0f29c512e03d | 143 | wait(5); |
| tontoko | 2:d2d66ce72529 | 144 | |
| tontoko | 4:0f29c512e03d | 145 | lcd.locate(0,0); |
| tontoko | 4:0f29c512e03d | 146 | |
| tontoko | 4:0f29c512e03d | 147 | lcd.set_max_cols(16); |
| tontoko | 2:d2d66ce72529 | 148 | |
| tontoko | 3:d4b979f6f27e | 149 | |
| tontoko | 4:0f29c512e03d | 150 | lcd.kana_print("カタカナ モ ヒョウジデキル"); |
| tontoko | 4:0f29c512e03d | 151 | |
| tontoko | 4:0f29c512e03d | 152 | lcd.kana_print("サシスセソ"); |
| tontoko | 4:0f29c512e03d | 153 | lcd.kana_print("タチツテト"); |
| tontoko | 4:0f29c512e03d | 154 | lcd.kana_print("ナニヌネノ"); |
| tontoko | 4:0f29c512e03d | 155 | /* for (int i = 0; i < 15;i++) { |
| tontoko | 4:0f29c512e03d | 156 | lcd.printf("%x",s[i]); |
| tontoko | 4:0f29c512e03d | 157 | } |
| tontoko | 4:0f29c512e03d | 158 | */ |
| tontoko | 0:224a2b438db4 | 159 | while(1) { |
| tontoko | 4:0f29c512e03d | 160 | |
| tontoko | 4:0f29c512e03d | 161 | |
| tontoko | 4:0f29c512e03d | 162 | lcd.set_max_cols(16); |
| tontoko | 4:0f29c512e03d | 163 | lcd.cls(); |
| tontoko | 4:0f29c512e03d | 164 | |
| tontoko | 4:0f29c512e03d | 165 | for (int x = 0;x < 99 ;x++) { |
| tontoko | 4:0f29c512e03d | 166 | lcd.locate(0,0); |
| tontoko | 4:0f29c512e03d | 167 | lcd.printf("count = %02d\n",x); |
| tontoko | 4:0f29c512e03d | 168 | wait(0.5); |
| tontoko | 4:0f29c512e03d | 169 | } |
| tontoko | 4:0f29c512e03d | 170 | |
| tontoko | 0:224a2b438db4 | 171 | } |
| tontoko | 0:224a2b438db4 | 172 | } |
| tontoko | 0:224a2b438db4 | 173 | |
| tontoko | 0:224a2b438db4 | 174 |