//autor JUAN ADRIAN OCHOA GALLEGOS
#define EN 4
#define RS 2
char dato=0;
char puertos[]={23,22,1,3,21,19,18,5,4,2};
char config[]={0x27,0x3c,0x0c,0x0F,0x01,0x06,0x02};
//char config2[]={0x01,0x01,0x01,0x0E};
char tiempos[]={15,5,1,1,1,1,1};
//mensj renglon sup
char mensaje1[]={"Ochoa Gallegos "}; //mensj long fija no mayor a 11bits
char mensaje2[]={"18052122 :) &"}; //long.variable
void setup(){
for (char k=0; k<= 9; k++){
pinMode(puertos[k], OUTPUT);
}
digitalWrite(EN,LOW);
}
void display(unsigned char asci){
char i,j,m ;
m=7;
for(i=0;i<=7;i++){
j= pow(2,m);
digitalWrite(puertos[i], (asci & j));
m--;
}
}
void loop(){
char n;
//------------------------------------------------------
//configuración del LCD
digitalWrite(RS,LOW);
for(n=0; n<=7; n++){
delay(tiempos[n]);
digitalWrite(EN, HIGH);
display (config[n]);
digitalWrite(EN, LOW);
delay(10);
}
//cambiar al moodo de datos rsen high, y enviamos mnsje 1
digitalWrite(RS, HIGH);
for(n=0;n<=16; n++){
digitalWrite(EN,HIGH);
display(mensaje1[n]);
digitalWrite(EN,LOW);
delay(350);
}
delay(1000);
/*
hacer que el cursor parpadee
*/
//_-------------------------------------------------------
//POSICIONAR EL AC EN EL 2DO RENGLON
digitalWrite(RS, LOW);
digitalWrite(EN, HIGH);
display(0xc0);
digitalWrite(EN, LOW);
delay(10);
digitalWrite(EN, HIGH);
delay(1);
//-------------------------------------------------------------
//enviar el mensaje 2
digitalWrite(RS, HIGH);
char k=0;
while(1){
unsigned char caracter= mensaje2[k];
if(caracter != 38){
digitalWrite(EN, HIGH);
display(mensaje2[k]);
digitalWrite(EN, LOW);
delay(10);
k++;
}
else {break;}
}
//_---------------------------------------------------------
while(1);
//borrar todo y reposicionar cursor en el primer renglon
//enviar
delay(5000);
}