a
Dependencies: mbed TextLCD Keypad
main.cpp@0:0b651cdc4e79, 2020-08-24 (annotated)
- Committer:
- 20172573073
- Date:
- Mon Aug 24 23:03:18 2020 +0000
- Revision:
- 0:0b651cdc4e79
a
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
20172573073 | 0:0b651cdc4e79 | 1 | #include "mbed.h" |
20172573073 | 0:0b651cdc4e79 | 2 | #include "TextLCD.h" |
20172573073 | 0:0b651cdc4e79 | 3 | #include "Keypad.h" |
20172573073 | 0:0b651cdc4e79 | 4 | Keypad kpad(PTC4, PTC0, PTB19, PTB18, PTC11, PTC10, PTC7, PTC6); |
20172573073 | 0:0b651cdc4e79 | 5 | TextLCD lcd(D0,D1,D2,D3,D4,D5, TextLCD::LCD16x2 ); |
20172573073 | 0:0b651cdc4e79 | 6 | |
20172573073 | 0:0b651cdc4e79 | 7 | char key ; |
20172573073 | 0:0b651cdc4e79 | 8 | int x =0; |
20172573073 | 0:0b651cdc4e79 | 9 | int y =0; |
20172573073 | 0:0b651cdc4e79 | 10 | int i,j,k; |
20172573073 | 0:0b651cdc4e79 | 11 | Ticker teclado; |
20172573073 | 0:0b651cdc4e79 | 12 | void tec() |
20172573073 | 0:0b651cdc4e79 | 13 | { |
20172573073 | 0:0b651cdc4e79 | 14 | key = kpad.ReadKey(); |
20172573073 | 0:0b651cdc4e79 | 15 | } |
20172573073 | 0:0b651cdc4e79 | 16 | void keysito() |
20172573073 | 0:0b651cdc4e79 | 17 | { |
20172573073 | 0:0b651cdc4e79 | 18 | switch(key) { |
20172573073 | 0:0b651cdc4e79 | 19 | case '1': |
20172573073 | 0:0b651cdc4e79 | 20 | lcd.printf("1"); |
20172573073 | 0:0b651cdc4e79 | 21 | x=1; |
20172573073 | 0:0b651cdc4e79 | 22 | y=y+1; |
20172573073 | 0:0b651cdc4e79 | 23 | break; |
20172573073 | 0:0b651cdc4e79 | 24 | |
20172573073 | 0:0b651cdc4e79 | 25 | case '2': |
20172573073 | 0:0b651cdc4e79 | 26 | lcd.printf("2"); |
20172573073 | 0:0b651cdc4e79 | 27 | x=2; |
20172573073 | 0:0b651cdc4e79 | 28 | y=y+1; |
20172573073 | 0:0b651cdc4e79 | 29 | break; |
20172573073 | 0:0b651cdc4e79 | 30 | |
20172573073 | 0:0b651cdc4e79 | 31 | case '3': |
20172573073 | 0:0b651cdc4e79 | 32 | lcd.printf("3"); |
20172573073 | 0:0b651cdc4e79 | 33 | x=3; |
20172573073 | 0:0b651cdc4e79 | 34 | y=y+1; |
20172573073 | 0:0b651cdc4e79 | 35 | break; |
20172573073 | 0:0b651cdc4e79 | 36 | case '4': |
20172573073 | 0:0b651cdc4e79 | 37 | lcd.printf("4"); |
20172573073 | 0:0b651cdc4e79 | 38 | x=4; |
20172573073 | 0:0b651cdc4e79 | 39 | y=y+1; |
20172573073 | 0:0b651cdc4e79 | 40 | break; |
20172573073 | 0:0b651cdc4e79 | 41 | |
20172573073 | 0:0b651cdc4e79 | 42 | case '5': |
20172573073 | 0:0b651cdc4e79 | 43 | lcd.printf("5"); |
20172573073 | 0:0b651cdc4e79 | 44 | x=5; |
20172573073 | 0:0b651cdc4e79 | 45 | y=y+1; |
20172573073 | 0:0b651cdc4e79 | 46 | break; |
20172573073 | 0:0b651cdc4e79 | 47 | |
20172573073 | 0:0b651cdc4e79 | 48 | case '6': |
20172573073 | 0:0b651cdc4e79 | 49 | lcd.printf("6"); |
20172573073 | 0:0b651cdc4e79 | 50 | x=6; |
20172573073 | 0:0b651cdc4e79 | 51 | y=y+1; |
20172573073 | 0:0b651cdc4e79 | 52 | break; |
20172573073 | 0:0b651cdc4e79 | 53 | case '7': |
20172573073 | 0:0b651cdc4e79 | 54 | lcd.printf("7"); |
20172573073 | 0:0b651cdc4e79 | 55 | x=7; |
20172573073 | 0:0b651cdc4e79 | 56 | y=y+1; |
20172573073 | 0:0b651cdc4e79 | 57 | break; |
20172573073 | 0:0b651cdc4e79 | 58 | |
20172573073 | 0:0b651cdc4e79 | 59 | case '8': |
20172573073 | 0:0b651cdc4e79 | 60 | lcd.printf("8"); |
20172573073 | 0:0b651cdc4e79 | 61 | x=8; |
20172573073 | 0:0b651cdc4e79 | 62 | y=y+1; |
20172573073 | 0:0b651cdc4e79 | 63 | break; |
20172573073 | 0:0b651cdc4e79 | 64 | |
20172573073 | 0:0b651cdc4e79 | 65 | case '9': |
20172573073 | 0:0b651cdc4e79 | 66 | lcd.printf("9"); |
20172573073 | 0:0b651cdc4e79 | 67 | x=0; |
20172573073 | 0:0b651cdc4e79 | 68 | y=y+1; |
20172573073 | 0:0b651cdc4e79 | 69 | break; |
20172573073 | 0:0b651cdc4e79 | 70 | |
20172573073 | 0:0b651cdc4e79 | 71 | case '0': |
20172573073 | 0:0b651cdc4e79 | 72 | lcd.printf("0"); |
20172573073 | 0:0b651cdc4e79 | 73 | x=0; |
20172573073 | 0:0b651cdc4e79 | 74 | y=y+1; |
20172573073 | 0:0b651cdc4e79 | 75 | break; |
20172573073 | 0:0b651cdc4e79 | 76 | |
20172573073 | 0:0b651cdc4e79 | 77 | |
20172573073 | 0:0b651cdc4e79 | 78 | } |
20172573073 | 0:0b651cdc4e79 | 79 | |
20172573073 | 0:0b651cdc4e79 | 80 | wait(0.5); |
20172573073 | 0:0b651cdc4e79 | 81 | |
20172573073 | 0:0b651cdc4e79 | 82 | } |
20172573073 | 0:0b651cdc4e79 | 83 | void filas() |
20172573073 | 0:0b651cdc4e79 | 84 | { |
20172573073 | 0:0b651cdc4e79 | 85 | lcd.locate(0,0); |
20172573073 | 0:0b651cdc4e79 | 86 | lcd.printf("# filas < 16"); |
20172573073 | 0:0b651cdc4e79 | 87 | lcd.locate(0,1); |
20172573073 | 0:0b651cdc4e79 | 88 | keysito(); |
20172573073 | 0:0b651cdc4e79 | 89 | |
20172573073 | 0:0b651cdc4e79 | 90 | } |
20172573073 | 0:0b651cdc4e79 | 91 | |
20172573073 | 0:0b651cdc4e79 | 92 | void columnas() |
20172573073 | 0:0b651cdc4e79 | 93 | { |
20172573073 | 0:0b651cdc4e79 | 94 | lcd.locate(0,0); |
20172573073 | 0:0b651cdc4e79 | 95 | lcd.printf("# columnas < 2"); |
20172573073 | 0:0b651cdc4e79 | 96 | lcd.locate(0,1); |
20172573073 | 0:0b651cdc4e79 | 97 | keysito(); |
20172573073 | 0:0b651cdc4e79 | 98 | } |
20172573073 | 0:0b651cdc4e79 | 99 | void asterisco() |
20172573073 | 0:0b651cdc4e79 | 100 | { |
20172573073 | 0:0b651cdc4e79 | 101 | lcd.locate(0,0); |
20172573073 | 0:0b651cdc4e79 | 102 | lcd.printf("# asteriscos"); |
20172573073 | 0:0b651cdc4e79 | 103 | lcd.locate(0,1); |
20172573073 | 0:0b651cdc4e79 | 104 | keysito(); |
20172573073 | 0:0b651cdc4e79 | 105 | } |
20172573073 | 0:0b651cdc4e79 | 106 | int main () |
20172573073 | 0:0b651cdc4e79 | 107 | { |
20172573073 | 0:0b651cdc4e79 | 108 | |
20172573073 | 0:0b651cdc4e79 | 109 | //teclado.attach(&tec,0.01); |
20172573073 | 0:0b651cdc4e79 | 110 | |
20172573073 | 0:0b651cdc4e79 | 111 | while(1) { |
20172573073 | 0:0b651cdc4e79 | 112 | tec(); |
20172573073 | 0:0b651cdc4e79 | 113 | if(y == 0) { |
20172573073 | 0:0b651cdc4e79 | 114 | lcd.cls(); |
20172573073 | 0:0b651cdc4e79 | 115 | filas(); |
20172573073 | 0:0b651cdc4e79 | 116 | i=x; |
20172573073 | 0:0b651cdc4e79 | 117 | x=0; |
20172573073 | 0:0b651cdc4e79 | 118 | wait(1.5); |
20172573073 | 0:0b651cdc4e79 | 119 | }tec(); |
20172573073 | 0:0b651cdc4e79 | 120 | if(y == 1) { |
20172573073 | 0:0b651cdc4e79 | 121 | lcd.cls(); |
20172573073 | 0:0b651cdc4e79 | 122 | columnas(); |
20172573073 | 0:0b651cdc4e79 | 123 | j=x; |
20172573073 | 0:0b651cdc4e79 | 124 | x=0; |
20172573073 | 0:0b651cdc4e79 | 125 | wait(1.5); |
20172573073 | 0:0b651cdc4e79 | 126 | }tec(); |
20172573073 | 0:0b651cdc4e79 | 127 | if(y == 2) { |
20172573073 | 0:0b651cdc4e79 | 128 | lcd.cls(); |
20172573073 | 0:0b651cdc4e79 | 129 | asterisco(); |
20172573073 | 0:0b651cdc4e79 | 130 | k=x; |
20172573073 | 0:0b651cdc4e79 | 131 | x=0; |
20172573073 | 0:0b651cdc4e79 | 132 | wait(1.5); |
20172573073 | 0:0b651cdc4e79 | 133 | if( y > 2){ |
20172573073 | 0:0b651cdc4e79 | 134 | lcd.cls(); |
20172573073 | 0:0b651cdc4e79 | 135 | lcd.locate(i,j); |
20172573073 | 0:0b651cdc4e79 | 136 | int a=1; |
20172573073 | 0:0b651cdc4e79 | 137 | while(k >= a){ |
20172573073 | 0:0b651cdc4e79 | 138 | lcd.printf("*"); |
20172573073 | 0:0b651cdc4e79 | 139 | a=a+1; |
20172573073 | 0:0b651cdc4e79 | 140 | } |
20172573073 | 0:0b651cdc4e79 | 141 | } |
20172573073 | 0:0b651cdc4e79 | 142 | } |
20172573073 | 0:0b651cdc4e79 | 143 | } |
20172573073 | 0:0b651cdc4e79 | 144 | } |