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

📄 10732.c

📁 uc1612 LCD 驱动例程实现各种电检测试画面
💻 C
字号:
/*lcm msgf10732-01*/
/*uc1612*/
/* 80 mode  */
/*  81*77  */


#include <reg51.h>
#include <intrins.h>
#include <common.h>
#include <def.h>
#include <font.h>

unsigned char code page_c[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,
                        0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19};

code adj_vop[194]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
                   0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
                   0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
				   0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
				   0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
                   0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,
		           0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
		           0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
		           0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
		           0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
		           0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,
                   0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
				   0xc0,0xc1};


sbit RST=P2^2;
sbit CS0=P2^1;
sbit CD=P2^0;
sbit WR0=P2^3;
sbit WR1=P2^4;

sbit K1=P2^5;
sbit K2=P2^6;
sbit K3=P2^7;


void init_lcd()
{
   CS0=0;
   delay1ms(200);
   RST=1;
   delay1ms(200);
   RST=0;
   delay1ms(200);
   RST=1;
   delay1ms(200);
   write_com(0xE2);//system reset
   delay1ms(40);

   write_com(0xf1);//set duty 1/80
   write_com(0x4f);

 //  write_com(0x84);//set partial display

 //  write_com(0x24);//set t.c

 //  write_com(0x28);//set panel loading

 //  write_com(0x2f);//set pump

   write_com(0x81);//set vop
   write_com(120);//vop=10v

   write_com(0x89);//set ram address control
 //  write_com(0xa2);//set line rate
   write_com(0xeb);//set bias=1/9
   write_com(0xc0);//set lcd mapping
   write_com(0xd6);//set gray scale

   write_com(0x00);//set colomn address

   write_com(0x60);//set row address
   write_com(0x70);
   write_com(0xaf);//set display enable
   delay1ms(20);
}


void write_data(uchar dat)
{
    busy();
	CS0=0;
	CD=1;
	WR1=1;
	P0=dat;
	WR0=0;
	delay1ms(0);
	WR0=1;
	CS0=1;

}

void write_com(uchar com)
{
    busy();
	CS0=0;
    CD=0;
	WR1=1;
	P0=com;
	WR0=0;
	delay1ms(0);
	WR0=1;
	delay1ms(0);
	CS0=1; 
}

void busy()
{
	_nop_();
	_nop_();
}


void delay1ms(uint t)
{
	register int i,j;
	for(i=0;i<t;i++)
	for(j=0;j<125;j++);
}




void locatexy(uchar page,uchar slsb,uchar smsb)
{
  write_com(page);
  write_com(slsb);
  write_com(smsb);
}


void clrram()
{
  uint i,j;
  	  write_com(0x00);
      write_com(lsb);
      write_com(msb);
      for(i=0;i<80;i++)
      {
        for(j=0;j<26;j++)
        {

         write_data(0x00);
        }

      }
  
}



void font()
{

  uint i,j,k;
  clrram();
  locatexy(0x00,0x60,0x70);
  for(j=0;j<11;j++)
  {
     for(i=0;i<26;i++)
	 {
	   write_data(font1[i]);
	 }
  }

  for(j=0;j<26;j++)
  {
     write_data(0x00);
  }

  for(k=0;k<6;k++)
  {
     for(j=0;j<11;j++)
     {
       for(i=0;i<21;i++)
	   {
	     write_data(font1[i]);
	   }
     }
    
  }
  for(i=0;i<10;i++)
  {
    for(j=0;j<26;j++)
	{
	   write_data(font2[j]);
	}
  }
}


void displayon()
{
  uint i,j;
  	  write_com(0x00);
      write_com(lsb);
      write_com(msb);
  for(i=0;i<80;i++)
  {
    for(j=0;j<26;j++)
	{


	  write_data(0xff);
	}
  }

  
}

void  displayoff()
{
   uint i,j;
   	   write_com(0x00);
       write_com(lsb);
       write_com(msb);
   for(i=0;i<80;i++)
   {
     for(j=0;j<26;j++)
	 {

       write_data(0x00);
	 }
   }
}

void frame8111(uchar page_c,uchar slsb,uchar smsb)
{
   uint i,j,k,m;
   uchar s_slsb,s_smsb;
   s_smsb=smsb;

   locatexy(page_c,slsb,smsb);
   for(j=0;j<21;j++)
   {
	  write_data(0xff);
   }
 

  
   for(i=1;i<10;i++)
   {
	   
	   if(s_slsb==0x6f)
	   {
	     //s_slsb=0x60;
		 s_smsb=smsb+1;
	   }
	     s_slsb=slsb+i;
		 if(s_slsb>0x6f)//(s_slsb<<4)>240
		 {
		  s_slsb=s_slsb-16;
		 }
	  
        
        locatexy(page_c,s_slsb,s_smsb);
	    write_data(0x03);
	    for(k=1;k<20;k++)
	    { 
	      write_data(0x00);
	    }
	      write_data(0x03);
    }
   
    if(s_slsb+1>0x6f)
	{
	  s_slsb=0x60;
 	  s_smsb=s_smsb+1;
	}
    locatexy(page_c,s_slsb+1,s_smsb);
    for(m=0;m<21;m++)
    {
       write_data(0xff);
    }
 
       
}

void frame()
{
  clrram();
   frame8111(0x00,0x60,0x70);
   frame8111(0x00,0x6c,0x70);
   frame8111(0x00,0x03,0x72);
   frame8111(0x00,0x62,0x72);
   frame8111(0x00,0x6d,0x72);
   frame8111(0x00,0x68,0x73);
   frame8111(0X00,0x63,0x74);
   frame8111(0x00,0x6c,0x74);
   
}

void dots1()
{
  uint i,j,k;
  clrram();
  locatexy(page_CS,lsb,msb);
  for(i=0;i<80;i++)
  {
    for(j=0;j<26;j++)
	{
	   write_data(0xcc);
	}
    for(k=0;k<26;k++)
    {
      write_data(0x33);
    }
  }

}

void dots2()
{
   uint i,j,k;
   clrram();
   locatexy(page_CS,lsb,msb);
   for(i=0;i<80;i++)
   {
     for(j=0;j<26;j++)
	 {
	   write_data(0x33);
	 }
     for(k=0;k<26;k++)
     
     {
       write_data(0xcc);
     }
   }

}

/*
void gray(uchar page_c,uchar slsb,uchar smsb)
{
   uint i,j,k,m;
   locatexy(page_c,slsb,smsb);
   for(j=0;j<21;j++)
   {
	  write_data(0xff);
   }
   for(i=1;i<10;i++)
   {
    
     locatexy(page_c,slsb+1,smsb);
	 write_data(0x80);
	 for(k=0;k<20;k++)
	 {
	   locatexy(page_c+k,slsb+k+1,smsb);
	   write_data(0x00);
	 }
	 write_data(0x01);
   }
   locatexy(page_c,slsb+10,smsb);
   for(m=0;m<21;m++)
   {
     write_data(0xff);
   }
   
   
}
*/

uchar kscan()
{
  uint i=44;
	while(1)
	{
		if(K1==0|K2==0|K3==0)
		{
			if(K1==0)
			{
				delay1ms(10);
				if(K1==1)
				{
					delay1ms(10);
					return(1);
				}
			}
			if(K2==0)
			{
				delay1ms(10);
				if(K2==1)
				{
					delay1ms(10);
					if(i>193)i=0;
					write_com(0x81);
					write_com(adj_vop[i]);
					i++;
				}
			}
			if(K3==0)
			{
				delay1ms(10);
				if(K3==1)
				{
					delay1ms(10);
					if(i==0)
					   {
						write_com(0x81);
						write_com(adj_vop[i]);
						i=193;
						}
					else {
						write_com(0x81);
						write_com(adj_vop[i]);
						i--;
						}
				}
			}
		}
	}
}


main() 
{
	uchar key=0;
	init_lcd();
    while(1)
    {
      	key= key+kscan();
      	if(key>6) key=1;
      	switch(key)
       	{
          	case 1:{ font(); }break;
      		case 2:{ displayon(); }break;
      	    case 3:{ displayoff(); }break;
      		case 4:{ frame();}break;
     		case 5:{ dots1(); }break;
       		case 6:{ dots2(); }break;
          //case 8:{ gray(0x00,0x60,0x70);}break;
       		default:break;
		}
	}
}

⌨️ 快捷键说明

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