lab4a

Dependencies:   mbed mbed-rtos tsi_sensor SLCD

Revision:
0:78b84e1ce9df
Child:
1:03ee5f19d879
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/NKC_LCD.h	Tue Feb 18 21:16:23 2020 +0000
@@ -0,0 +1,193 @@
+#ifndef NKC_LCD_H
+#define NKC_LCD_H
+
+Serial lcd(PTD3,NC);
+
+int NKC_BAUD[9]={0,300,1200,2400,9600,14400,19200,57600,115200};
+
+int lcd_baud_decode(int baud)
+{
+    int target_baud;
+    target_baud=0;
+    if(baud >= 1 && baud <= 8)
+    {
+        target_baud=baud;
+    }
+    else
+    {
+        for(int i = 1; i <=8; i++)
+        {
+            if(baud ==  NKC_BAUD[i])
+            {
+                target_baud=baud;           
+            }
+        }
+    }
+    if(target_baud >0)
+    {
+        return(NKC_BAUD[target_baud]);
+    }
+    else
+    {
+        return(-1);   
+    }    
+}
+
+int lcd_baud(int baud)
+{
+    int target_baud;
+    target_baud=lcd_baud_decode(baud);
+    if(target_baud > 0)
+    {
+        lcd.baud(NKC_BAUD[target_baud]);
+        return(NKC_BAUD[target_baud]);
+    }
+    else
+    {
+        return(-1);   
+    }     
+}
+
+int lcd_default_baud(int baud)
+{
+    int target_baud;
+    target_baud=lcd_baud_decode(baud);
+    if(target_baud < 0)
+    {
+        return(-1);   
+    }  
+    for(int i=1; i<=8; i++)
+    {
+        lcd.baud(NKC_BAUD[i]);
+        lcd.printf("\xFE\x61%1i",target_baud);
+
+        wait(2E-3);        
+    }
+    lcd.baud(NKC_BAUD[target_baud]);   
+    return(NKC_BAUD[target_baud]);       
+}
+
+void lcd_on()
+{
+    lcd.printf("\xFE\x41");
+    wait(2E-3); 
+}
+
+void lcd_off()
+{
+    lcd.printf("\xFE\x42");
+    wait(2E-3); 
+}
+
+void lcd_ddram_address(int address)
+{
+    lcd.printf("\xFE\x45%c",address);
+    wait(2E-3); 
+}
+
+int lcd_cursor(int row, int column)
+{
+    int row_offsets[4]={0x00, 0x40, 0x13, 0x53};
+    int address;
+    if( row < 0 || row > 3 || column < 0 || column > 19) {return(-1);}
+    address = row_offsets[row]+column;
+    lcd.printf("\xFE\x45%c",address);
+    wait(2E-3); 
+    return(address);
+}
+
+void lcd_home()
+{
+    lcd.printf("\xFE\x46");
+    wait(2E-3); 
+}
+
+void lcd_underline_on()
+{
+    lcd.printf("\xFE\x47");
+    wait(2E-3); 
+}
+
+void lcd_underline_off()
+{
+    lcd.printf("\xFE\x48");
+    wait(2E-3); 
+}
+
+int lcd_underline(int select)
+{
+    if(select)
+    {
+        lcd_underline_on();
+        return(true);
+    }
+    else
+    {
+        lcd_underline_off();
+        return(false);
+    }      
+}
+
+void lcd_backspace()
+{
+    lcd.printf("\xFE\x4E");
+    wait(2E-3); 
+}
+
+void lcd_clear()
+{
+    lcd.printf("\xFE\x51");
+    wait(2E-3);
+}
+
+void lcd_blink_on()
+{
+    lcd.printf("\xFE\x4B");
+    wait(2E-3); 
+}
+
+void lcd_blink_off()
+{
+    lcd.printf("\xFE\x4C");
+    wait(2E-3);
+}
+
+int lcd_blink(int select)
+{
+    if(select)
+    {
+        lcd_blink_on();
+        return(true);
+    }
+    else
+    {
+        lcd_blink_off();
+        return(false);
+    }      
+}
+
+void lcd_move_left()
+{
+    lcd.printf("\xFE\x49");
+    wait(2E-3); 
+}
+
+void lcd_move_right()
+{
+    lcd.printf("\xFE\x4A");
+    wait(2E-3); 
+}
+
+void lcd_shift_left()
+{
+    lcd.printf("\xFE\x55");
+    wait(2E-3);
+}
+
+void lcd_shift_right()
+{
+    lcd.printf("\xFE\x56");
+    wait(2E-3);
+}
+
+#endif //NKC_LCD_H
\ No newline at end of file