TextLCD library for controlling various LCD panels based on the HD44780 4-bit interface

Dependencies:   mbed

Fork of TextLCD by Simon Ford

mainLCD.cpp

Committer:
a00958821
Date:
2016-10-05
Revision:
9:a504aa8ce73b

File content as of revision 9:a504aa8ce73b:

#include "mbed.h"
#include "TextLCD.h"

TextLCD lcd(D2, D3, D4, D5, D6, D7); // rs, e, d4-d7

DigitalOut col1 (D8);
DigitalOut col2 (D9);
DigitalOut col3 (D10);
DigitalOut col4 (D11);
DigitalIn fila1 (A5);
DigitalIn fila2 (A4);
DigitalIn fila3 (A3);
DigitalIn fila4 (A2);
DigitalIn Reset (D12);
DigitalIn Next (USER_BUTTON);

char Simbolos[4][4] = {
                     {'1','2','3','A'},
                     {'4','5','6','B'},
                     {'7','8','9','C'},
                     {'*','0','#','D'}
                     };                  
int usrInput();
void turnOffteclado();
int * teclado();
void printLCD(int a, int b);


int n = 0;

int main() {
    
    int j = 0;
    while(1){
    if (n == 0)
    {
        j=0;
        lcd.cls();
        wait(1);
        lcd.printf("A");
         while (j == 0)
         {
            if (Next == 0)
            {
                j = 1;
                n = 1;   
            }
        }  
    }
    if (n == 1)
    {
        j = 0;
        lcd.cls();
        wait(1);
        lcd.printf("Unas kguamas o k");
        while (j == 0)
        {
        if (Next == 0)
        {
            j = 1;
            n =2;  
        }
        }
    }
    while (n == 2)
    {
        j = 0;
        lcd.cls();
        wait(1);
        lcd.printf("Unas kguamas o kDos kguamas o k?");
        while (j == 0)
        {
        if (Next == 0)
        {
            j = 1;
            n =3;
        }
        }
    }
    lcd.cls();
        wait(1);
    while (n == 3)
    {
        j = 0;
        int *Index ;
        Index = teclado();
        printLCD(Index[0],Index[1]);
        
    }
        
    
    }
}

void printLCD(int a, int b)
{
    lcd.printf("%c",Simbolos[a][b]);
    wait(.3);
}

int * teclado() 
{
    static int r[2];
    turnOffteclado();
    int numero;
  while(1) 
  {    
    if (Next == 0)
        {
            lcd.cls();
            n = 0;
            wait_ms(30);
            break;   
        }
        
    col1 = 1;
    numero = usrInput();
    if (numero != 0)
    {
    r[0]=numero-1;
    r[1]=0;
    //wait_ms(30);
    return r;
    }
    turnOffteclado();
    col2 = 1;
    numero = usrInput();
    if (numero != 0)
    {
    r[0]=numero-1;
    r[1]=1;
    //wait_ms(30);
    return r;
    }
    turnOffteclado();
    col3 = 1;
    numero = usrInput();
    if (numero != 0)
    {
     r[0]=numero-1;
     r[1]=2;
     //wait_ms(30);
     return r;
    }
    turnOffteclado();
    col4 = 1;
    numero = usrInput();
    if (numero != 0)
    {
     r[0]=numero-1;
     r[1]=3;
     //wait_ms(30);
     return r;
    }
    turnOffteclado();
    
  }
}

void turnOffteclado()
{
    col1 = col2 = col3 = col4 = 0;
}
 
int usrInput()
{
    if (fila1 == 1)
    {
        return 1;
    }
    else if (fila2 == 1)
    {
        return 2;
    }
    else if (fila3 == 1)
    {
        return 3;
    }
    else if (fila4 == 1)
    {
        return 4;
    }  
    else{
    return 0;  
    }
}