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

📄 cstn1.5_st7637_128x128_8_v1.c

📁 ST7637CSTN驱动代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************
Author: Ivan Dong(Dzh)
File name: 
Start : 2006/08/01
End   : 
Description: 
******************************************************************/

//#define     _IN_LCD_LTPS
//------------------------------------------------------------------------------
#include "Memap.h"
#include "Macro.h"
#include "Lcd.h"

#define LCD_OFFSET_X        4
#define LCD_OFFSET_Y        4

#define LCD_SendPara LCD_SendData8
#define LCD_SendData LCD_SendData16
//#define LCD_SendCommand LCD_SendData8


/******************************************
//  Function:  LCD_SendCommand()
//
//  input: Set Control Register, 16bit, 
// 
//  Description: RS(DC) is Low active when write Index Register, and High Byte First
//
*******************************************/
/*void LCD_SendCommand(unsigned int cmd)
{
//    write_XDATA(LCD_COMMAND,cmd >> 8);
    write_XDATA(LCD_COMMAND,cmd);
}*/


/******************************************
//  Function:  LCD_SendPara()
//  
//  input: Send command parameter , 16bit,  
//  
//  Output: None
//  
//  Description: RS(DC) is High active when write Data, and High Byte First
*******************************************/
/*void LCD_SendPara(unsigned int para)
{
//    write_XDATA(LCD_DATA,para >> 8);
    write_XDATA(LCD_DATA,para);
}*/


/******************************************
//  Function:  LCD_SendData()
//  
//  input: Send data , 16bit,  
//  
//  Output: None
//  
//  Description: RS(DC) is High active when write Data, and High Byte First
*******************************************/
/*void LCD_SendData(unsigned int data)
{
//    LCD_SendCommand(0x2c);
    write_XDATA(LCD_DATA,data >> 8);
    write_XDATA(LCD_DATA,data);
}
void AVILCD_SendData(unsigned int data)
{
//    LCD_SendCommand(0x2c);
    write_XDATA(LCD_DATA,data);
    write_XDATA(LCD_DATA,data >> 8);
}*/

// dzh, to fill the whole screen in one color
void Display_Sub(unsigned int RGB_Data)
{
    unsigned int  i,j;
    
    for(i = 131; i>0; i--){
        for(j = 131; j>0; j--)        
            LCD_SendData(RGB_Data);
    }
}


/*******************************************
//  Function:   PowerOnLcdinit()  
//  
//  Input : None
//  
//  Output: None
//  
//  Description: Lcd Initial Code
********************************************/
__attribute__((section(".sys_init_text, \"ax\"")))
void  PowerOnLcdinit()
{
//-----------------------------------------------------------------------------------//
//------------------------------------ST7637 Initial Code----------------------------//
//--------------------------------Date/Time : 2006-11-16 12:19:23----------------//
//--------------------------------Interface : 80-8bit--------------------------------//
//----------------------------------------------------------

		LCD_SendCommand(0x01);                  //Software Reset 
		Delay1Ms (150);                     //Delay 150mS

		LCD_SendCommand(0xD7);                  //Autoread control
		LCD_SendPara (0x9F);                //Disable Autoread
		LCD_SendCommand(0xE0);                  //Control OTP/MTP
		LCD_SendPara (0x00);                //Read Mode
		Delay1Ms (10);                      //Delay 10mS
		LCD_SendCommand(0xE3);                  //Control OTP/MTP
		Delay1Ms (20);                      //Delay 20mS
		LCD_SendCommand(0xE1);                  //Close Read Mode
//-----------------------------------------------------------------------------------//
//------------------------------OTP/MTP Set [XXXX/OTPB/MTP ]-------------------------//
//-----------------------------------------------------------------------------------//
//------------------------------------OTPB Set---------------------------------------//
		LCD_SendCommand(0xC3);                  //Bias Set
		LCD_SendPara (0x00);                //
		LCD_SendCommand(0xC4);                  //Booster Set
		LCD_SendPara (0x05);                //
		LCD_SendCommand(0xC5);                  //Booster Efficiency Set
		LCD_SendPara (0x11);                //
		LCD_SendCommand(0xCB);                  //VG Booster Set
		LCD_SendPara (0x01);                //
		LCD_SendCommand(0xCC);                  //ID1 Set
		LCD_SendPara (0x45);                //
		LCD_SendCommand(0xCE);                  //ID3 Set
		LCD_SendPara (0x00);                //
		LCD_SendCommand(0xB7);                  //Glass Direction
		LCD_SendPara (0xC8);                //
		LCD_SendCommand(0xD0);                  //Follower Type set
		LCD_SendPara (0x1D);                //
//------------------------------------MTP Set----------------------------------------//
		LCD_SendCommand(0xD7);                  //Autoread control
		LCD_SendPara (0xBF);                //
		LCD_SendCommand(0xC7);                  //V0 Offset Voltage Set
		LCD_SendPara (0x00);                //
		LCD_SendPara (0x00);                //
		LCD_SendCommand(0xB5);                  //N-line Set
		LCD_SendPara (0xA4);                //
		LCD_SendCommand(0xCD);                  //ID2 Set
		LCD_SendPara (0xD2);                //
		LCD_SendCommand(0xD0);                  //Set Vg Source
		LCD_SendPara (0x1D);                //
		LCD_SendCommand(0xB4);                  //PTL Saving Mode Set
		LCD_SendPara (0x18);                //Power Normal Mode
//-----------------------------------------------------------------------------------//
//----------------------------Command Table 1----------------------------------------//
//-----------------------------------------------------------------------------------//
		LCD_SendCommand(0x11);                  //Sleep Out
		LCD_SendCommand(0x20);                  //Normal Display
		LCD_SendCommand(0x38);                  //Idle Mode Off
		LCD_SendCommand(0x25);                  //Contrast Difference Set
		LCD_SendPara (0x3F);                //

		LCD_SendCommand(0x13);                  //Partial Mode Off

		LCD_SendCommand(0x2A);                  //Column Range
		LCD_SendPara (0x00);                //Start Address-0
		LCD_SendPara (0x04);                //Start Address-4
		LCD_SendPara (0x00);                //End Address-0
		LCD_SendPara (0x83);                //End Address-131

		LCD_SendCommand(0x2B);                  //Page Range
		LCD_SendPara (0x00);                //Start Address-0
		LCD_SendPara (0x04);                //Start Address-4
		LCD_SendPara (0x00);                //End Address-0
		LCD_SendPara (0x83);                //End Address-131

		LCD_SendCommand(0x34);                  //TE Off
		LCD_SendCommand(0x33);                  //Scroll Area Set
		LCD_SendPara (0x00);                //Top Address
		LCD_SendPara (0x84);                //Height Address
		LCD_SendPara (0x00);                //Botton Address
		LCD_SendCommand(0x37);                  //Scroll Start Address Set
		LCD_SendPara (0x00);                //
		LCD_SendCommand(0x3A);                  //Pixel Format Set
		LCD_SendPara (0x05);                //
		LCD_SendCommand(0x36);                  //Memory Access Control
		LCD_SendPara (0x00);                //
		LCD_SendCommand(0x29);                  //Display On
//-----------------------------------------------------------------------------------//
//------------------------Command Table 2 [XXXX/XXXX/GAMM]---------------------------//
//-----------------------------------------------------------------------------------//
		LCD_SendCommand(0xB0);                  //Duty Set
		LCD_SendPara (0x7F);                //
		LCD_SendCommand(0xB1);                  //First COM Set
		LCD_SendPara (0x00);                //
		LCD_SendCommand(0xB3);                  //OSC Div. Set
		LCD_SendPara (0x00);                //
		LCD_SendCommand(0xC0);                  //V0 Voltage Set
		LCD_SendPara (0x02);                //
		LCD_SendPara (0x01);                //
		LCD_SendCommand(0xC6);                  //V0 Bias Set
		LCD_SendPara (0x00);                //
		LCD_SendCommand(0xB7);                  //Glass Direction
		LCD_SendPara (0xC8);                //
//------------------------------Gamma Table Set--------------------------------------//
		LCD_SendCommand(0xF9);                  //Gamma
		LCD_SendPara (0x00);                //
		LCD_SendPara (0x02);                //
		LCD_SendPara (0x04);                //
		LCD_SendPara (0x06);                //
		LCD_SendPara (0x08);                //
		LCD_SendPara (0x0A);                //
		LCD_SendPara (0x0C);                //
		LCD_SendPara (0x0E);                //
		LCD_SendPara (0x10);                //
		LCD_SendPara (0x12);                //
		LCD_SendPara (0x14);                //
		LCD_SendPara (0x16);                //
		LCD_SendPara (0x18);                //
		LCD_SendPara (0x1A);                //
		LCD_SendPara (0x1C);                //
		LCD_SendPara (0x1E);                //

	Display_Sub(0);
}

void LCD_SetWindow(int x0, int y0, int x1, int y1)
{
    LCD_SendCommand(0x2A);  //horizontal address area set
    LCD_SendPara(x0 + LCD_OFFSET_X);
    LCD_SendPara(x1 + LCD_OFFSET_X);

    LCD_SendCommand(0x2B);  //vertical address area set
    LCD_SendPara(y0 + LCD_OFFSET_Y);
    LCD_SendPara(y1 + LCD_OFFSET_Y);

    LCD_SendCommand(0x2c);
}

void LCDDEV_SetWindow(int x0, int y0, int x1, int y1)
{              
	LCD_SetWindow(x0,y0,x1,y1);
/*        LCD_SendCommand(0x15);  //horizontal address area set
        LCD_SendPara(x0+4); 
        LCD_SendPara(x1+4); 

        LCD_SendCommand(0x75);  //vertical address area set
        LCD_SendPara(y0+4);
        LCD_SendPara(y1+4);   */
}

void LCDDEV_RevertWindow(int x0, int y0, int x1, int y1)
{
       LCDDEV_SetWindow(x0,y0,x1,y1);
}

void LCD_SetDispAddr(unsigned int x,unsigned int y)
{
    LCD_SetWindow(x,y,LCD_MAX_XSIZE-x-1,LCD_MAX_YSIZE-y-1);
}

#if 0
void LCD_ReadBitmap(int x0, int y0, int xsize, int ysize, unsigned int *pData)
{
	int x1, y1;
	x1 = x0+xsize-1; 

⌨️ 快捷键说明

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