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

📄 uc1682.c

📁 COLOR STN UC1682 TEST CODE.
💻 C
字号:
#include <reg52.h>
#include <ABSACC.h>

sbit RAMCS=P3^0;	//ram cs=0 u3,cs=1 u4
sbit CS0=P3^1;	    //chip select, low active
sbit RS=P3^2;	    //command is low or data is high
sbit WR0=P3^3;	    //write signal,
sbit RD0=P3^4;	    //write signa2,
sbit hold=P3^7;
sbit evrup=P3^5;
sbit evrdown=P3^6;


unsigned char gain=0x30,temp=5;

void uc1682();
void writei(unsigned char ins);
void writed(unsigned char dat);
void display1(void);
void display2(void);
void display3(void);
void display4(void);
void pause1();
void delay(long tt);
void delay1(long tt);
void evr();


unsigned char rgb[]={0x00,0x1f,0x07,0xc0,0xf8,0x00,0x00,0x00,0xff,0xff};

unsigned char colorbar[]={0xff,0xff,0xf8,0x00,0xff,0xe0,0x07,0xe0,0x07,0xff,0x00,0x1f,0x00,0x00};

void main(void)
{
uc1682();
while(1)
{
    display2();
    display1();
    display3();
    display4();
    }
}


void uc1682()
{            
                      
	   writei(0xe2);            /*display control */ 
	   writei(0xeb);            /*bias*/
	   
	   writei(0x81);            /*pm*/
	   writei(gain);

       writei(0xd6);            /* set scroll start */          
	   
	   writei(0xf4);
	   writei(0x00);
	   writei(0xf5);
	   writei(0x10);
	   writei(0xf6);
	   writei(0x5f);
	   writei(0xf7);
	   writei(0x4f);
	   
	   writei(0xf9);
	   
	   writei(0xc4);
	   
       writei(0xaf);            /* disp on*/        
	    
   
	   
}

void display4(void)
{unsigned int i,j,k;
RAMCS=0;
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
k=0;
for(j=0;j<64;j++)
{
for(i=0;i<96*2;i++)
 {      writed(CBYTE[k+8192+12288]); 
 	k++;	 	
 	};
 	} 
delay(50000);

}


void display1(void)
{unsigned int i;
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
for(i=0;i<6144;i++)
 {
 	writed(0xf8);
 	writed(0x00); 	
 	}; 
delay(50000);
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
for(i=0;i<6144;i++)
 {
 	writed(0x07);
 	writed(0xc0); 	
 	};
delay(50000);
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
for(i=0;i<6144;i++)
 {
 	writed(0x00);
 	writed(0x1f); 	
 	};
delay(50000);
	}

void display2(void)
{unsigned int j,i;
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
for(i=0 ;i <32  ; i++ )
{
 for (j=0 ;j <32  ; j++ )
 {
 	writed(rgb[0]);
 	writed(rgb[1]);
 	} 	
 for (j=0 ;j <32  ; j++ )
 { 	
 	writed(rgb[2]);
 	writed(rgb[3]);
 	 }	
 for (j=0 ;j <32  ; j++ )
 {
 	writed(rgb[4]);
 	writed(rgb[5]);
 	 }	
 }
for(i=0 ;i <32  ; i++ )
{for (j=0 ;j <48  ; j++ )
 { 	
 	writed(rgb[6]);
 	writed(rgb[7]);
 	 }	
 for (j=0 ;j <48  ; j++ )
 {
 	writed(rgb[8]);
 	writed(rgb[9]);
 	 }	
}
delay(50000);
	}

void display3(void)
{unsigned int j,i;
writei(0x60);
writei(0x71);
writei(0x10);
writei(0x00);
for(i=0 ;i <64  ; i++ )
{
 for (j=0 ;j <13  ; j++ )
 { 	writed(colorbar[0]);
 	writed(colorbar[1]);
 	} 	
 for (j=0 ;j <14  ; j++ )
 { 	writed(colorbar[2]);
 	writed(colorbar[3]);
 	} 	
 for (j=0 ;j <14  ; j++ )
 {
 	writed(colorbar[4]);
 	writed(colorbar[5]);
 	} 

for (j=0 ;j <14  ; j++ )
 {
 	writed(colorbar[6]);
 	writed(colorbar[7]);
 	} 
for (j=0 ;j <14  ; j++ )
 {
 	writed(colorbar[8]);
 	writed(colorbar[9]);
 	} 
for (j=0 ;j <14  ; j++ )
 {
 	writed(colorbar[10]);
 	writed(colorbar[11]);
 	}
for (j=0 ;j <13  ; j++ )
 {
 	writed(colorbar[12]);
 	writed(colorbar[13]);
 	}  
}
delay(50000);
}

	
void writei(unsigned char ins)
{
          CS0=0;
		  RS=0; 
	      RD0=1;
	      P1=ins; 
		  WR0=0;    
          WR0=1;
          CS0=1;   
}

void writed(unsigned char dat)
{
          CS0=0;
          RS=1;  
	      RD0=1; 
	      P1=dat; 
		  WR0=0;   
          WR0=1;
          CS0=1;  
}

void delay(long tt)
{while(tt>0)
    {tt--;pause1();evr();}

}

void delay1(long tt)
{while(tt>0)
    {tt--;}

}


void evr()
{   
 while(evrup==0)
   {   delay1(1000);
        if (evrup==0) 
           {  while(evrup==0);
              gain=gain+temp;
              writei(0x81);
              writei(gain);                      
           }
    }
 while(evrdown==0)
   {   delay1(1000);
        if (evrdown==0) 
           {  while(evrdown==0);
              gain=gain-temp;
              writei(0x81);
              writei(gain);                      
           }
    }
}

void pause1()
{ char k;
 k=0;  
 while(hold==0)
   {   delay1(1000);
        if (hold==0) 
           { k=0;
              while(hold==0);
              k=1;        
           }
    }
    if (k==1) 
    {while(hold==1) evr();}
    k=0;
    while(hold==0);
}

⌨️ 快捷键说明

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