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

📄 hx8312.c

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

/* Main IC:  LDS191 VER.B                    */
/*  8080 MPU 8-bit Parallel  128*160 Dots    */
/*  CGS172B01   FPC V.01   
//  MCU AT89C2051   
/*  2006/3/2   Written  by daizhenggen
/*=======================================*/

#include<REG51.H>
#include<INTRINS.H>
#include<ABSACC.H>
#include<MATH.H>
#include<stdio.h>
//#include<image.h>

//#define unchar  unsigned char
//#define unint	unsigned int

//#include <main bird.h>        
//=======================================
//sbit DS  = P3^0;
//sbit RES = P3^7;  //P3^0
sbit WRB = P3^5;  //P3^3  
sbit A0  = P3^6;      //P3^4
sbit CS = P3^7; //P3^1  LCM


sbit AUTOB = P3^0;   
sbit STEPB = P3^1;   
//sbit BankPort0=P1^0;
//sbit BankPort1=P1^1;
//sbit BankPort2=P1^2;
sbit ChipSelect=P3^4;
sbit CSROM1= P1^4; //P3^1  LCM
sbit CSROM2 = P1^5;
sbit A16    = P1^0;
sbit A17    = P1^1;  
sbit A18    = P1^2;


#define Uchar unsigned char
#define Uint  unsigned int
#define Ulong unsigned long

//=======================================

//=======================================
//================================
void Initial_HX8312(void);
void WriteRegister(unsigned int RegisterValue);
void WriteCOM(char,char);
void WriteDAT(char,char);
void addr(void);

void Pattern0(void);
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 press(void);
void delayms(int);



main()
{


  //  RES=0;
//	delayms(2);
///	RES=1;
///	delayms(2);

	Initial_HX8312();			// Main Initial  

	
    IT0 =0;//下降沿触发

    EX0=1; // 允许中断0
    EA=1;  // 设定中断优先级

	
	while(1)
	{

    	Pattern0();	     // Display All  Red 
        delayms(100);
        press();

		Pattern1();	    //Display  All  Green  
        delayms(100);
        press();
		
		Pattern2();	    //Display All  Blude  
        delayms(100);
        press();

		Pattern9();                            
    	delayms(100);
		press(); 
         

		
	//	Pattern4();	    // Display horizontal 
	//	press();
      //  delayms(100);

	//	Pattern5();	      //Display vertical 
	//	press();
    //   delayms(100);
//
		Pattern6();                              
    	delayms(100);
		press();

 		Pattern7();                            
    	delayms(100);
		press();          

        Pattern10();                            
	    delayms(100);
		press();

     
//		Pattern8();                            
//	    delayms(100);
//		press();

     	Pattern3();	     // Display 16TH Gray 
		delayms(100);
        press();



		showrom1PIC();
        showrom2PIC();

				

	  
	
      }

}

void Initial_HX8312(void)					
{
//*******************************Start Initial Sequence******************************//
  //  WriteRegister(0x00,0x00,0x01); 	   // Start internal OSC.
    WriteCOM(0x00,0x00);    
	WriteDAT(0x00,0x01);   //start oscillation

  //  WriteRegister(0x01,0x01,0x00);    // set SS and SM bit
    WriteCOM(0x00,0x01);    
	WriteDAT(0x01,0x00);  

  //  WriteRegister(0x02,0x07,0x00);   // set 1 line inversion
    WriteCOM(0x00,0x02);    
	WriteDAT(0x07,0x00);  
 //   WriteRegister(0x03,0x10,0x30);  // set GRAM write direction and BGR=1. 
    WriteCOM(0x00,0x03);    
	WriteDAT(0x10,0x30);  
//    WriteRegister(0x04,0x00,0x00);  // Resize register
    WriteCOM(0x00,0x04);    
	WriteDAT(0x00,0x00);  
   // WriteRegister(0x08,0x02,0x02);  // set the back porch and front porch
    WriteCOM(0x00,0x08);    
	WriteDAT(0x02,0x02);  
  //  WriteRegister(0x09,0x00,0x00);   // set non-display area refresh cycle ISC[3:0]
    WriteCOM(0x00,0x09);    
	WriteDAT(0x00,0x00);  
  //  WriteRegister(0x0A,0x00,0x00); // FMARK function 
    WriteCOM(0x00,0x0a);    
	WriteDAT(0x00,0x00);  
  //  WriteRegister(0x0C,0x00,0x00); // RGB interface setting
    WriteCOM(0x00,0x0c);    
	WriteDAT(0x00,0x00);  
   // WriteRegister(0x0D,0x00,0x00);// Frame marker Position 
    WriteCOM(0x00,0x0d);    
	WriteDAT(0x00,0x00);  
   // WriteRegister(0x0F,0x00,0x00); // RGB interface polarity
    WriteCOM(0x00,0x0f);    
	WriteDAT(0x00,0x00);  

	//**********************************Power On Sequence******************************//
   // WriteRegister(0x10,0x00,0x00);  // SAP, BT[3:0], AP, DSTB, SLP, STB
    WriteCOM(0x00,0x10);    
	WriteDAT(0x00,0x00);  
 //   WriteRegister(0x11,0x00,0x07);  // DC1[2:0], DC0[2:0], VC[2:0]
    WriteCOM(0x00,0x11);    
	WriteDAT(0x00,0x07);  
 //   WriteRegister(0x12,0x00,0x00);  // VREG1OUT voltage
    WriteCOM(0x00,0x12);    
	WriteDAT(0x00,0x00);  
  //  WriteRegister(0x13,0x00,0x00);  // VDV[4:0] for VCOM amplitude
    WriteCOM(0x00,0x13);    
	WriteDAT(0x00,0x00);  
    delayms(1);
   // WriteRegister(0x10,0x17,0xB0);// SAP, BT[3:0], AP, DSTB, SLP, STB
    WriteCOM(0x00,0x10);    
	WriteDAT(0x17,0xB0);  
  //  WriteRegister(0x11,0x00,0x07);// DC1[2:0], DC0[2:0], VC[2:0]
    WriteCOM(0x00,0x11);    
	WriteDAT(0x00,0x07);  
    delayms(1);
//	WriteRegister(0x12,0x01,0x1A);
    WriteCOM(0x00,0x12);    
	WriteDAT(0x01,0x1A);  

//	WriteRegister(0x13,0x1A,0x00);
    WriteCOM(0x00,0x13);    
	WriteDAT(0x1A,0x00);  
//	WriteRegister(0x29,0x00,0x0C);
    WriteCOM(0x00,0x29);    
	WriteDAT(0x00,0x0C);  
    delayms(1);
  //  WriteRegister(0x20,0x00,0x00);
    WriteCOM(0x00,0x20);    
	WriteDAT(0x00,0x00);  
 //   WriteRegister(0x21,0x00,0x00);
    WriteCOM(0x00,0x21);    
	WriteDAT(0x00,0x00);  

//*****************************************Adjust the Gamma curve*********************************//
  //  WriteRegister(0x30,0x00,0x00);
    WriteCOM(0x00,0x30);    
	WriteDAT(0x00,0x00);  
   // WriteRegister(0x31,0x05,0x05);
    WriteCOM(0x00,0x31);    
	WriteDAT(0x05,0x05);  
//	WriteRegister(0x32,0x00,0x04);
    WriteCOM(0x00,0x32);    
	WriteDAT(0x00,0x04);  
   // WriteRegister(0x35,0x00,0x06);
    WriteCOM(0x00,0x35);    
	WriteDAT(0x00,0x06);  
//	WriteRegister(0x36,0x07,0x07);
    WriteCOM(0x00,0x36);    
	WriteDAT(0x07,0x07);  
//	WriteRegister(0x37,0x01,0x05);
    WriteCOM(0x00,0x37);    
	WriteDAT(0x01,0x05);  
    //WriteRegister(0x38,0x00,0x02);
    WriteCOM(0x00,0x38);    
	WriteDAT(0x00,0x02);  
  //  WriteRegister(0x39,0x07,0x07);
    WriteCOM(0x00,0x39);    
	WriteDAT(0x07,0x07);  
	//WriteRegister(0x3c,0x07,0x04);
    WriteCOM(0x00,0x3c);    
	WriteDAT(0x07,0x04);  
   // WriteRegister(0x3d,0x08,0x07);
    WriteCOM(0x00,0x3d);    
	WriteDAT(0x08,0x07);  


//*************************partial Display Contronl****************************
 //	WriteRegister(0x60,0x27,0x00);
    WriteCOM(0x00,0x60);    
	WriteDAT(0x27,0x00);  
   // WriteRegister(0x61,0x00,0x01);
    WriteCOM(0x00,0x61);    
	WriteDAT(0x00,0x01);  
   // WriteRegister(0x80,0x00,0x00);
    WriteCOM(0x00,0x80);    
	WriteDAT(0x00,0x00);  
//	WriteRegister(0x81,0x00,0x00);
    WriteCOM(0x00,0x81);    
	WriteDAT(0x00,0x00);  
  //  WriteRegister(0x82,0x00,0x00);
    WriteCOM(0x00,0x82);    
	WriteDAT(0x00,0x00);  
//	WriteRegister(0x83,0x00,0x00);
    WriteCOM(0x00,0x83);    
	WriteDAT(0x00,0x00);  
 //   WriteRegister(0x84,0x00,0x00);
    WriteCOM(0x00,0x84);    
	WriteDAT(0x00,0x00);  
//	WriteRegister(0x85,0x00,0x00);
    WriteCOM(0x00,0x85);    
	WriteDAT(0x00,0x00);  

//	WriteRegister(0x90,0x00,0x10);
    WriteCOM(0x00,0x90);    
	WriteDAT(0x00,0x10);  
   // WriteRegister(0x92,0x00,0x00);
    WriteCOM(0x00,0x92);    
	WriteDAT(0x00,0x00);  
  // WriteRegister(0x93,0x00,0x03);
    WriteCOM(0x00,0x93);    
	WriteDAT(0x00,0x03);  
   // WriteRegister(0x95,0x01,0x10);
    WriteCOM(0x00,0x95);    
	WriteDAT(0x01,0x10);  
  //  WriteRegister(0x97,0x00,0x00);
    WriteCOM(0x00,0x97);    
	WriteDAT(0x00,0x00);  
   // WriteRegister(0x98,0x00,0x00);
    WriteCOM(0x00,0x98);    
	WriteDAT(0x00,0x00);  
  //  WriteRegister(0x07,0x01,0x73);
    WriteCOM(0x00,0x07);    
	WriteDAT(0x01,0x73);  
//********************************************************************************

}
//**************************************************************************************
void addr(void)
{
 //WriteRegister(0x50,0x00,0x00); //Horizontal RAM Address Position start
    WriteCOM(0x00,0x50);    
	WriteDAT(0x00,0x00);  	   

// WriteRegister(0x51,0x00,0xef); //Horizontal RAM Address Position end
    WriteCOM(0x00,0x51);    
	WriteDAT(0x00,0xef);  
 //WriteRegister(0x52,0x00,0x00); //Vertical RAM Address Position start
    WriteCOM(0x00,0x52);    
	WriteDAT(0x00,0x00);  
 //WriteRegister(0x53,0x01,0x3f); //Vertical RAM Address Position end
    WriteCOM(0x00,0x53);    
	WriteDAT(0x01,0x3f);  
 //writec(0x22);//WRITE DATA TO GRAM
  
	WriteCOM(0x00,0x22);  
 }

	


void WriteRegister(unsigned int RegisterValue)
{

    A0=0;
    CS=0;
//    RDB=1;
	
    P1=RegisterValue>>8;


    WRB=0;
	WRB=1;
    CS=1;
	
    CS=0;
    P1=RegisterValue;
    WRB=0;
	WRB=1;
    CS=1;
}


void WriteCOM(char DH,char DL)		
{
    CS=0;
    //RDB=1;														
    A0=0;                            
    P1=DH;                        
   
                       
    WRB=0;
    WRB=1;
    CS=1;
    CS=0;
    P1=DL;                
    WRB=0;
    WRB=1;
    CS=1;
}


void WriteDAT(char DH,char DL)		
{
   {
    CS=0;
    //RDB=1;														
    A0=1;                            
    P1=DH;                        
   
                       
    WRB=0;
    WRB=1;
    CS=1;
    CS=0;
    P1=DL;                
    WRB=0;
    WRB=1;
    CS=1;
}

}



/*void WriteRegister(unsigned int RegisterValue)
{

    A0=0;
    CS=0;
    //RDB=1;
	WRB=1;
    P1=RegisterValue>>8;

	P1=RegisterValue;
    WRB=0;
	WRB=1;
    CS=1;
	CS=0;

	P1=RegisterValue;
    WRB=0;
	WRB=1;
    CS=1;
}


void WriteCOM(char DH,char DL)		
{     CS=0;
    //RDB=1;														
    A0=0;                            
                     
    P1=DH; 
                       
    WRB=0;
    WRB=1;
    CS=1;
	CS=0;
	                  
    P1=DL; 
                       
    WRB=0;
    WRB=1;
    CS=1;
}


void WriteDAT(char DH,char DL)		
{
    CS=0;
    //RDB=1;														
    A0=1;                            
                     
    P1=DH; 
                       
    WRB=0;
    WRB=1;
    CS=1;
	CS=0;
	                  
    P1=DL; 
                       
    WRB=0;
    WRB=1;
    CS=1;
}

*/

void Pattern0()	                 // Display All  Red				
{


	unsigned int i,j;
 addr();

	for(i=0;i<320;i++)		
	{		
		for (j=0;j<240;j++)			
		{
			WriteDAT(0xf8,0x00);    
		}		
	}
	
}



void Pattern1()	                 //Display  All  Green					
{

    
	unsigned int i,j;

addr();


	for(i=0;i<320;i++)                      
	{		
		for (j=0;j<240;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 Pattern3()	                       //Display 16TH Gray										
{

⌨️ 快捷键说明

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