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

📄 ili9320_430_p1.c

📁 cc2500无线传感与msp430的接口代码
💻 C
📖 第 1 页 / 共 2 页
字号:

#include  <msp430x14x.h>
#include "include.h"
#define Uchar unsigned char
#define Uint  unsigned int
#define Ulong unsigned long

#define uchar unsigned char
#define uint unsigned int
#include "asc_8_16.h"
#include "pp.h"


uchar addr_no = 8 ; //

extern char paTable[];
extern char paTableLen;

char txBuffer[8];
char rxBuffer[8];
unsigned int i;
unsigned int adc;
char time_con = 0 ;

//  CS0 - P37
//  CD  - P36
//  RD  - P34
//  WR  - P35
//  RST - P27

#define LCD_OUT    P3OUT
#define LCD_DIR    P3DIR

#define LCD_CS     BIT0   //选择起点的位置 可以将画面颠倒
#define LCD_DC     BIT1   //命令 、 数据 选择
#define LCD_WR     BIT2   //写
#define LCD_RST    BIT3

#define LCD_CS_0    LCD_OUT &= ~LCD_CS
#define LCD_CS_1    LCD_OUT |=  LCD_CS 
#define LCD_DC_0    LCD_OUT &= ~LCD_DC
#define LCD_DC_1    LCD_OUT |=  LCD_DC 
#define LCD_WR_0    LCD_OUT &= ~LCD_WR 
#define LCD_WR_1    LCD_OUT |=  LCD_WR 
#define LCD_RD_0    LCD_OUT &= ~LCD_RD 
#define LCD_RD_1    LCD_OUT |=  LCD_RD 

#define LCD_RST_0   LCD_OUT &= ~LCD_RST 
#define LCD_RST_1   LCD_OUT |=  LCD_RST


//=======================================
//================================
void ILI9320_CMO22_Initial(void);
void LCD_CtrlWrite_ILI9320(uint rr,uint data_);
void Initial_HX8312(void);
void WriteRegister(unsigned int RegisterValue);
void WriteCOM(char,char);
void WriteDAT(char,char);
void addr(void);

void Pattern0(void);
void Pattern77(uint x,uint y);
void Pattern1(void);
void Pattern2(void);
void Pattern3(void);
void Pattern4(void);
void Pattern5(void);
void Pattern6(void);
void Pattern7(void);
void Pattern8(void);
void Pattern9(void);
void Pattern10(void);
void showrom1PIC();
void showrom2PIC();
void selectDISROM(void);
void dis_asc_8_16(uchar startx,uchar starty,uchar *p,uint color,uint color_b);
void dis_guangdai(uchar startx,uchar starty,uchar lengx,uchar lengy,uint color)	;   //Display  All  Green					

void delayms(int);
void delay(long tt)
    {
    while(tt>0)
        {tt--;}
    }


void LCD_CtrlWrite_ILI9320(uint rr,uint data_)
    {
        LCD_DC_0;   //A0=0;                            
        LCD_CS_0;   //CS=0;
        P5OUT = rr >> 8  ;//P1=DH;                        
        P4OUT = 0xff & rr ; //P1=DL;                
        LCD_WR_0;   //WRB=0;
        LCD_WR_1;   //WRB=1;
    //    LCD_CS_1;   //CS=1;

        LCD_DC_1;    //A0=1;                            
    //    LCD_CS_0;   //CS=0;
        P5OUT = data_ >> 8  ;    //P1=DH;                        
        P4OUT = 0xff & data_; //P1=DL;                
        LCD_WR_0;   //WRB=0;
        LCD_WR_1;   //WRB=1;
        LCD_CS_1;   //CS=1;
    }

void WriteRegister(unsigned int RegisterValue)
    {
        LCD_DC_0;   //A0=0;
        LCD_CS_0;   //CS=0;
        P5OUT = RegisterValue>>8;
        P4OUT = RegisterValue ;
        LCD_WR_0    ;   //WRB=0;
        LCD_WR_1;       //WRB=1;
        LCD_CS_1;       //CS=1;
	}


void WriteCOM(char DH,char DL)		
    {
        LCD_DC_0;   //A0=0;                            
        LCD_CS_0;   //CS=0;
        P5OUT = DH ;//P1=DH;                        
        P4OUT = DL ;
        LCD_WR_0;   //WRB=0;
        LCD_WR_1;   //WRB=1;
        LCD_CS_1;   //CS=1;
    }


void WriteDAT(char DH,char DL)		
   {
    //    LCD_DC_1;    //A0=1;                            
    //    LCD_CS_0;   //CS=0;
        P5OUT = DH ;    //P1=DH;                        
        P4OUT = DL; //P1=DL;   
        LCD_WR_0;   //WRB=0;
        LCD_WR_1;   //WRB=1;
    //    LCD_CS_1;   //CS=1;
    }

void addr(void)
    {
        LCD_CtrlWrite_ILI9320(0x0050, 0x0000);//Horizontal RAM Address Position start
        LCD_CtrlWrite_ILI9320(0x0051, 0x00ef);//Horizontal RAM Address Position end
        LCD_CtrlWrite_ILI9320(0x0052, 0x0000);//Vertical RAM Address Position start
        LCD_CtrlWrite_ILI9320(0x0053, 0x013f);//Vertical RAM Address Position end
        LCD_CtrlWrite_ILI9320(0x0020, 0);//Vertical RAM Address Position end
        LCD_CtrlWrite_ILI9320(0x0021, 0);//Vertical RAM Address Position end
	    WriteCOM(0x00,0x22);  
        LCD_CS_0 ;
        LCD_DC_1 ;
    }

void dis_area(uint x1,uint x2,uint y1,uint y2)
    {
        LCD_CtrlWrite_ILI9320(0x0050, x1);//Horizontal RAM Address Position start
        LCD_CtrlWrite_ILI9320(0x0051, x2);//Horizontal RAM Address Position end
        LCD_CtrlWrite_ILI9320(0x0052, y1);//Vertical RAM Address Position start
        LCD_CtrlWrite_ILI9320(0x0053, y2);//Vertical RAM Address Position end
        LCD_CtrlWrite_ILI9320(0x0020, x1);//Vertical RAM Address Position end
        LCD_CtrlWrite_ILI9320(0x0021, y1);//Vertical RAM Address Position end
	    WriteCOM(0x00,0x22);  
        LCD_CS_0 ;
        LCD_DC_1 ;
    }



void ILI9320_CMO22_Initial(void)
    {   // VCI=2.8V
        //************* Start Initial Sequence ****************
        LCD_CtrlWrite_ILI9320(0x0000, 0x0001); // Start internal OSC.
        delayms(200);
        LCD_CtrlWrite_ILI9320(0x0001, 0x0100); // set SS and SM bit
        delayms(200);
        LCD_CtrlWrite_ILI9320(0x0002, 0x0700); // set 1 line inversion
        LCD_CtrlWrite_ILI9320(0x0003, 0x1030); // set GRAM write direction and BGR=1.
        LCD_CtrlWrite_ILI9320(0x0004, 0x0000); // Resize register
        LCD_CtrlWrite_ILI9320(0x0008, 0x0202); // set the back porch and front porch
        LCD_CtrlWrite_ILI9320(0x0009, 0x0000); // set non-display area refresh cycle ISC[3:0]
        LCD_CtrlWrite_ILI9320(0x000A, 0x0000); // FMARK function
        LCD_CtrlWrite_ILI9320(0x000C, 0x0000); // RGB interface setting
        LCD_CtrlWrite_ILI9320(0x000D, 0x0000); // Frame marker Position
        LCD_CtrlWrite_ILI9320(0x000F, 0x0000); // RGB interface polarity
        //*************Power On sequence ****************
        LCD_CtrlWrite_ILI9320(0x0010, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
        LCD_CtrlWrite_ILI9320(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
        LCD_CtrlWrite_ILI9320(0x0012, 0x0000); // VREG1OUT voltage
        LCD_CtrlWrite_ILI9320(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude
        delayms(200); // Dis-charge capacitor power voltage
        LCD_CtrlWrite_ILI9320(0x0010, 0x17b0); // SAP, BT[3:0], AP, DSTB, SLP, STB   17b0
        LCD_CtrlWrite_ILI9320(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
        delayms(50); // Delay 50ms
        LCD_CtrlWrite_ILI9320(0x0012, 0x011a); // VREG1OUT voltage
        delayms(50); // Delay 50ms
        LCD_CtrlWrite_ILI9320(0x0013, 0x1a00); // VDV[4:0] for VCOM amplitude
        LCD_CtrlWrite_ILI9320(0x0029, 0x000c); // VCM[4:0] for VCOMH
        
        delayms(50);
        LCD_CtrlWrite_ILI9320(0x0020, 0x0000); // GRAM horizontal Address
        LCD_CtrlWrite_ILI9320(0x0021, 0x0000); // GRAM Vertical Address
        // ----------- Adjust the Gamma Curve ------------//
        LCD_CtrlWrite_ILI9320(0x0030, 0x0000);
        LCD_CtrlWrite_ILI9320(0x0031, 0x0505);
        LCD_CtrlWrite_ILI9320(0x0032, 0x0004);
        LCD_CtrlWrite_ILI9320(0x0035, 0x0006);
        LCD_CtrlWrite_ILI9320(0x0036, 0x0707);
        LCD_CtrlWrite_ILI9320(0x0037, 0x0105);
        LCD_CtrlWrite_ILI9320(0x0038, 0x0002);
        LCD_CtrlWrite_ILI9320(0x0039, 0x0707);
        LCD_CtrlWrite_ILI9320(0x003C, 0x0704);
        LCD_CtrlWrite_ILI9320(0x003D, 0x0807);
        //------------------ Set GRAM area -------------------//
        LCD_CtrlWrite_ILI9320(0x0050, 0x0000); // Horizontal GRAM Start Address
        LCD_CtrlWrite_ILI9320(0x0051, 0x00EF); // Horizontal GRAM End Address
        LCD_CtrlWrite_ILI9320(0x0052, 0x0000); // Vertical GRAM Start Address
        LCD_CtrlWrite_ILI9320(0x0053, 0x013F); // Vertical GRAM Start Address
        LCD_CtrlWrite_ILI9320(0x0060, 0x2700); // Gate Scan Line
        LCD_CtrlWrite_ILI9320(0x0061, 0x0001); // NDL,VLE, REV
   //     LCD_CtrlWrite_ILI9320(0x006A, 0x0000); // set scrolling line
        //----------------- Partial Display Control ----------//
        LCD_CtrlWrite_ILI9320(0x0080, 0x0000);
        LCD_CtrlWrite_ILI9320(0x0081, 0x0000);
        LCD_CtrlWrite_ILI9320(0x0082, 0x0000);
        LCD_CtrlWrite_ILI9320(0x0083, 0x0000);
        LCD_CtrlWrite_ILI9320(0x0084, 0x0000);
        LCD_CtrlWrite_ILI9320(0x0085, 0x0000);
        //----------------- Panel Control --------------------//
        LCD_CtrlWrite_ILI9320(0x0090, 0x0010);
        LCD_CtrlWrite_ILI9320(0x0092, 0x0000);
        
        LCD_CtrlWrite_ILI9320(0x0093, 0x0003);
        LCD_CtrlWrite_ILI9320(0x0095, 0x0110);
        LCD_CtrlWrite_ILI9320(0x0097, 0x0000);
        LCD_CtrlWrite_ILI9320(0x0098, 0x0000);
        LCD_CtrlWrite_ILI9320(0x0007, 0x0173); // 262K color and display ON  0x173
    }

void LCD_ExitSleep_ILI9320(void)
    {
        //*************Power On sequence ****************
        LCD_CtrlWrite_ILI9320(0x0010, 0x0000); // SAP, BT[3:0], AP, DSTB, SLP, STB
        LCD_CtrlWrite_ILI9320(0x0011, 0x0000); // DC1[2:0], DC0[2:0], VC[2:0]
        LCD_CtrlWrite_ILI9320(0x0012, 0x0000); // VREG1OUT voltage
        LCD_CtrlWrite_ILI9320(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude
        delayms(200); // Dis-charge capacitor power voltage
        LCD_CtrlWrite_ILI9320(0x0010, 0x1590); // SAP, BT[3:0], AP, DSTB, SLP, STB
        LCD_CtrlWrite_ILI9320(0x0011, 0x0007); // DC1[2:0], DC0[2:0], VC[2:0]
        delayms(50); // Delay 50ms
        LCD_CtrlWrite_ILI9320(0x0012, 0x013A); // VREG1OUT voltage
        delayms(50); // Delay 50ms
        LCD_CtrlWrite_ILI9320(0x0013, 0x1500); // VDV[4:0] for VCOM amplitude
        LCD_CtrlWrite_ILI9320(0x0029, 0x0000); // VCM[4:0] for VCOMH
        delayms(50);
        LCD_CtrlWrite_ILI9320(0x0007, 0x0173); // 262K color and display ON
    }

void LCD_EnterSleep_ILI9320(void)
    {
        LCD_CtrlWrite_ILI9320(0x0007, 0x0000); // display OFF
        //*************Power OFF sequence ****************
        LCD_CtrlWrite_ILI9320(0x0010, 0x0000); // SAP, BT[3:0], APE, AP, DSTB, SLP
        LCD_CtrlWrite_ILI9320(0x0011, 0x0000); // DC1[2:0], DC0[2:0], VC[2:0]
        LCD_CtrlWrite_ILI9320(0x0012, 0x0000); // VREG1OUT voltage
        LCD_CtrlWrite_ILI9320(0x0013, 0x0000); // VDV[4:0] for VCOM amplitude
        delayms(200); // Dis-charge capacitor power voltage
        LCD_CtrlWrite_ILI9320(0x0010, 0x0002); // SAP, BT[3:0], APE, AP, DSTB, SLP
    }


//***********************************************************


void Pattern0()	                 // Display All  Red				
{
	unsigned int i,j;
  //  addr();
    dis_area(0,239,0,319);
	for(i=0;i<160;i++)		
	{		
        _NOP();
		for (j=0;j<240;j++)			
		{
			WriteDAT(0xf8,0x00);    
		}		
	}
}


void Pattern1()	                 //Display  All  Green					
{
	unsigned int i,j;
    dis_area(0,119,100,299);
	for(i=0;i<200;i++)                      
	{		
		for (j=0;j<120;j++)    
		{
			WriteDAT(0x07,0xe0);
		}		
	}
}

void Pattern2()		                 //Display All  Blude				
{
	unsigned int i,j;
    addr();
	for(i=0;i<320;i++)                
	{		
		for (j=0;j<240;j++)
		{
			WriteDAT(0x00,0x1f);  
		}		
	}
}

void Pattern4()		//vertical 				
{
	unsigned int i,j;
    dis_area(100,219,50,299);
	for(i=0;i<250;i++)
	{
		for (j=0;j<120;j++)         
		{
			WriteDAT(0xff,0xff);
			WriteDAT(0x00,0x00);
		}
	}
}

void Pattern5()		//horizontal 				
{
	unsigned int i,j;
    addr();
	for(i=0;i<160;i++)
	{
		for (j=0;j<240;j++)   
			WriteDAT(0xff,0xff);
		for (j=0;j<240;j++)   
			WriteDAT(0x00,0x00);
	}
}

void Pattern6()		//snow 								
{
	unsigned int i,j;
    addr();
	
	for(i=0;i<160;i++)
	{
		for (j=0;j<120;j++)
		{

⌨️ 快捷键说明

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