This shows you the differences between two versions of the page.
tutorials:arduino:lcd_display [2014/02/27 20:58] aaron created |
tutorials:arduino:lcd_display [2014/02/28 10:19] (current) sam |
||
---|---|---|---|
Line 9: | Line 9: | ||
===== Abstract ===== | ===== Abstract ===== | ||
+ | How to do this,please refer to [[http://docs.cubieboard.org/tutorials/arduino/controlling_led |light led]] and [[http://docs.cubieboard.org/tutorials/arduino/connecting|how to connect cubieboard and arduino]] | ||
+ | |||
{{:tutorials:arduino:照片_4_.jpg|400}} | {{:tutorials:arduino:照片_4_.jpg|400}} | ||
- | ===== Headline ===== | + | =====Schematics===== |
+ | {{:tutorials:arduino:dd.jpg|200}} | ||
+ | |||
+ | ====Source Code==== | ||
+ | <code> | ||
+ | |||
+ | |||
+ | |||
+ | int DI = 12; | ||
+ | int RW = 11; | ||
+ | int DB[] = {3, 4, 5, 6, 7, 8, 9, 10}; | ||
+ | |||
+ | int Enable = 2; | ||
+ | |||
+ | void LcdCommandWrite(int value) { | ||
+ | |||
+ | int i = 0; | ||
+ | for (i=DB[0]; i <= DI; i++){ | ||
+ | digitalWrite(i,value & 01); | ||
+ | value >>= 1; | ||
+ | } | ||
+ | digitalWrite(Enable,LOW); | ||
+ | delayMicroseconds(1); | ||
+ | digitalWrite(Enable,HIGH); | ||
+ | delayMicroseconds(1); | ||
+ | digitalWrite(Enable,LOW); | ||
+ | delayMicroseconds(1); | ||
+ | } | ||
+ | |||
+ | void LcdDataWrite(int value) { | ||
+ | int i = 0; | ||
+ | digitalWrite(DI, HIGH); | ||
+ | digitalWrite(RW, LOW); | ||
+ | for (i=DB[0]; i <= DB[7]; i++) { | ||
+ | digitalWrite(i,value & 01); | ||
+ | value >>= 1; | ||
+ | } | ||
+ | digitalWrite(Enable,LOW); | ||
+ | delayMicroseconds(1); | ||
+ | digitalWrite(Enable,HIGH); | ||
+ | delayMicroseconds(1); | ||
+ | digitalWrite(Enable,LOW); | ||
+ | delayMicroseconds(1); | ||
+ | } | ||
+ | |||
+ | void setup (void) { | ||
+ | int i = 0; | ||
+ | for (i=Enable; i <= DI; i++) { | ||
+ | pinMode(i,OUTPUT); | ||
+ | } | ||
+ | delay(100); | ||
+ | |||
+ | LcdCommandWrite(0x38); | ||
+ | delay(64); | ||
+ | LcdCommandWrite(0x38); | ||
+ | delay(50); | ||
+ | LcdCommandWrite(0x38); | ||
+ | delay(20); | ||
+ | LcdCommandWrite(0x06); | ||
+ | |||
+ | delay(20); | ||
+ | LcdCommandWrite(0x0E); | ||
+ | |||
+ | delay(20); | ||
+ | LcdCommandWrite(0x01); | ||
+ | delay(100); | ||
+ | LcdCommandWrite(0x80); | ||
+ | |||
+ | delay(20); | ||
+ | } | ||
- | ==== Headline ==== | + | void loop (void) { |
+ | LcdCommandWrite(0x01); | ||
+ | delay(10); | ||
+ | LcdCommandWrite(0x80+3); | ||
+ | delay(10); | ||
+ | |||
+ | LcdDataWrite('W'); | ||
+ | LcdDataWrite('e'); | ||
+ | LcdDataWrite('l'); | ||
+ | LcdDataWrite('c'); | ||
+ | LcdDataWrite('o'); | ||
+ | LcdDataWrite('m'); | ||
+ | LcdDataWrite('e'); | ||
+ | LcdDataWrite(' '); | ||
+ | LcdDataWrite('t'); | ||
+ | LcdDataWrite('o'); | ||
+ | delay(10); | ||
+ | LcdCommandWrite(0xc0+1); | ||
+ | delay(10); | ||
+ | LcdDataWrite('g'); | ||
+ | LcdDataWrite('e'); | ||
+ | LcdDataWrite('e'); | ||
+ | LcdDataWrite('k'); | ||
+ | LcdDataWrite('-'); | ||
+ | LcdDataWrite('w'); | ||
+ | LcdDataWrite('o'); | ||
+ | LcdDataWrite('r'); | ||
+ | LcdDataWrite('k'); | ||
+ | LcdDataWrite('s'); | ||
+ | LcdDataWrite('h'); | ||
+ | LcdDataWrite('o'); | ||
+ | LcdDataWrite('p'); | ||
+ | delay(5000); | ||
+ | LcdCommandWrite(0x01); | ||
+ | delay(10); | ||
+ | LcdDataWrite('I'); | ||
+ | LcdDataWrite(' '); | ||
+ | LcdDataWrite('a'); | ||
+ | LcdDataWrite('m'); | ||
+ | LcdDataWrite(' '); | ||
+ | LcdDataWrite('h'); | ||
+ | LcdDataWrite('o'); | ||
+ | LcdDataWrite('n'); | ||
+ | LcdDataWrite('g'); | ||
+ | LcdDataWrite('y'); | ||
+ | LcdDataWrite('i'); | ||
+ | delay(3000); | ||
+ | LcdCommandWrite(0x02); | ||
+ | delay(10); | ||
+ | LcdCommandWrite(0x80+5); | ||
+ | delay(10); | ||
+ | LcdDataWrite('t'); | ||
+ | LcdDataWrite('h'); | ||
+ | LcdDataWrite('e'); | ||
+ | LcdDataWrite(' '); | ||
+ | LcdDataWrite('a'); | ||
+ | LcdDataWrite('d'); | ||
+ | LcdDataWrite('m'); | ||
+ | LcdDataWrite('i'); | ||
+ | LcdDataWrite('n'); | ||
+ | delay(5000); | ||
+ | } | ||
+ | </code> | ||