new logo iset57-black
Carrera de Técnicas Digitales en Rosario - Tel. (0341) 4720470


/* 
* File:   lcd.h
* Author: Javier Rambaldo
* ISET 57
*
* Created on 4 de octubre de 2017, 21:11
* 
* Rutina para usar el display LCD con 4 bits de datos.
* Para LCD tipos 1602 o 1604
* * Para compilador MPLAB-X / XC8
* * Usar asi:
#define _XTAL_FREQ 4000000 #define RS RB0 #define EN RB1 #define D4 RB2 #define D5 RB3 #define D6 RB4 #define D7 RB5 #include "lcd.h"
main(){ Lcd_Init(); Lcd_Clear(); Lcd_Set_Cursor(1,1); Lcd_Write_String("ISET57 2015");
} */
void Lcd_Port(char a) { D4 = (a & 1) ? 1 : 0; D5 = (a & 2) ? 1 : 0; D6 = (a & 4) ? 1 : 0; D7 = (a & 8) ? 1 : 0; }
void Lcd_Cmd(char a) { RS = 0; Lcd_Port(a); EN = 1; // LCD Enable __delay_ms(4); EN = 0; // LCD Disable }
void Lcd_Cmd_4bit(char a) { Lcd_Cmd(a >> 4); Lcd_Cmd(a & 0x0F); }
void Lcd_Clear() { Lcd_Cmd_4bit(1); }
void Lcd_Set_Cursor(char fila, char col) { col--; switch (fila) { case 1: col += 0x80; break; case 2: col += 0xC0; break; case 3: col += 0x94; break; case 4: col += 0xD4; break; } Lcd_Cmd_4bit(col); }
void Lcd_Init() { Lcd_Port(0x00); __delay_ms(20); Lcd_Cmd(0x03); __delay_ms(5); Lcd_Cmd(0x03); __delay_ms(11); Lcd_Cmd_4bit(0x32); Lcd_Cmd_4bit(0x28); Lcd_Cmd_4bit(0x0C); Lcd_Cmd_4bit(0x06); Lcd_Cmd_4bit(0x01); //CLEAR }
void Lcd_Write_Char(char a) { char L, H; L = a & 0x0F; H = a & 0xF0; RS = 1; // D4 to D7 interpreted as DATA Lcd_Port(H >> 4); //Data transfer EN = 1; __delay_us(40); EN = 0; Lcd_Port(L); EN = 1; __delay_us(40); EN = 0; }
void Lcd_Write_String(char *a) { while(*a) Lcd_Write_Char(*a++); }
void Lcd_Shift_Right() { Lcd_Cmd_4bit(0x1C); }
void Lcd_Shift_Left() { Lcd_Cmd_4bit(0x18); }