multiple public definition error

i am getting multiple public definition error. can anyone help me with this.

 

driver.c

#include<reg51.h>
#include"header.h"
sbit RS=P0^4;
sbit RW=P0^5;
sbit E=P0^6;
void lcd_cmd(u8 cmd)
{
P0=cmd;
RS=0;
RW=0;
E=SET;
delay_ms(2);
E=CLEAR;
}
void lcd_data(u8 ch)
{
P0=ch;
RS=1;
RW=0;
E=SET;
delay_ms(2);
E=CLEAR;
}
void lcd_init()
{
lcd_cmd(0x2);
lcd_cmd(0x38);
lcd_cmd(0xE);
lcd_cmd(0x6);
lcd_cmd(0x1);
}

main.c

#include"header.h"
void main()
{
lcd_init();
lcd_data('A');
while(1);
}

header.h

#define PORT0 0
#define PORT1 1
#define PORT2 2
#define PORT3 3
#define SET 1
#define CLEAR 0
typedef unsigned char u8;
typedef signed char s8;
typedef unsigned int u16;
typedef signed int s16;
typedef unsigned long int u32;
typedef signed long int s32;
void io_write(u8 PORT,u8 PIN,u8 val);
u8 io_read(u8 PORT,u8 pin);
void delay_ms(int d);
void lcd_cmd(u8 cmd);
void lcd_data(u8 ch);
void lcd_init();

More questions in this forum