walter azevedo
/
teste
lcd
Fork of TextLCD_HelloWorld2 by
lcdpronto.cpp@5:66f276be9505, 2017-07-04 (annotated)
- Committer:
- walterlma
- Date:
- Tue Jul 04 19:43:04 2017 +0000
- Revision:
- 5:66f276be9505
lcd
Who changed what in which revision?
User | Revision | Line number | New 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 | } |