lcd.c

Go to the documentation of this file.
00001 
00015 #include "lcd.h"
00016 #include <string.h>
00017 
00018 
00024 void lcd_command(int comando)     //executa comando.
00025 {
00026           FIO4CLR = lcd_rs;
00027           FIO3CLR = lcd_dados;//LIMPA OS DADOS
00028           FIO3SET = comando;
00029           FIO4SET = lcd_en;     //COLOC O ENABLE EM 1
00030           //espera_1ms(1);   //AGUARDA UM SEGUNDO.
00031           delay_1us(1);
00032           FIO4CLR = lcd_en;     //LIMPA O ENABLE. EN =0;
00033           //espera_1ms(1);       //AGUARDA UM SEGUNDO
00034           delay_1us(1);
00035 }
00036 
00042 void lcd_putc(int dado)
00043 {
00044           FIO4SET = lcd_rs;
00045           FIO3CLR = lcd_dados;//LIMPA OS DADOS
00046           FIO3SET = dado;
00047           FIO4SET = lcd_en;
00048           //espera_1ms(1);   //AGUARDA UM SEGUNDO.
00049           delay_1us(1);
00050           FIO4CLR = lcd_en;
00051           //espera_1ms(1);       //AGUARDA UM SEGUNDO
00052           delay_1us(1);
00053 }
00054 
00059 void lcd_clr(void)
00060 {
00061         lcd_command(0x01);
00062 }
00063 
00069 void lcd_string(char *str)
00070 {
00071         while(*str) lcd_putc(*str++);
00072 }
00073 
00074 
00075 void lcd_string_old(char *str)
00076 {
00077         //while(*str) lcd_putc(*str++);
00078         int qtd, i=0;
00079 
00080         qtd = strlen(str);
00081         for(i=0;i<qtd;i++)
00082         {
00083            lcd_putc(str[i]);
00084         }
00085 
00086 }
00087 
00094 void lcd_goto(int linha, int coluna)
00095 {
00096         //0x80 a 0x8f - para acessar a primeira linhas e as colunas de 0 a f.
00097         //0xC0 a 0xcf - para acessar a segunda linhae as colunas de 0 a f.
00098         if(linha <=1) lcd_command(0x80 + coluna);
00099         else lcd_command(0XC0 + coluna);
00100 }
00101 
00105 void init_lcd(void)
00106 {
00107         FIO4DIR = lcd_en + lcd_rs + lcd_rw;     //DIR -> TODOS OS BITS EM UM, SIGNIFICA A PORTA ONDE VAI ESTAR MEXENDO;
00108         FIO3DIR = lcd_dados;
00109     FIO4CLR = lcd_en + lcd_rw; //configura inicializa os comandos em zero
00110     delay_1us(1);
00111 
00112         lcd_command(0x38);
00113         lcd_command(0x0e);
00114         lcd_command(0x06);
00115         lcd_command(0x01);
00116 }
00117 
00118 
00119 
00120