⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ra8803.c

📁 320*240液晶,Ra8803芯片控制程序,keil8.09编译.
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********************Filename:RA8803.c**********************************************************/
#include <RA8803.h>

//==============================================================================
//Subroutine:   Delay_1ms       ****    Function:
//==============================================================================
void Delay_1ms(uchar  tm) small
{
uchar i;
    while(tm){
        for(i=0;i<250;i++){_nop_();}
        tm--;
    }
}
//==============================================================================
//Subroutine:   LCD_Reset       ****    Function:
//==============================================================================
void LCD_Reset(void)
{
    bRST = 0;
    Delay_1ms(250);
    Delay_1ms(250);
    bRST = 1;
    Delay_1ms(100);
}
//==============================================================================
//Subroutine:   LCD_ChkBusy     ****    Function:
//==============================================================================
void LCD_ChkBusy(void)
{
//  uchar temp;

//  do
//  {
//      temp = LCD_CmdRead(ISR);
//  }while(temp & cTestb7);
}
//==============================================================================
//Subroutine:   LCD_CmdWrite    ****    Function:
//==============================================================================
void LCD_CmdWrite(uchar Addr, uchar Data)
{
    LCD_ChkBusy();

    bCSZ = 0;
    bRS = 0;
    _nop_();
    Lcd_Reg = Addr;      //Reg Addr
    Lcd_Reg = Data;     //Reg Data
    bCSZ = 1;
    Lcd_Reg=255;
}

//==============================================================================
//Subroutine:   CmdRead
//Function:
//==============================================================================
uchar LCD_CmdRead(uchar Addr)
{
uchar Data;

    bCSZ    = 0;
    bRS = 0;
    Lcd_Reg = Addr;     //Reg Addr
    _nop_();
    Data    = Lcd_Reg;  //Reg Data
    bCSZ = 1;
    return Data;
    Lcd_Reg=255;
}
//==============================================================================
//Subroutine:   LCD_DataWrite
//Function:
//==============================================================================
void LCD_DataWrite(uchar Data)
{
    LCD_ChkBusy();
    bRS = 1;
    bCSZ    = 0;
    _nop_();
    Lcd_Data= Data;
    _nop_();
    bCSZ    = 1;
}
//==============================================================================
//Subroutine:   LCD_DataRead
//Function:
//==============================================================================
uchar LCD_DataRead(void)
{
uchar Data;
    LCD_ChkBusy();
    bCSZ = 0;
    bRS = 1;
    _nop_();
    Data = Lcd_Data;
    bCSZ = 1;
    Lcd_Data=255;
    return Data;
}


//==============================================================================
//Subroutine:   LCD_Initial
//Function:
//==============================================================================
void LCD_Initial(void)
{
    LCD_CmdWrite(WLCR, 0xc5);       //B1100_0101    Normal Power
    LCD_CmdWrite(MISC, 0x02);       //B0000_0010    8Mhz
    LCD_CmdWrite(APSR, 0x20);       //B0010_0010
    LCD_CmdWrite(WCCR, 0x6f);       //B0110_1011
    LCD_CmdWrite(AWRR, cAWRR);
    LCD_CmdWrite(AWBR, cAWBR);
    LCD_CmdWrite(AWLR, 0x00);       //B0000_0000
    LCD_CmdWrite(AWTR, 0x00);       //B0000_0000
    LCD_CmdWrite(DWRR, cDWRR);
    LCD_CmdWrite(DWBR, cDWBR);
    LCD_CmdWrite(DWLR, 0x00);       //B0000_0000
    LCD_CmdWrite(DWTR, 0x00);       //B0000_0000
    LCD_CmdWrite(SCCR, 0x07);       //B0000_0111    Frame Rate
    LCD_CmdWrite(INTR, 0x00);       //B0000_0000
    LCD_CmdWrite(TPCR, 0xc0);       //B1100_0000
    LCD_CmdWrite(TPSR, 0x35);       //B0011_0101
    LCD_CmdWrite(PNTR, 0x00);       //B0000_0000    Fill Data=00
    LCD_CmdWrite(LCCR, 0x80);       //B1000_0000    DAC Off
    LCD_CmdWrite(FNCR, cFNCR);      //              GB Code or BIG5 Code
    _nop_();
}

//==============================================================================
//Subroutine:   LCD_On
//Function:
//==============================================================================
void LCD_ON(void)
{
uchar temp;
    temp = LCD_CmdRead(WLCR);
    temp |= 0x04;               //cSetb2;
    LCD_CmdWrite(WLCR, temp);
}
void LCD_OFF(void)
{
uchar temp;
    temp = LCD_CmdRead(WLCR);
    temp &= 0xfb;               //cClrb2;
    LCD_CmdWrite(WLCR, temp);
}

//==============================================================================
//Subroutine:   LCD_GotoXY
//Function:     LCD Cursor X-Y
//==============================================================================
void LCD_GotoXY(uchar x, uchar y)
{
    LCD_CmdWrite(CPXR, (x & 0x3f));
    LCD_CmdWrite(CPYR,  y        );
}

//==============================================================================
//Subroutine:   LCD_Graphic
//Function:
//==============================================================================
void LCD_Graphic(void)
{
uchar temp;
    temp = LCD_CmdRead(WLCR);
    temp &= 0xf7;               //cClrb3;
    LCD_CmdWrite(WLCR, temp);
}
void LCD_Text(void)
{
uchar temp;
    temp = LCD_CmdRead(WLCR);
    temp |=0x08;                //cSetb3;
    LCD_CmdWrite(WLCR, temp);
}
//==============================================================================
//Subroutine:   Bold
//Function:
//==============================================================================
void LCD_Bold(void)
{
uchar temp;
    temp = LCD_CmdRead(WCCR);
    temp |= 0x10;               //cSetb4;
    LCD_CmdWrite(WCCR, temp);
}

void LCD_NoBold(void)
{
uchar temp;
    temp = LCD_CmdRead(WCCR);
    temp &= 0xef;               //cClrb4;
    LCD_CmdWrite(WCCR, temp);
}

//==============================================================================
//Subroutine:   Inv
//Function:
//==============================================================================
void LCD_Inv(void)
{
uchar temp;
    temp = LCD_CmdRead(WCCR);
    temp &= 0xdf;               //cClrb5;
    LCD_CmdWrite(WCCR, temp);
}
void LCD_NoInv(void)
{
uchar temp;
    temp = LCD_CmdRead(WCCR);
    temp |= 0x20;               //cSetb5;
    LCD_CmdWrite(WCCR, temp);
}

//==============================================================================
//Subroutine:   GInv
//Function:
//==============================================================================
void LCD_GInv(void)
{
uchar temp;
    temp = LCD_CmdRead(WLCR);
    temp &= 0xfe;               //cClrb0;
    LCD_CmdWrite(WLCR, temp);
}
void LCD_NoGInv(void)
{
uchar temp;
    temp = LCD_CmdRead(WLCR);
    temp |= 0x01;               //cSetb0;
    LCD_CmdWrite(WLCR, temp);
}

//==============================================================================
//Subroutine:   Blk  &  Blk Timer
//Function:
//==============================================================================
void LCD_Blk(void)
{
uchar temp;
    temp = LCD_CmdRead(WLCR);
    temp |= 0x02;               //cSetb1;
    LCD_CmdWrite(WLCR, temp);
}
void LCD_NoBlk(void)
{
uchar temp;
    temp = LCD_CmdRead(WLCR);
    temp &= 0xfd;               //cClrb1;
    LCD_CmdWrite(WLCR, temp);
}
void LCD_BlkTim(uchar buf)
{
uchar temp;
    temp = LCD_CmdRead(BTMR);
    temp |= buf;
    LCD_CmdWrite(BTMR, temp);
}

//==============================================================================
//Subroutine:   Cursor On
//Function:
//==============================================================================
void LCD_Cur(void)
{
uchar temp;
    temp = LCD_CmdRead(WCCR);
    temp |= 0x04;               //cSetb2;
    LCD_CmdWrite(WCCR, temp);
}
void LCD_NoCur(void)
{
uchar temp;
    temp = LCD_CmdRead(WCCR);
    temp &= 0xfb;               //cClrb2;
    LCD_CmdWrite(WCCR, temp);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -