Rich (BB code):
/*-------------------------- BEGIN ----------------------------*/
#include<pic.h>
__CONFIG(0x3F39);
#define _XTAL_FREQ 4000000
#define RS RB2
#define EN RB1
#define databits PORTD
/*----------------PORT SETTINGS-------------------*/
void pic_init()
{
TRISB2=0;
TRISB1=0;
TRISD=0;
}
/*-----------------LCD FUNCTIONS ----------------------*/
void LCD_STROBE(void)
{
EN = 1;
__delay_us(0.5);
EN = 0;
}
void data(unsigned char c)
{
RS=1;
__delay_us(40);
databits = ( c >> 4 );
LCD_STROBE();
databits = ( c );
LCD_STROBE();
}
void cmd(unsigned char c)
{
RS=0;
__delay_us(40);
databits = ( c >> 4 );
LCD_STROBE();
databits = ( c );
LCD_STROBE();
}
void clear(void)
{
cmd(0x01);
__delay_ms(2);
}
void lcd_init()
{
__delay_ms(20);
cmd(0x30 );
__delay_ms(1);
cmd(0x30 );
__delay_ms(1);
cmd(0x30 );
cmd(0x28 ); // Function set (4-bit interface, 2 lines, 5*7Pixels)
cmd(0x0c); // Make cursorinvisible
clear(); // Clear screen
cmd(0x6); // Set entry Mode(auto increment of cursor)
}
void string(const char *q)
{
while(*q) {data(*q++);}
}
/*------------------MAIN FUNCTION-----------------------*/
main()
{
__delay_ms(50);
pic_init();
lcd_init();
while(1)
{
cmd(0x80);
string("Hello World");
cmd(0xc0);
string("My 16x2 LCD");
while(1);
}
}
/*---------------- END --------------------------*/
Can you explain to me how actually this code function to activate the lcd?I dont really clear what is the cmd() use for?cmd is an operator?what is the databits=(c>>4)?
Last edited: