Lcd

3
#include "mylcd.h" void init_mylcd(void) { DDRC=0x0f; DDRD=0XFF; //clear display function PORTC=0X00; PORTD=0X01; PORTC=0X01; _delay_ms(20); //set function PORTC=0X00; PORTD=0b00111100; PORTC=0X01; _delay_ms(20); // display on/off PORTC=0X00; PORTD=0X0c; PORTC=0X01; _delay_ms(20); //entry mode set PORTC=0X00; PORTD=0X06; PORTC=0X01; PORTC=0X00; _delay_ms(20); } void write_mylcd(uint8_t var) { PORTC=0X04; PORTD=var; PORTC=0X05; PORTC=0X04; _delay_ms(20); } void sentence_mylcd(char*arreglo) { for(int x=0;arreglo[x]!='\0';x++) { write_mylcd(arreglo[x]); } } void gotoxy_mylcd(uint8_t x, uint8_t y) { PORTC=0X00; PORTD=0X03; PORTC=0X01; PORTC=0X00; _delay_ms(20);

description

programa lcd

Transcript of Lcd

Page 1: Lcd

#include "mylcd.h"

void init_mylcd(void){

DDRC=0x0f;DDRD=0XFF;

//clear display functionPORTC=0X00;PORTD=0X01;PORTC=0X01;_delay_ms(20);//set functionPORTC=0X00;PORTD=0b00111100;PORTC=0X01;_delay_ms(20);// display on/offPORTC=0X00;PORTD=0X0c;PORTC=0X01;_delay_ms(20);//entry mode setPORTC=0X00;PORTD=0X06;PORTC=0X01;PORTC=0X00;_delay_ms(20);

}void write_mylcd(uint8_t var){

PORTC=0X04;PORTD=var;PORTC=0X05;PORTC=0X04;_delay_ms(20);

}void sentence_mylcd(char*arreglo){

for(int x=0;arreglo[x]!='\0';x++){

write_mylcd(arreglo[x]);}

}void gotoxy_mylcd(uint8_t x, uint8_t y){

PORTC=0X00;PORTD=0X03;PORTC=0X01;PORTC=0X00;_delay_ms(20);

if (x==1){

PORTC=0X00;PORTD=0X80;PORTC=0X01;PORTC=0X00;_delay_ms(20);

Page 2: Lcd

}else {

PORTC=0x00;PORTD=0xc0;PORTC=0x01;PORTC=0x00;_delay_ms(20);

}

for (int k=1; k<y; k++){

PORTC=0X00;PORTD=0X14;PORTC=0X01;PORTC=0X00;_delay_ms(20);

}}

void clear_mylcd(void){

PORTC=0X00;PORTD=0X01;PORTC=0X01;PORTC=0X00;_delay_ms(20);

}

void write_var(uint8_t dato){

uint8_t decenas, unidades;decenas= dato/10;decenas=0x30+decenas;if (decenas!=0x30)

write_mylcd(decenas);unidades=dato-(dato/10)*10;unidades=0x30+unidades;write_mylcd(unidades);

}