I have made a prototype PCB where I have connected a GLCD (KS0108) to this microcontroller PIC18F452.
The data lines of the Glcd are connected to PORT.D 0 to 7.
The control lines:
CS2 & D/I are connected to PORT.C 3 & 0
CS1 & Enable & R/W are connected to PORT.E 0 to 2
I have found on the forum that you could make another define in the C code, I have done that, and named it: MX_CONTROL_PORT2, MX_CONTROL_TRIS2
In the "GetDefines" I have altered all code where CS1, Enable, R/W from:
Code: Select all
void MX_Write_Command(char cmd, char chip)
{
if(chip == MX_CHIP1) //Select Chip 1
{
clear_bit(MX_CONTROL_PORT, MX_CS2);
set_bit(MX_CONTROL_PORT, MX_CS1);
}
else if(chip == MX_CHIP2) //Select Chip 2
{
clear_bit(MX_CONTROL_PORT, MX_CS1);
set_bit(MX_CONTROL_PORT, MX_CS2);Code: Select all
void MX_Write_Command(char cmd, char chip)
{
if(chip == MX_CHIP1) //Select Chip 1
{
clear_bit(MX_CONTROL_PORT, MX_CS2);
set_bit(MX_CONTROL_PORT2, MX_CS1);
}
else if(chip == MX_CHIP2) //Select Chip 2
{
clear_bit(MX_CONTROL_PORT2, MX_CS1);
set_bit(MX_CONTROL_PORT, MX_CS2);Code: Select all
clear_bit(MX_CONTROL_TRIS2, MX_ENABLE); //Convert control pins to output
clear_bit(MX_CONTROL_TRIS, MX_DAT_INST);
clear_bit(MX_CONTROL_TRIS2, MX_CS1);
clear_bit(MX_CONTROL_TRIS, MX_CS2);
clear_bit(MX_CONTROL_TRIS2, MX_READ_WRITE);
set_bit(MX_CONTROL_PORT2, MX_ENABLE);
clear_bit(MX_CONTROL_PORT2, MX_READ_WRITE); //Write Command
clear_bit(MX_CONTROL_PORT, MX_DAT_INST); //Instruction code
set_bit(MX_CONTROL_PORT2, MX_CS1); //Select Chip 1
clear_bit(MX_CONTROL_PORT, MX_CS2);
MX_Write_Command(MX_LCD_ON, MX_CHIP1); //Switch on LCD controller chips
MX_Write_Command(MX_LCD_ON, MX_CHIP2);
MX_Write_Command(MX_LCD_DISP_START, MX_CHIP1); //Configure the display start address
MX_Write_Command(MX_LCD_DISP_START, MX_CHIP2);
LCD_Clear();
MX_GotoXY(0,0);
Just if CS1 and CS2 are activated together. Thit I miss something can somebody look into this please,
Thanks you.
Regards Jordy
I have added the Getdefines file and LCD_Init File I dont know if i could help?