Post on 13-Jul-2016
description
#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);
}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);
}