Cicero Matos
/
LCD_16x2_1
LPC1114FN28 BOARD. LCD. ANALOG IN, FORMATS
main.cpp@0:86deffea405f, 2014-10-12 (annotated)
- Committer:
- strain11
- Date:
- Sun Oct 12 01:09:24 2014 +0000
- Revision:
- 0:86deffea405f
Simple program to LCP1114 board, which uses LEDs to monitor activity, 16X2 LCD to display the analog input value in float format and 5 digits
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
strain11 | 0:86deffea405f | 1 | // |
strain11 | 0:86deffea405f | 2 | //============================================================================== |
strain11 | 0:86deffea405f | 3 | //Include mbed header file which contains the definition of DigitalOut class. |
strain11 | 0:86deffea405f | 4 | #include "mbed.h" |
strain11 | 0:86deffea405f | 5 | //Include TextLCD header file which contains the definition of TextLCD class. |
strain11 | 0:86deffea405f | 6 | #include "TextLCD.h" |
strain11 | 0:86deffea405f | 7 | #define __IRC_OSC_CLK (12000000UL) |
strain11 | 0:86deffea405f | 8 | //============================================================================== |
strain11 | 0:86deffea405f | 9 | |
strain11 | 0:86deffea405f | 10 | DigitalOut ld_1(dp14); |
strain11 | 0:86deffea405f | 11 | DigitalOut ld_2(dp28); |
strain11 | 0:86deffea405f | 12 | //------------------------------------------------------------------------------ |
strain11 | 0:86deffea405f | 13 | AnalogIn canal_0 (dp9); |
strain11 | 0:86deffea405f | 14 | |
strain11 | 0:86deffea405f | 15 | //============================================================================== |
strain11 | 0:86deffea405f | 16 | //Initialize TextLCD with the correct pins |
strain11 | 0:86deffea405f | 17 | //TextLCD_I2C lcd(&i2c_lcd, 0x42, TextLCD::LCD20x4); // I2C bus, PCF8574 Slaveaddress, LCD Type |
strain11 | 0:86deffea405f | 18 | //TextLCD_I2C lcd(&i2c_lcd, 0x42, TextLCD::LCD16x2, TextLCD::WS0010); // I2C bus, PCF8574 addr, LCD Type, Ctrl Type |
strain11 | 0:86deffea405f | 19 | //.............................................................................. |
strain11 | 0:86deffea405f | 20 | //SPI spi_lcd(p5, NC, p7); // MOSI, MISO, SCLK |
strain11 | 0:86deffea405f | 21 | //TextLCD_SPI lcd(&spi_lcd, p8, TextLCD::LCD24x4); // SPI bus, CS pin, LCD Type |
strain11 | 0:86deffea405f | 22 | //------------------------------------------------------------------------------ |
strain11 | 0:86deffea405f | 23 | TextLCD lcd(dp17, dp18, dp1, dp2, dp6, dp4, TextLCD::LCD16x2); // rs, e, d4-d7, LCD Type |
strain11 | 0:86deffea405f | 24 | // rs, e, d4- d5- d6- d7, LCD Type |
strain11 | 0:86deffea405f | 25 | //------------------------------------------------------------------------------ |
strain11 | 0:86deffea405f | 26 | //============================================================================== |
strain11 | 0:86deffea405f | 27 | //..............................variaveis |
strain11 | 0:86deffea405f | 28 | char dezmilhar; |
strain11 | 0:86deffea405f | 29 | char milhar; |
strain11 | 0:86deffea405f | 30 | char centena; |
strain11 | 0:86deffea405f | 31 | char dezena; |
strain11 | 0:86deffea405f | 32 | char unidade; |
strain11 | 0:86deffea405f | 33 | unsigned short i; |
strain11 | 0:86deffea405f | 34 | unsigned short valor_adc; |
strain11 | 0:86deffea405f | 35 | //unsigned short temp; |
strain11 | 0:86deffea405f | 36 | //------------------------------------------------------------------------------ |
strain11 | 0:86deffea405f | 37 | |
strain11 | 0:86deffea405f | 38 | void converte_4_digitos(void); |
strain11 | 0:86deffea405f | 39 | void pisca_leds(void); |
strain11 | 0:86deffea405f | 40 | void alterna_leds(void); |
strain11 | 0:86deffea405f | 41 | void converte_adc(void); |
strain11 | 0:86deffea405f | 42 | //============================================================================== |
strain11 | 0:86deffea405f | 43 | //Main function |
strain11 | 0:86deffea405f | 44 | //------------------------------------------------------------------------------ |
strain11 | 0:86deffea405f | 45 | int main() |
strain11 | 0:86deffea405f | 46 | { |
strain11 | 0:86deffea405f | 47 | //Clear the LCD display |
strain11 | 0:86deffea405f | 48 | lcd.cls(); |
strain11 | 0:86deffea405f | 49 | //------------------------------------------------------------------------------ |
strain11 | 0:86deffea405f | 50 | pisca_leds(); |
strain11 | 0:86deffea405f | 51 | wait(0.20); |
strain11 | 0:86deffea405f | 52 | alterna_leds(); |
strain11 | 0:86deffea405f | 53 | wait(0.20); |
strain11 | 0:86deffea405f | 54 | //------------------------------------------------------------------------------ |
strain11 | 0:86deffea405f | 55 | //Locate Row 0 Column 0 in the LCD display |
strain11 | 0:86deffea405f | 56 | lcd.locate(0, 0); |
strain11 | 0:86deffea405f | 57 | //Print "The End" |
strain11 | 0:86deffea405f | 58 | lcd.printf("CONTAGEM:"); |
strain11 | 0:86deffea405f | 59 | |
strain11 | 0:86deffea405f | 60 | //CONTA DE 0 A 2000 |
strain11 | 0:86deffea405f | 61 | for( i=0 ; i<=2000 ; i++) |
strain11 | 0:86deffea405f | 62 | { |
strain11 | 0:86deffea405f | 63 | //syntax Lcd.locate (coluna, linha) no LCD display |
strain11 | 0:86deffea405f | 64 | lcd.locate(0, 1); |
strain11 | 0:86deffea405f | 65 | //Call PrintToLCD function |
strain11 | 0:86deffea405f | 66 | lcd.printf(" "); |
strain11 | 0:86deffea405f | 67 | lcd.locate(0, 1); |
strain11 | 0:86deffea405f | 68 | lcd.printf("%f", canal_0.read()); |
strain11 | 0:86deffea405f | 69 | valor_adc = canal_0.read()*10000; |
strain11 | 0:86deffea405f | 70 | converte_adc(); |
strain11 | 0:86deffea405f | 71 | //wait for 250ms |
strain11 | 0:86deffea405f | 72 | converte_4_digitos(); |
strain11 | 0:86deffea405f | 73 | |
strain11 | 0:86deffea405f | 74 | wait(0.25); |
strain11 | 0:86deffea405f | 75 | } |
strain11 | 0:86deffea405f | 76 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 77 | wait(3); |
strain11 | 0:86deffea405f | 78 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 79 | //Clear the LCD display |
strain11 | 0:86deffea405f | 80 | lcd.cls(); |
strain11 | 0:86deffea405f | 81 | //syntax Lcd.locate (coluna, linha) no LCD display |
strain11 | 0:86deffea405f | 82 | lcd.locate(0, 0); |
strain11 | 0:86deffea405f | 83 | //Print "The End" |
strain11 | 0:86deffea405f | 84 | lcd.printf("FIM !"); |
strain11 | 0:86deffea405f | 85 | //------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 86 | pisca_leds(); |
strain11 | 0:86deffea405f | 87 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 88 | |
strain11 | 0:86deffea405f | 89 | |
strain11 | 0:86deffea405f | 90 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 91 | } |
strain11 | 0:86deffea405f | 92 | //============================================================================= |
strain11 | 0:86deffea405f | 93 | //............................FIM DO PROGRAMA |
strain11 | 0:86deffea405f | 94 | //============================================================================= |
strain11 | 0:86deffea405f | 95 | //........................S U B _ R O T I N A S |
strain11 | 0:86deffea405f | 96 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 97 | //....................................................... |
strain11 | 0:86deffea405f | 98 | void converte_4_digitos(void){ |
strain11 | 0:86deffea405f | 99 | // milhar = (i /1000) % 10 ; |
strain11 | 0:86deffea405f | 100 | milhar = (i /1000) ; |
strain11 | 0:86deffea405f | 101 | centena = (i /100) % 10; |
strain11 | 0:86deffea405f | 102 | dezena = (i/10) % 10; |
strain11 | 0:86deffea405f | 103 | unidade = i % 10; |
strain11 | 0:86deffea405f | 104 | //------------------------------------------------------- |
strain11 | 0:86deffea405f | 105 | //.....syntax Lcd.locate (coluna, linha) no LCD display |
strain11 | 0:86deffea405f | 106 | //------------------------------------------------------- |
strain11 | 0:86deffea405f | 107 | lcd.locate(11, 0); |
strain11 | 0:86deffea405f | 108 | lcd.printf("%d", milhar ); |
strain11 | 0:86deffea405f | 109 | |
strain11 | 0:86deffea405f | 110 | lcd.locate(12, 0); |
strain11 | 0:86deffea405f | 111 | lcd.printf("%d", centena ); |
strain11 | 0:86deffea405f | 112 | |
strain11 | 0:86deffea405f | 113 | lcd.locate(13, 0); |
strain11 | 0:86deffea405f | 114 | lcd.printf("%d", dezena ); |
strain11 | 0:86deffea405f | 115 | |
strain11 | 0:86deffea405f | 116 | lcd.locate(14, 0); |
strain11 | 0:86deffea405f | 117 | lcd.printf("%d", unidade ); |
strain11 | 0:86deffea405f | 118 | alterna_leds(); |
strain11 | 0:86deffea405f | 119 | } |
strain11 | 0:86deffea405f | 120 | //============================================================================= |
strain11 | 0:86deffea405f | 121 | void pisca_leds(void) |
strain11 | 0:86deffea405f | 122 | { |
strain11 | 0:86deffea405f | 123 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 124 | ld_1 = 1; |
strain11 | 0:86deffea405f | 125 | ld_2 = 1; |
strain11 | 0:86deffea405f | 126 | wait(0.20); |
strain11 | 0:86deffea405f | 127 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 128 | ld_1 = 0; |
strain11 | 0:86deffea405f | 129 | ld_2 = 0; |
strain11 | 0:86deffea405f | 130 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 131 | } |
strain11 | 0:86deffea405f | 132 | //============================================================================= |
strain11 | 0:86deffea405f | 133 | //============================================================================= |
strain11 | 0:86deffea405f | 134 | void alterna_leds(void) |
strain11 | 0:86deffea405f | 135 | { |
strain11 | 0:86deffea405f | 136 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 137 | ld_1 = 1; |
strain11 | 0:86deffea405f | 138 | wait(0.05); |
strain11 | 0:86deffea405f | 139 | ld_2 = 0; |
strain11 | 0:86deffea405f | 140 | wait(0.10); |
strain11 | 0:86deffea405f | 141 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 142 | ld_1 = 0; |
strain11 | 0:86deffea405f | 143 | wait(0.05); |
strain11 | 0:86deffea405f | 144 | ld_2 = 1; |
strain11 | 0:86deffea405f | 145 | wait(0.10); |
strain11 | 0:86deffea405f | 146 | |
strain11 | 0:86deffea405f | 147 | ld_1 = 0; |
strain11 | 0:86deffea405f | 148 | ld_2 = 0; |
strain11 | 0:86deffea405f | 149 | //----------------------------------------------------------------------------- |
strain11 | 0:86deffea405f | 150 | } |
strain11 | 0:86deffea405f | 151 | //============================================================================= |
strain11 | 0:86deffea405f | 152 | //....................................................... |
strain11 | 0:86deffea405f | 153 | void converte_adc(void){ |
strain11 | 0:86deffea405f | 154 | // milhar = (i /1000) % 10 ; |
strain11 | 0:86deffea405f | 155 | dezmilhar = (valor_adc/10000); |
strain11 | 0:86deffea405f | 156 | milhar = (valor_adc /1000)% 10 ; |
strain11 | 0:86deffea405f | 157 | centena = (valor_adc /100) % 10; |
strain11 | 0:86deffea405f | 158 | dezena = (valor_adc/10) % 10; |
strain11 | 0:86deffea405f | 159 | unidade = valor_adc % 10; |
strain11 | 0:86deffea405f | 160 | //------------------------------------------------------- |
strain11 | 0:86deffea405f | 161 | //.....syntax Lcd.locate (coluna, linha) no LCD display |
strain11 | 0:86deffea405f | 162 | //------------------------------------------------------- |
strain11 | 0:86deffea405f | 163 | lcd.locate(11, 1); |
strain11 | 0:86deffea405f | 164 | lcd.printf("%d", dezmilhar ); |
strain11 | 0:86deffea405f | 165 | |
strain11 | 0:86deffea405f | 166 | lcd.locate(12, 1); |
strain11 | 0:86deffea405f | 167 | lcd.printf("%d", milhar ); |
strain11 | 0:86deffea405f | 168 | |
strain11 | 0:86deffea405f | 169 | lcd.locate(13, 1); |
strain11 | 0:86deffea405f | 170 | lcd.printf("%d", centena ); |
strain11 | 0:86deffea405f | 171 | |
strain11 | 0:86deffea405f | 172 | lcd.locate(14, 1); |
strain11 | 0:86deffea405f | 173 | lcd.printf("%d", dezena ); |
strain11 | 0:86deffea405f | 174 | |
strain11 | 0:86deffea405f | 175 | lcd.locate(15, 1); |
strain11 | 0:86deffea405f | 176 | lcd.printf("%d", unidade ); |
strain11 | 0:86deffea405f | 177 | |
strain11 | 0:86deffea405f | 178 | alterna_leds(); |
strain11 | 0:86deffea405f | 179 | } |