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

📄 lcm_upd161704.c.svn-base

📁 多个厂家的LCD 驱动程序
💻 SVN-BASE
字号:
#include "../../INCLUDE/API.h"
#include "lcm.h"
#include "mp321app.h"
//#include "../LCD/Include/utillcd.h"

//=================================================
//This file is for TOSHIBA --LTM020A PANEL MODULE (uPD161704)
//
//=================================================

#if (defined(_PRIMARY_LCM_uPD161704) || defined(_SECONDARY_LCM_uPD161704))

void uPD161704_LCM_Init(U8 bTargetLCM)
{
    MP321_Release(bTargetLCM);
    uPD161704_LCM_PowerOn();
    uPD161704_LCM_DisplayOn();
}

void uPD161704_LCM_PowerOn(void)
{
    MC_LCM_RESET_H;
    __TIMER_DELAY(50);
    MC_LCM_RESET_L;
    __TIMER_DELAY(80);
    MC_LCM_RESET_H;
    __TIMER_DELAY(50);

    LCM_WriteCmd(0x03, 0x0001);            // SW Reset
    LCM_WriteCmd(0x3A, 0x0001);            // OSCON
    // Mode setting
    LCM_WriteCmd(0x32, 0x0002);            //
    LCM_WriteCmd(0x33, 0x0001);            // NLINE = 2
    LCM_WriteCmd(0x37, 0x0000);            //
    LCM_WriteCmd(0x77, 0x0FFF);            //
    LCM_WriteCmd(0x72, 0x0001);            //
    // DC/DC setting
    LCM_WriteCmd(0x1C, 0x16C5);            //
    // Gamma setting
    LCM_WriteCmd(0x52, 0x0021);            //
    LCM_WriteCmd(0x53, 0x0011);            //
    LCM_WriteCmd(0x24, 0x0061);            //
    LCM_WriteCmd(0x25, 0x0061);            //
    LCM_WriteCmd(0x26, 0x0000);            //
    LCM_WriteCmd(0x27, 0x0000);            //
    LCM_WriteCmd(0x61, 0x0026);            //
    LCM_WriteCmd(0x62, 0x0008);            //
    LCM_WriteCmd(0x63, 0x0015);            //
    LCM_WriteCmd(0x64, 0x0016);            //
    LCM_WriteCmd(0x65, 0x000C);            //
    LCM_WriteCmd(0x66, 0x0024);            //
    // Driver timming setting
    LCM_WriteCmd(0x4D, 0x0205);            //
    LCM_WriteCmd(0x4E, 0x0001);            //
    LCM_WriteCmd(0x4F, 0x0104);            //
    LCM_WriteCmd(0x2E, 0x002F);            //
    // Display area setting
    LCM_WriteCmd(0x29, 0x0000);            //
    LCM_WriteCmd(0x2A, 0x0000);            //
    LCM_WriteCmd(0x2B, 0x00EF);            //
    LCM_WriteCmd(0x2C, 0x013F);            //
    // Window area setting
    LCM_WriteCmd(0x08, 0x0000);            //
    LCM_WriteCmd(0x09, 0x00EF);            //
    LCM_WriteCmd(0x0A, 0x0000);            //
    LCM_WriteCmd(0x0B, 0x013F);            //
    // Window mode setting
    LCM_WriteCmd(0x05, 0x0000);            //
    // Ram address setting
    LCM_WriteCmd(0x06, 0x0000);            //
    LCM_WriteCmd(0x07, 0x0000);            //
    //LCM_WriteCmd(0x0E, 0x0000);            // RAM Write Index
    // DC/DC setting
    LCM_WriteCmd(0x18, 0x01EA);            //
    LCM_WriteCmd(0x1A, 0x00A2);            //
    LCM_WriteCmd(0x1B, 0x0028);            //
    LCM_WriteCmd(0x1C, 0x16C5);            //
    // VCOM voltage setting
    LCM_WriteCmd(0x1F, 0x0037);            //
    LCM_WriteCmd(0x20, 0x0080);            //
    // DC/DC On
    LCM_WriteCmd(0x18, 0x1E6B);            //
    __TIMER_DELAY(100);
    // VCOM on
    LCM_WriteCmd(0x1E, 0x0021);            //
    // Gate output enable
    LCM_WriteCmd(0x3B, 0x0001);            //
}

void uPD161704_LCM_DisplayOn(void)
{
    LCM_WriteCmd(0x00, 0x0000);
    LCM_WRITE_ADR = 0x0E;                        // RAM Write Index
}

void uPD161704_LCM_DisplayOff(void)
{

}

void uPD161704_LCM_StandbyOn(void)
{
    LCM_WriteCmd(0x00, 0x0008);                    // STB = 1
    __TIMER_DELAY(20);
    LCM_WriteCmd(0x18, 0x1F6A);                    // DCON = 0
    LCM_WriteCmd(0x00, 0x000C);                    // STBY_GOFF = 1
    LCM_WriteCmd(0x3A, 0x0000);                    // OSCON = 0
}

void uPD161704_LCM_StandbyOff(void)
{
    LCM_WriteCmd(0x3A, 0x0001);                    // OSCON = 1
    LCM_WriteCmd(0x00, 0x0008);                    // STBY_GOFF = 0
    LCM_WriteCmd(0x18, 0x1E6B);                    // DCON = 1
    //__TIMER_DELAY(30);
    LCM_WriteCmd(0x00, 0x0000);                    // STB = 0
}

void uPD161704_LCM_Update(U8 bTargetLCM, U16 *pu16Buffer)
{
    unsigned short i,j;

    MP321_Release(bTargetLCM);
    uPD161704_LCM_AddressRefresh();

    LCM_WRITE_ADR = 0x0E;                                // RAM Write Index

    for(i=0;i<320;i++)
    {
        for(j=0;j<240;j++)
        {
            LCM_WRITE_DAT= *(pu16Buffer + i * 240 + j);
        }
    }

    //iMagic_DisableBypass();
}

void uPD161704_LCM_AddressRefresh(void)
{
    LCM_WriteCmd(0x06, 0x0000);
    LCM_WriteCmd(0x07, 0x0000);
}
#endif

⌨️ 快捷键说明

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