archivo lcd

Upload: gonzalo-diez-mata

Post on 17-Jan-2016

217 views

Category:

Documents


0 download

DESCRIPTION

lcd micro pic

TRANSCRIPT

  • 7/18/2019 Archivo Lcd

    1/2

    #include #include #include #include "lcd.h"#include #define _XTAL_FREQ 4000000 // necesario para macros __delay_ms()#define __delay_us(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000000.0)))#define __delay_ms(x) _delay((unsigned long)((x)*(_XTAL_FREQ/4000.0)))

    typedef unsigned char uint8_t;

    void lcd_init(){ DispE = 0; DispRS = 0; __delay_ms(30);

    lcd_send_cmd(0x03); lcd_send_cmd(0x03); lcd_send_cmd(0x03);

    lcd_send_cmd(0x02);

    lcd_send_cmd(LCD_FN_SET); lcd_send_cmd(LCD_DISPOFF); lcd_send_cmd(LCD_CLR); lcd_send_cmd(LCD_DISPON);}

    void pulseEnable(){ DispE = 0; __delay_us(1); DispE = 1; __delay_us(1); DispE = 0;

    __delay_us(100);}

    void lcd_send_dat(unsigned char c){ DispE = 0; DispRS = 1; //1 per mandare dati LCD_DAT_PORT = c >> 4; //upper

    pulseEnable(); __delay_us(200); //5ms per comandi, 200us per dati LCD_DAT_PORT = c;//( c & 0x0F ); //lower pulseEnable();

    __delay_us(200);}

    void lcd_send_cmd(unsigned char c){ DispE = 0; DispRS = 0; //0 per mandare comandi LCD_DAT_PORT = c >> 4; //upper pulseEnable(); __delay_ms(5); //5ms per comandi, 200us per dati

  • 7/18/2019 Archivo Lcd

    2/2

    LCD_DAT_PORT = c;//( c & 0x0F ); //lower pulseEnable(); __delay_ms(5);}

    void writeString(const char *msg){ while(*msg!='\0') lcd_send_dat(*msg++);}