This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

P89V664 Serial Graphical LCD Problem

Hello

I have confused in the coding of the Serial Graphical LCD on NXP P89V664.

Can any one help ????

the code is

#include<reg52.H>
#include<stdio.h>
#include<intrins.h>

// #define unsigned char unsigned char // 0~255
// #define unsigned int unsigned int   // 0~65535

sbit _CS = P2^3;
sbit _RST = P2^2;
sbit A0 = P2^1;
sbit SCK = P4^0;
sbit DIN = P4^2;

unsigned char ContrastLevel;     // for contrast setting level

//-----------------------------------
// dispaly data (128x64)
//-----------------------------------

unsigned char code Logo[]={

....0x15,0x06,0x00,0x00,0x10,0x1F,0x10,0x00,0x00,0x12,0x15,0x15,0x15,0x88,0xC0
};

//-----------------------------------
// Delay Routine
//-----------------------------------

void delayms(unsigned int m)        // 12MHz Xtal, close to ms value
{
    unsigned int j;
    unsigned int i;

    for(i=0; i<m; i++)
        for(j=0; j<109; j++)
            _nop_();
}

//-----------------------------------
// IO Routine
//-----------------------------------

void lcd_cmd(unsigned char Command)       //send command
{
    SCK = 1;
    A0  = 0;
    _CS = 0;
    DIN = Command & 0x80; SCK= 0; SCK= 1;
    DIN = Command & 0x40; SCK= 0; SCK= 1;
    DIN = Command & 0x20; SCK= 0; SCK= 1;
    DIN = Command & 0x10; SCK= 0; SCK= 1;
    DIN = Command & 0x08; SCK= 0; SCK= 1;
    DIN = Command & 0x04; SCK= 0; SCK= 1;
    DIN = Command & 0x02; SCK= 0; SCK= 1;
    DIN = Command & 0x01; SCK= 0; SCK= 1;
    _CS = 1;
}

void lcd_data(unsigned char DData)        //send data
{
    SCK= 1;
    A0  = 1;
    _CS = 0;
    DIN = DData & 0x80; SCK= 0; SCK= 1;
    DIN = DData & 0x40; SCK= 0; SCK= 1;
    DIN = DData & 0x20; SCK= 0; SCK= 1;
    DIN = DData & 0x10; SCK= 0; SCK= 1;
    DIN = DData & 0x08; SCK= 0; SCK= 1;
    DIN = DData & 0x04; SCK= 0; SCK= 1;
    DIN = DData & 0x02; SCK= 0; SCK= 1;
    DIN = DData & 0x01; SCK= 0; SCK= 1;
    _CS = 1;
}

//-----------------------------------
// Write a Screen
//-----------------------------------
void WriteScreen(unsigned char *DisplayData)    // DisplayData should be 164x64/8 = 1312byte
{
    unsigned char TempData;
    unsigned char i, j;
    for(i=0;i<8;i++)
        {
        lcd_cmd(0xb0 | i);    // select page 0~7
        lcd_cmd(0x10);        // start form column 4
        lcd_cmd(0x00);        // (2byte command)
        for(j=0;j<128;j++)
                {
            TempData=(*(DisplayData+(i*128)+j));
            lcd_data(TempData);
            }
        }
}

//-----------------------------------
// Contrast control
//-----------------------------------
void LCD_Darker(void)
{
    if (ContrastLevel<0x3F)
        {
        ContrastLevel++;
        }
    lcd_cmd(0x81);            // E-Vol setting
    lcd_cmd(ContrastLevel);   // (2byte command)
}



void LCD_Lighter(void)
{
    if (ContrastLevel>0x00)
        {
         ContrastLevel--;
        }
    lcd_cmd(0x81);            // E-Vol setting
    lcd_cmd(ContrastLevel);   // (2byte command)
}


//-----------------------------------
// Init LCD module
//-----------------------------------
void initLCDM(void)
{
    _RST=1;                 // hardware reset LCD module
    _RST=0;
    delayms(1);
    _RST=1;
    delayms(800);

    ContrastLevel=0x17;     // default Contrast Level  1a
    lcd_cmd(0xab);                      //new
    lcd_cmd(0xaf);            // display on
    lcd_cmd(0x40);            // display start line=0
    lcd_cmd(0xc8);            // Common output mode select= reverse
    lcd_cmd(0xa6);            // normal display
    lcd_cmd(0xa4);            // Duisplay all point = off
    lcd_cmd(0xa3);            // LCD bias = 1/9   a2
    lcd_cmd(0x2f);            // Power control = all on
    lcd_cmd(0x25);            // Rab Ratio     26
    lcd_cmd(0x81);            // E-Vol setting
    lcd_cmd(ContrastLevel);   // (2byte command)
}

//-----------------------------------
// Main Program
//-----------------------------------
void main()
{
    SP=0x60;
    EA = 0;         // disable interrupts

    _CS    =1;
    _RST   =1;
    A0     =1;
    SCK   =1;
    DIN    =1;

    initLCDM();
    WriteScreen(Logo);
    while(1)
    {
    }
}
//end of program


The error it shoes that P4 is an undefined identifier. error C202

Parents
  • The same thing gives the error for the solution given by you, it is already done by me,...

    Build target 'Target 1'
    assembling STARTUP.A51...
    compiling test.glcd.c...
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(13): error C231: 'P0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(24): error C231: 'SP': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(25): error C231: 'DPL': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(26): error C231: 'DPH': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(28): error C231: 'PCON': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(30): error C231: 'TCON': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(32): error C231: 'TF1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(33): error C231: 'TR1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(34): error C231: 'TF0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(35): error C231: 'TR0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(37): error C231: 'IT1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(39): error C231: 'IT0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(41): error C231: 'TMOD': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(43): error C231: 'TL0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(45): error C231: 'TL1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(47): error C231: 'TH0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(49): error C231: 'TH1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(51): error C231: 'P1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(59): error C231: 'T2EX': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(60): error C231: 'T2': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(65): error C231: 'SM0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(67): error C231: 'SM1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(68): error C231: 'SM2': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(69): error C231: 'REN': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(70): error C231: 'TB8': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(71): error C231: 'RB8': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(72): error C231: 'TI': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(73): error C231: 'RI': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(86): error C231: 'P2': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(99): error C231: 'EA': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(103): error C231: 'ET1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(104): error C231: 'EX1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(105): error C231: 'ET0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(106): error C231: 'EX0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(110): error C231: 'ET2': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(115): error C231: 'P3': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(117): error C231: 'RD': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(118): error C231: 'WR': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(119): error C231: 'T1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(120): error C231: 'T0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(121): error C231: 'INT1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(122): error C231: 'INT0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(123): error C231: 'TXD': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(124): error C231: 'RXD': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(127): error C231: 'IP': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(133): error C231: 'PT2': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(137): error C231: 'PT1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(138): error C231: 'PX1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(139): error C231: 'PT0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(140): error C231: 'PX0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(142): error C231: 'T2CON': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(165): error C231: 'RS0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(166): error C231: 'OV': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(168): error C231: 'P': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(171): error C231: 'ACC': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(172): error C231: 'B': redefinition
    TEST.GLCD.C(8): error C231: 'P4': redefinition
    TEST.GLCD.C(12): error C146: 'P4': invalid base address
    TEST.GLCD.C(13): error C146: 'P4': invalid base address
    TEST.GLCD.C(109): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(112): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(112): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(112): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(113): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(113): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(113): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(114): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(114): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(114): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(115): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(115): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(115): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(116): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(128): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(128): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(128): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(129): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(129): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(129): error C202: 'SCK': undefined identifier
    Target not created
    

Reply
  • The same thing gives the error for the solution given by you, it is already done by me,...

    Build target 'Target 1'
    assembling STARTUP.A51...
    compiling test.glcd.c...
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(13): error C231: 'P0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(24): error C231: 'SP': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(25): error C231: 'DPL': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(26): error C231: 'DPH': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(28): error C231: 'PCON': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(30): error C231: 'TCON': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(32): error C231: 'TF1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(33): error C231: 'TR1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(34): error C231: 'TF0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(35): error C231: 'TR0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(37): error C231: 'IT1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(39): error C231: 'IT0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(41): error C231: 'TMOD': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(43): error C231: 'TL0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(45): error C231: 'TL1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(47): error C231: 'TH0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(49): error C231: 'TH1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(51): error C231: 'P1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(59): error C231: 'T2EX': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(60): error C231: 'T2': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(65): error C231: 'SM0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(67): error C231: 'SM1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(68): error C231: 'SM2': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(69): error C231: 'REN': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(70): error C231: 'TB8': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(71): error C231: 'RB8': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(72): error C231: 'TI': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(73): error C231: 'RI': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(86): error C231: 'P2': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(99): error C231: 'EA': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(103): error C231: 'ET1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(104): error C231: 'EX1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(105): error C231: 'ET0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(106): error C231: 'EX0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(110): error C231: 'ET2': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(115): error C231: 'P3': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(117): error C231: 'RD': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(118): error C231: 'WR': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(119): error C231: 'T1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(120): error C231: 'T0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(121): error C231: 'INT1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(122): error C231: 'INT0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(123): error C231: 'TXD': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(124): error C231: 'RXD': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(127): error C231: 'IP': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(133): error C231: 'PT2': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(137): error C231: 'PT1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(138): error C231: 'PX1': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(139): error C231: 'PT0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(140): error C231: 'PX0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(142): error C231: 'T2CON': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(165): error C231: 'RS0': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(166): error C231: 'OV': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(168): error C231: 'P': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(171): error C231: 'ACC': redefinition
    C:\KEIL\C51\INC\PHILIPS\P89V66X.H(172): error C231: 'B': redefinition
    TEST.GLCD.C(8): error C231: 'P4': redefinition
    TEST.GLCD.C(12): error C146: 'P4': invalid base address
    TEST.GLCD.C(13): error C146: 'P4': invalid base address
    TEST.GLCD.C(109): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(112): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(112): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(112): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(113): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(113): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(113): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(114): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(114): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(114): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(115): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(115): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(115): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(116): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(128): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(128): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(128): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(129): error C202: 'DIN': undefined identifier
    TEST.GLCD.C(129): error C202: 'SCK': undefined identifier
    TEST.GLCD.C(129): error C202: 'SCK': undefined identifier
    Target not created
    

Children