From e6bffe23c87a9f6de8abdec747600f674b9cab62 Mon Sep 17 00:00:00 2001 From: William Harrington Date: Sat, 27 Jul 2019 22:16:27 -0500 Subject: Copy project files into repo --- lcd.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100755 lcd.c (limited to 'lcd.c') diff --git a/lcd.c b/lcd.c new file mode 100755 index 0000000..b6d0ece --- /dev/null +++ b/lcd.c @@ -0,0 +1,110 @@ +#include "lcd.h" +#include "conf.h" + +//LCD Functions Developed by electroSome + +void Lcd_Port(char a) { + if (a & 1) + D4 = 1; + else + D4 = 0; + + if (a & 2) + D5 = 1; + else + D5 = 0; + + if (a & 4) + D6 = 1; + else + D6 = 0; + + if (a & 8) + D7 = 1; + else + D7 = 0; +} + +void Lcd_Cmd(char a) { + RS = 0; // => RS = 0 + Lcd_Port(a); + EN = 1; // => E = 1 + __delay_ms(4); + EN = 0; // => E = 0 +} + +void Lcd_Clear() { + Lcd_Cmd(0); + Lcd_Cmd(1); +} + +void Lcd_Set_Cursor(char a, char b) { + char temp, z, y; + if (a == 1) { + temp = 0x80 + b - 1; + z = temp >> 4; + y = temp & 0x0F; + Lcd_Cmd(z); + Lcd_Cmd(y); + } else if (a == 2) { + temp = 0xC0 + b - 1; + z = temp >> 4; + y = temp & 0x0F; + Lcd_Cmd(z); + Lcd_Cmd(y); + } +} + +void Lcd_Init() { + Lcd_Port(0x00); + __delay_ms(20); + Lcd_Cmd(0x03); + __delay_ms(5); + Lcd_Cmd(0x03); + __delay_ms(11); + Lcd_Cmd(0x03); + ///////////////////////////////////////////////////// + Lcd_Cmd(0x02); + Lcd_Cmd(0x02); + Lcd_Cmd(0x08); + Lcd_Cmd(0x00); + Lcd_Cmd(0x0C); + Lcd_Cmd(0x00); + Lcd_Cmd(0x06); +} + +void Lcd_Write_Char(char a) { + char temp, y; + temp = a & 0x0F; + y = a & 0xF0; + RS = 1; // => RS = 1 + Lcd_Port(y >> 4); //Data transfer + EN = 1; + __delay_us(40); + EN = 0; + Lcd_Port(temp); + EN = 1; + __delay_us(40); + EN = 0; +} + +void Lcd_Write_String(char *a) { + int i; + for (i = 0; a[i] != '\0'; i++) + Lcd_Write_Char(a[i]); +} + +void Lcd_Shift_Right() { + Lcd_Cmd(0x01); + Lcd_Cmd(0x0C); +} + +void Lcd_Shift_Left() { + Lcd_Cmd(0x01); + Lcd_Cmd(0x08); +} + +// For some VFD's like Noritake +void Vfd_Set_Brightness(int level) { + +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf