lcd

Dependencies:   mbed

Fork of TextLCD_HelloWorld2 by Wim Huiskamp

Committer:
walterlma
Date:
Tue Jul 04 19:43:04 2017 +0000
Revision:
5:66f276be9505
lcd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
walterlma 5:66f276be9505 1 #include "mbed.h"
walterlma 5:66f276be9505 2
walterlma 5:66f276be9505 3 #define tuss 2
walterlma 5:66f276be9505 4 #define tusl 20
walterlma 5:66f276be9505 5 #define tms 2
walterlma 5:66f276be9505 6
walterlma 5:66f276be9505 7 #define OFF 1
walterlma 5:66f276be9505 8 #define ON 0
walterlma 5:66f276be9505 9
walterlma 5:66f276be9505 10 Serial pc(USBTX, USBRX); // tx, rx
walterlma 5:66f276be9505 11
walterlma 5:66f276be9505 12 SPI lcd(PTE3, PTE1, PTE2);
walterlma 5:66f276be9505 13 DigitalOut cs(PTE4);
walterlma 5:66f276be9505 14 DigitalOut res(PTD5);
walterlma 5:66f276be9505 15 DigitalOut dc(PTC12);
walterlma 5:66f276be9505 16 char k;
walterlma 5:66f276be9505 17
walterlma 5:66f276be9505 18 void init_LCD(){
walterlma 5:66f276be9505 19 res = 0;
walterlma 5:66f276be9505 20 dc = 0;
walterlma 5:66f276be9505 21 cs = 1;
walterlma 5:66f276be9505 22 wait(0.1);
walterlma 5:66f276be9505 23 res = 1;
walterlma 5:66f276be9505 24 k = 0;
walterlma 5:66f276be9505 25 cs = 0;
walterlma 5:66f276be9505 26 lcd.write(0x3C);
walterlma 5:66f276be9505 27 wait_us(tuss);
walterlma 5:66f276be9505 28 cs = 1;
walterlma 5:66f276be9505 29 wait_ms(tms);
walterlma 5:66f276be9505 30 cs = 0;
walterlma 5:66f276be9505 31 lcd.write(0x0C);
walterlma 5:66f276be9505 32 wait_us(tuss);
walterlma 5:66f276be9505 33 cs = 1;
walterlma 5:66f276be9505 34 wait_us(tusl);
walterlma 5:66f276be9505 35 cs = 0;
walterlma 5:66f276be9505 36 lcd.write(0x01);
walterlma 5:66f276be9505 37 wait_us(tuss);
walterlma 5:66f276be9505 38 cs = 1;
walterlma 5:66f276be9505 39 wait_ms(tms);
walterlma 5:66f276be9505 40 cs = 0;
walterlma 5:66f276be9505 41 lcd.write(0x06);
walterlma 5:66f276be9505 42 wait_us(tuss);
walterlma 5:66f276be9505 43
walterlma 5:66f276be9505 44 return;
walterlma 5:66f276be9505 45 }
walterlma 5:66f276be9505 46
walterlma 5:66f276be9505 47 void pula_linha(){
walterlma 5:66f276be9505 48 dc = 0;
walterlma 5:66f276be9505 49 wait_ms(tms);
walterlma 5:66f276be9505 50 cs = 0;
walterlma 5:66f276be9505 51 lcd.write(0xC0);
walterlma 5:66f276be9505 52 wait_us(tuss);
walterlma 5:66f276be9505 53 cs = 1;
walterlma 5:66f276be9505 54 wait_ms(tms);
walterlma 5:66f276be9505 55
walterlma 5:66f276be9505 56 dc = 1;
walterlma 5:66f276be9505 57 wait_ms(tms);
walterlma 5:66f276be9505 58
walterlma 5:66f276be9505 59 return;
walterlma 5:66f276be9505 60 }
walterlma 5:66f276be9505 61
walterlma 5:66f276be9505 62 void limpa_lcd(void){
walterlma 5:66f276be9505 63
walterlma 5:66f276be9505 64 dc = 0;
walterlma 5:66f276be9505 65 wait_ms(tms);
walterlma 5:66f276be9505 66 cs = 0;
walterlma 5:66f276be9505 67 lcd.write(0x01);
walterlma 5:66f276be9505 68 wait_us(tuss);
walterlma 5:66f276be9505 69 cs = 1;
walterlma 5:66f276be9505 70 wait_ms(tms);
walterlma 5:66f276be9505 71
walterlma 5:66f276be9505 72 dc = 1;
walterlma 5:66f276be9505 73 wait_ms(tms);
walterlma 5:66f276be9505 74
walterlma 5:66f276be9505 75 return;
walterlma 5:66f276be9505 76 }
walterlma 5:66f276be9505 77
walterlma 5:66f276be9505 78 int main() {
walterlma 5:66f276be9505 79 pc.baud(9600);
walterlma 5:66f276be9505 80
walterlma 5:66f276be9505 81 lcd.format(8, 3); // Modo 0 ou 3
walterlma 5:66f276be9505 82 lcd.frequency(1000000); // 100kHz
walterlma 5:66f276be9505 83
walterlma 5:66f276be9505 84 init_LCD();
walterlma 5:66f276be9505 85
walterlma 5:66f276be9505 86 cs = 1;
walterlma 5:66f276be9505 87 wait_ms(tms);
walterlma 5:66f276be9505 88 dc = 1;
walterlma 5:66f276be9505 89 wait_ms(tms);
walterlma 5:66f276be9505 90
walterlma 5:66f276be9505 91 for(k = 0x30; k < 0x3A; k++) {
walterlma 5:66f276be9505 92 cs = 0;
walterlma 5:66f276be9505 93 lcd.write(k);
walterlma 5:66f276be9505 94 wait_us(tuss);
walterlma 5:66f276be9505 95 cs = 1;
walterlma 5:66f276be9505 96 wait_ms(tms);
walterlma 5:66f276be9505 97 }
walterlma 5:66f276be9505 98
walterlma 5:66f276be9505 99 pula_linha();
walterlma 5:66f276be9505 100
walterlma 5:66f276be9505 101 for(k = 'A'; k < 'Q'; k++) {
walterlma 5:66f276be9505 102 cs = 0;
walterlma 5:66f276be9505 103 lcd.write(k);
walterlma 5:66f276be9505 104 wait_us(tuss);
walterlma 5:66f276be9505 105 cs = 1;
walterlma 5:66f276be9505 106 wait_ms(tms);
walterlma 5:66f276be9505 107 }
walterlma 5:66f276be9505 108
walterlma 5:66f276be9505 109 wait(5);
walterlma 5:66f276be9505 110
walterlma 5:66f276be9505 111 limpa_lcd();
walterlma 5:66f276be9505 112 }