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

Dependencies:   mbed

Fork of TextLCD by Simon Ford

Revision:
9:a504aa8ce73b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mainLCD.cpp	Wed Oct 05 21:47:44 2016 +0000
@@ -0,0 +1,186 @@
+#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;  
+    }
+}
\ No newline at end of file