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

📄 nt39102.c.txt

📁 配NTK 39102的LCD
💻 TXT
字号:
/***************************************************************
* Copyright (c) 2006,
* All rights reserved.
*
* 文件名称: test.c
* 文件标识:
* 摘要: nt39102,COG带控制器模块测试
*
* 当前版本: 1.0
* 完成日期: 2006年05月20日
*
* **************************************************************/
//====================================================
#include <reg52.h>
#include <intrins.h>
//====================================================
//  端口定义
//====================================================

#define   	D_PORT	P0

sbit		CS = P1^0;
sbit		REST = P1^1;
sbit		DC = P1^2;
sbit		Wr = P1^3;
sbit		Rd = P1^4;
//====================================================
//extern unsigned char code bmp1[];
//====================================================
//  功能函数
//====================================================
void delay(unsigned int ms)
{
	unsigned int i,n;
	for(i=0;i<ms;i++)
		{
			for(n=0;n<1;n++)
				_nop_();
		}
}
//====================================================
// 读写子程序
//====================================================
void  wr_com_m(unsigned char com)
{
	    CS = 0;
		DC = 0;
		D_PORT = com;
     	Wr = 0;
        delay(1);
		Wr = 1;      
		CS = 1;
}
//-------------------------------------------------
void  wr_dat_m(unsigned char  dat)
{
        CS = 0;
		DC = 1;
		D_PORT = dat;
		Wr = 0;
        delay(1);
		Wr = 1;      
		CS = 1;
}
//********************************************************//
void inti_data(unsigned char cindex,unsigned char cdata)
{
	wr_com_m(cindex);
	wr_dat_m(cdata);
}

//********************************************************//
//===================================================================
   void Switch()            //atuo switch function programme
   {
   repeat:
  if (!(P3&0x01)) goto repeat;
   else delay(1);
  if (!(P3&0x01)) goto repeat;
   else ;
   }
//====================================================
//====================================================
void dis_line(unsigned int dat1,dat2)
{
	int i,j;
         	wr_com_m(0x2a);
         wr_dat_m(0x00);
         wr_dat_m(0x00);
         wr_dat_m(0x00);
         wr_dat_m(0x7f);
           wr_dat_m(0x84);
         wr_com_m(0x2b);
         wr_dat_m(0x00);
         wr_dat_m(0x00);
         wr_dat_m(0x00);
         wr_dat_m(0x9f);
          wr_dat_m(0xa2);
         wr_com_m(0x2c);
    
        for(i=0;i<128;i++)     //display line
           	{
	         	for(j=0;j<160;j++)
        		{
		            	wr_dat_m(dat1);
                    	wr_dat_m(dat2);
             	}
	           	}
 }
//===========================================

void dis_bar()
{
	int i,j,k;
       	wr_com_m(0x2a);
         wr_dat_m(0x00);
         wr_dat_m(0x00);
         wr_dat_m(0x00);
         wr_dat_m(0x7f);
           wr_dat_m(0x84);
         wr_com_m(0x2b);
         wr_dat_m(0x00);
         wr_dat_m(0x00);
         wr_dat_m(0x00);
         wr_dat_m(0x9f);
          wr_dat_m(0xa2);
         wr_com_m(0x2c);
         
    for(k=0;i<8;i++)
	{
     	for(i=0;i<16;i++)     //display line
           	{
	         	for(j=0;j<160;j++)
        		{
		            	wr_dat_m(0xf8);
                    	wr_dat_m(0x00);
             	}
	           	}
         for(i=0;i<16;i++)     //display line
           	{
	         	for(j=0;j<160;j++)
        		{
		            	wr_dat_m(0x07);
                    	wr_dat_m(0xe0);
             	}
	           	}
		  for(i=0;i<16;i++)     //display line
           	{
	         	for(j=0;j<160;j++)
        		{
		            	wr_dat_m(0x00);
                    	wr_dat_m(0x1f);
             	}
	           	}
		   for(i=0;i<16;i++)     //display line
           	{
	         	for(j=0;j<160;j++)
        		{
		            	wr_dat_m(0xff);
                    	wr_dat_m(0xe0);
             	}
	           	}
          for(i=0;i<16;i++)     //display line
           	{
	         	for(j=0;j<160;j++)
        		{
		            	wr_dat_m(0xf8);
                    	wr_dat_m(0x1f);
             	}
	           	}
         for(i=0;i<16;i++)     //display line
           	{
	         	for(j=0;j<160;j++)
        		{
		            	wr_dat_m(0x07);
                    	wr_dat_m(0xff);
             	}
	           	}
		  for(i=0;i<16;i++)     //display line
           	{
	         	for(j=0;j<160;j++)
        		{
		            	wr_dat_m(0xff);
                    	wr_dat_m(0xff);
             	}
	           	}
		   for(i=0;i<16;i++)     //display line
           	{
	         	for(j=0;j<160;j++)
        		{
		            	wr_dat_m(0x00);
                    	wr_dat_m(0x00);
             	}
	           	}

	        }
	}
//====================================================================
//====================================================
//  初始化
//====================================================
void lcd_ini_m(void)
{
//============set power=================//
	wr_com_m(0x01);//normal display on
    delay(5);
	wr_com_m(0x11);//Display Inversion Off
	delay(5);
	wr_com_m(0x38);//Display Inversion on
	delay(5);
	wr_com_m(0x13);//Display off
	delay(5);
//==============adjust vcom===================//

	inti_data(0xc0,0x05);
	inti_data(0xc0,0x05);
	delay(5);
	inti_data(0xc1,0x00);
	inti_data(0xc2,0x04);
	inti_data(0xc2,0x01);

//===============contrast control==================//
   	inti_data(0xc5,0x25);
   	inti_data(0xc5,0x2d);// 

		wr_com_m(0x20);//
	inti_data(0x2a,0x00);// 
	inti_data(0x2a,0x00);// 
	inti_data(0x2a,0x00);// 
	inti_data(0x2a,0x7f);//
	 
	inti_data(0x2b,0x00);// 
	inti_data(0x2b,0x00);// 
    inti_data(0x2b,0x00);// 
	inti_data(0x2b,0x9f);//
	 
	inti_data(0x36,0x00);// 
    inti_data(0x3a,0x55);// 
	inti_data(0xb1,0x0e);// 
    inti_data(0xb1,0x14);// 

	inti_data(0xb4,0x00);// 
	inti_data(0xb7,0x00);// 
    inti_data(0xb8,0x00);// 
	
    wr_com_m(0x29);
//=================================================//
	/*inti_data(0x26,0x01);//Gamma Set Gamma Curve 1(G2.2)
	inti_data(0x26,0x02);//Gamma Set Gamma Curve 2(G1.8)
	inti_data(0x26,0x04);//Gamma Set Gamma Curve 3(G2.5)
	inti_data(0x26,0x08);//Gamma Set Gamma Curve 4(G1.0)
//==============gamma curve 1.0==============//
	inti_data(0xe0,0x77);// 
	inti_data(0xe0,0x71);// 
	inti_data(0xe0,0x03);// 
	inti_data(0xe0,0x19);// 
	inti_data(0xe0,0x0f);// 
	inti_data(0xe0,0x0f);// 
	inti_data(0xe0,0x12);// 
	inti_data(0xe0,0xf0);// 

	inti_data(0xe1,0x30);// 
	inti_data(0xe1,0x51);// 
	inti_data(0xe1,0x20);// 
	inti_data(0xe1,0x1f);//
	inti_data(0xe1,0x30);// 
	inti_data(0xe1,0x0f);// 
	inti_data(0xe1,0x1f);// 
	inti_data(0xe1,0xbc);//

//==============Gamma curve 1.8====================//
    inti_data(0xe0,0x70);// 
	inti_data(0xe0,0x72);// 
	inti_data(0xe0,0x01);// 
	inti_data(0xe0,0x01);// 
	inti_data(0xe0,0x37);// 
	inti_data(0xe0,0x0a);// 
	inti_data(0xe0,0x0b);// 
	inti_data(0xe0,0xc0);// 

	inti_data(0xe1,0x77);// 
	inti_data(0xe1,0x62);// 
	inti_data(0xe1,0x72);// 
	inti_data(0xe1,0x0b);//
	inti_data(0xe1,0x59);// 
	inti_data(0xe1,0x07);// 
	inti_data(0xe1,0x07);// 
	inti_data(0xe1,0x6a);//
	//================ Gamma curve 2.2===============//
    inti_data(0xe0,0x20);// 
	inti_data(0xe0,0x61);// 
	inti_data(0xe0,0x01);// 
	inti_data(0xe0,0x00);// 
	inti_data(0xe0,0x46);// 
	inti_data(0xe0,0x0b);// 
	inti_data(0xe0,0x0b);// 
	inti_data(0xe0,0xc0);// 

	inti_data(0xe1,0x77);// 
	inti_data(0xe1,0x03);// 
	inti_data(0xe1,0x72);// 
	inti_data(0xe1,0x0b);//
	inti_data(0xe1,0xfe);// 
	inti_data(0xe1,0x01);// 
	inti_data(0xe1,0x07);// 
	inti_data(0xe1,0x5a);//
	//================ Gamma curve 2.5===============//
    inti_data(0xe0,0x00);//
	inti_data(0xe0,0x66);// 
	inti_data(0xe0,0x55);// 
	inti_data(0xe0,0x00);// 
	inti_data(0xe0,0xd3);// 
	inti_data(0xe0,0x0b);// 
	inti_data(0xe0,0x12);// 
	inti_data(0xe0,0xf0);// 

	inti_data(0xe1,0x32);// 
	inti_data(0xe1,0x01);// 
	inti_data(0xe1,0x75);// 
	inti_data(0xe1,0x0f);//
	inti_data(0xe1,0xfd);// 
	inti_data(0xe1,0x02);// 
	inti_data(0xe1,0x00);// 
	inti_data(0xe1,0x69);//*/
//------------------------------------------
}
//====================================================
//  主函数
//====================================================

void main(void)
{
	 REST = 0;
    delay(5);
    REST = 1;
	delay(5);
	lcd_ini_m();
	while(1)
       {
			  dis_bar();
			  delay(100);
              Switch();
                  dis_line(0xff,0x00); 
			  delay(100);
			  Switch();
                       dis_line(0x07,0xe0); 
			  delay(100);
              Switch();
					  
                       dis_line(0x00,0x1f); 
			  delay(100);
              Switch();
                          dis_line(0xf8,0x00); 
			  delay(100);
			  Switch();
                       dis_line(0x07,0xe0); 
			  delay(100);
              Switch();
					  
                       dis_line(0x00,0x1f); 
			  delay(100);
              Switch();
                   dis_line(0xff,0xe0); 
			  delay(100);
              Switch();
                       dis_line(0xf8,0x1f); 
			  delay(100);
               Switch();
                       dis_line(0x07,0xff); 
			  delay(100);
              Switch();
                       dis_bar();
			  delay(100);
              Switch();
	
         }

}

⌨️ 快捷键说明

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