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

📄 signal.c

📁 单片机51环境下的字库代码122*32点阵的液晶显示
💻 C
📖 第 1 页 / 共 3 页
字号:
	unsigned char length;

	length = 8;
	if ((col+length) < MAXCOL)
	{
		 LCDWriteCom1(col);
		LCDWriteCom1(0xb8|(i&3));	//设定显示页
		for(j=col; j<col+length; j++)
			LCDWriteDat1( 0xff-(*(pdat+(j-col))) );
		return;
	}
	if (((col+length) >= MAXCOL)&&(col<MAXCOL))
	{
		LCDWriteCom1(col);
		LCDWriteCom1(0xb8|(i&3));	//设定显示页
		for(j=col; j<MAXCOL; j++)
			LCDWriteDat1(0xff-(*(pdat+(j-col))) );
		
		LCDWriteCom2(0);
		LCDWriteCom2(0xb8|(i&3));	//设定显示页
		for(j=0; j<MAXCOL; j++)
		{
			LCDWriteDat2(0xff-(*(pdat+(MAXCOL-col+j))) );
			if ((MAXCOL-col+j) >= length)
				break;
		}
		return;
	}
	else
	{
		LCDWriteCom2(col-MAXCOL);
		LCDWriteCom2(0xb8|(i&3));	//设定显示页
		for(j=col-MAXCOL; j<MAXCOL; j++)
		{
			LCDWriteDat2(0xff-(*(pdat+(j-col+MAXCOL))) );
			if ((j-col+MAXCOL) >= length)
				break;
		}
	}
}
//反字符串显示
void LcdTextOut_Opposition(char col, char page, char *string)
{
	char charp;
	int length;
	char scol;
	
	charp = 0;
	length = strlen(string);
	for (scol=col; scol<120; scol+=8)
	{
		LCDDrawDatM2_Opposition( scol, page, CharTable+(*(string+charp)*8) );
		charp++;
		if (charp >= length)
			break;
	}
}
//字符串显示
void LcdTextOut(char col, char page, char *string)
{
	char charp;
	int length;
	char scol;
	
	charp = 0;
	length = strlen(string);
	for (scol=col; scol<120; scol+=8)
	{
		LCDDrawDatM2( scol, page, CharTable+(*(string+charp)*8) );
		charp++;
		if (charp >= length)
			break;
	}
}

void LCDTextOutChar( char col, char page, unsigned char d )
{
	LCDDrawDatM2( col, page, CharTable+d*8 );
}
*/

void signal(unsigned int dat)
{
 

	  switch(dat)
	  {
	  case 1:LcdTextOut(1, 1,"SIGNAL: HDTV1");break;//1
	  case 3:LcdTextOut(1, 1,"SIGNAL: HDTV2");break;//2
	  case 5:LcdTextOut(1, 1,"SIGNAL: HDTV3");break;//3
	  case 7:LcdTextOut(1, 1,"SIGNAL: COLOR");break;//4
	  case 9:LcdTextOut(1, 1,"SIGNAL: STEP ");break;//5
	  case 11:LcdTextOut(1, 1,"SIGNAL: GRID ");break;//6
	  case 13:LcdTextOut(1, 1,"SIGNAL: RED  ");break;//7
	  case 15:LcdTextOut(1, 1,"SIGNAL: GREEN");break;//8
	  case 17:LcdTextOut(1, 1,"SIGNAL: BLUE ");break;//9

	  case 2:LcdTextOut(1, 1,"SIGNAL: 50HDTV1");break;
	  case 4:LcdTextOut(1, 1,"SIGNAL: 50HDTV2");break;
	  case 6:LcdTextOut(1, 1,"SIGNAL: 50HDTV3");break;
	  case 8:LcdTextOut(1, 1,"SIGNAL: 50COLOR");break;
	  case 10:LcdTextOut(1, 1,"SIGNAL: 50STEP ");break;
	  case 12:LcdTextOut(1, 1,"SIGNAL: 50GRID ");break;
	  case 14:LcdTextOut(1, 1,"SIGNAL: 50RED  ");break;
	  case 16:LcdTextOut(1, 1,"SIGNAL: 50GREEN");break;
	  case 18:LcdTextOut(1, 1,"SIGNAL: 50BLUE ");break;
	  
     }
}

void output(unsigned int dat)
{
  unsigned int mm;
  mm=dat;
	switch(mm)
	{case 1:LcdTextOut(1, 3,"OUTPUT:NTSC Y/C ");break;
	 case 2:LcdTextOut(1, 3,"OUTPUT: NTSC      ");break;
     case 3:LcdTextOut(1, 3,"OUTPUT: PAL Y/C   ");break;
	 case 4:LcdTextOut(1, 3,"OUTPUT: PAL       ");break;
	 case 5:LcdTextOut(1, 3,"OUTPUT: 480P      ");break;
	 case 6:LcdTextOut(1, 3,"OUTPUT: 720P      ");break;
	 case 7:LcdTextOut(1, 3,"OUTPUT: 1080I     ");break;
	
	}
}

void lcd_sig1(char top_bottom)
{
  switch(top_bottom)
  {
  case 1:LcdTextOut(1, page,"HDTV1");LcdTextOut(61, page,"50HDTV1");page++;break;//1
  case 2:LcdTextOut(1, page,"HDTV2");LcdTextOut(61, page,"50HDTV2");page++;break;//2
  case 3:LcdTextOut(1, page,"HDTV3");LcdTextOut(61, page,"50HDTV3");page++;break;//3
  case 4:LcdTextOut(1, page,"COLOR");LcdTextOut(61, page,"50COLOR");page++;break;//4
  case 5:LcdTextOut(1, page,"STEP ");LcdTextOut(61, page,"50STEP ");page++;break;//5
  case 6:LcdTextOut(1, page,"GRID ");LcdTextOut(61, page,"50GRID ");page++;break;//6
  case 7:LcdTextOut(1, page,"RED  ");LcdTextOut(61, page,"50RED  ");page++;break;//7
  case 8:LcdTextOut(1, page,"GREEN");LcdTextOut(61, page,"50GREEN");page++;break;//8
  case 9:LcdTextOut(1, page,"BLUE ");LcdTextOut(61, page,"50BLUE ");page++;break;//9
  }
 
}

void lcd_sig2(char temp,char page)
{
  if(left_right==0)
 {
	  switch(temp)
	  {
	  case 1:LcdTextOut_Opposition(1, page,"HDTV1");break;//1
	  case 2:LcdTextOut_Opposition(1, page,"HDTV2");break;//2
	  case 3:LcdTextOut_Opposition(1, page,"HDTV3");break;//3
	  case 4:LcdTextOut_Opposition(1, page,"COLOR");break;//4
	  case 5:LcdTextOut_Opposition(1, page,"STEP ");break;//5
	  case 6:LcdTextOut_Opposition(1, page,"GRID ");break;//6
	  case 7:LcdTextOut_Opposition(1, page,"RED  ");break;//7
	  case 8:LcdTextOut_Opposition(1, page,"GREEN");break;//8
	  case 9:LcdTextOut_Opposition(1, page,"BLUE ");break;//9
	 
	  }
 }
 else {
      switch(temp)
	  {
	  case 1:LcdTextOut_Opposition(61, page,"50HDTV1");break;
	  case 2:LcdTextOut_Opposition(61, page,"50HDTV2");break;
	  case 3:LcdTextOut_Opposition(61, page,"50HDTV3");break;
	  case 4:LcdTextOut_Opposition(61, page,"50COLOR");break;
	  case 5:LcdTextOut_Opposition(61, page,"50STEP ");break;
	  case 6:LcdTextOut_Opposition(61, page,"50GRID ");break;
	  case 7:LcdTextOut_Opposition(61, page,"50RED  ");break;
	  case 8:LcdTextOut_Opposition(61, page,"50GREEN");break;
	  case 9:LcdTextOut_Opposition(61, page,"50BLUE ");break;
	  }
     }
 
}

void selectsig(unsigned char mm)
{  
   unsigned char temp;
   
	   if(sig==mm){}
	   else if(sig>mm)
	   {
	   P2_7=0;P1_1=0;
	   LCDClear();LcdTextOut(10, 2,"Loading....");
	   temp=sig-mm;back(1);goup(temp);okok(1);
	   delay(80000);P1_1=1;P2_7=1;sig=mm;
	 }
	   else if(sig<mm)
	   {
	   P2_7=0;P1_1=0;
	   LCDClear();LcdTextOut(10, 2,"Loading....");
	   temp=mm-sig;back(1);down(temp);okok(1);
	   delay(80000);P1_1=1;P2_7=1;sig=mm;
	 }
   
}

void lcdsignal()
{ 
  char i;
  page=0;
  if(*bottom>*top)
  {
     for(i=*top;i<=*top+3;i++)
     { lcd_sig1(i);}
  } 
  else if(*bottom<*top)
  {
     for(i=*top;i<=9;i++)
     { lcd_sig1(i);}
     for(i=1;i<=*bottom;i++)
     { lcd_sig1(i);}
  }
  page=0;
  
   if(left_right==1){
	       if(lcdtemp>=*top){page=lcdtemp-*top;}
	      else {page=3-(*bottom-lcdtemp);}
	      lcd_sig2(lcdtemp,page);
              }
   else {
         if(lcdtemp>=*top){page=lcdtemp-*top;}
	      else {page=3-(*bottom-lcdtemp);}
	      lcd_sig2(lcdtemp,page);
        }
    
}

void signalcontrol()
{
  char key;

  while(1)
  {
   if(count==0){count=1;if(left_right==1){right=1;runflag=1;}
               LCDClear();lcdsignal();}
   else if(count==111){break;}
   key=Key_Scan();
   j++;if(j>150000){j=0;count=111;}
  switch(key)
  {
   case key_up:
        if( (*top==1)&&(lcdtemp==1) ){top=buf+8;lcdtemp=9;if(*bottom==1){bottom=buf+8;}
		                                                  else bottom--;} 
		else if( (*top==1)&&(*bottom==4)&&(lcdtemp!=1) ) {lcdtemp--;}
		else if( (*top>*bottom)&&(lcdtemp==*top) ){top--;lcdtemp--;if(*bottom==1){bottom=buf+8;}
		                                                           else bottom--;}
        else if( (*top>*bottom)&&(lcdtemp!=*top) ){if(lcdtemp==1){lcdtemp=9;}
		                                           else lcdtemp--;}
		else if(*top==lcdtemp){lcdtemp--;bottom--;top--;}
		else {if(lcdtemp==1){lcdtemp=9;}
		      else {lcdtemp--;}
			  }
			
   break;
   case key_down:
        if( (*bottom==9)&&(lcdtemp==9) ){bottom=buf;lcdtemp=1;if(*top==9){top=buf;}
		                                                     else top++;}
		else if( (*bottom==9)&&(*top==6)&&(lcdtemp==6) ){lcdtemp++;}
		else if( (*top>*bottom)&&(*bottom==lcdtemp) ){bottom++;lcdtemp++;if(*top==9){top=buf;}
		                                                                 else top++;}
		else if( (*top>*bottom)&&(*bottom!=lcdtemp) ){if(lcdtemp==9){lcdtemp=1;}
		                                              else lcdtemp++;}
	    else if(*bottom==lcdtemp){lcdtemp++;bottom++;top++;}
		else {if(lcdtemp==9){lcdtemp=1;}
		      else {lcdtemp++;}
			  }
        
   break;
   case key_left:
                 left_right=~left_right;
           
   break; 
   case key_right:
                  left_right=~left_right;
      
   break;
   case key_ok:  count=111;
                if(left_right==0){ww=lcdtemp*2-1;}
           	    else {ww=lcdtemp*2;}
                selectsig(ww);
   break;
   case key_back:count=111;
   break;
   }
   }
 
}
void outputcontrol1()
{
   if(out==1){} 
   else if( (out==5)||(out==6)||(out==7) )
   {
      P2_7=0;P1_1=0;
	  LCDClear();LcdTextOut(10, 2,"Loading....");
	  abc();down(1);goright(1);
      goright(1);
     down(3);ok(1);down(1);goright(1);
     ok(1);abc();
	 hello(sig);out=1;
	 delay(80000);P1_1=1;P2_7=1;
   }
   else if(out==2||out==3||out==4)
   {
	  P2_7=0;P1_1=0;
	  LCDClear();LcdTextOut(10, 2,"Loading....");
	 abc();down(1);goright(1);down(2);goright(1);
     ok(1);abc();
	 hello(sig);out=1;
	 delay(80000);P1_1=1;P2_7=1;
   } 
								  
}
void outputcontrol2()
{
 if(out==2){}
 else if( (out==5)||(out==6)||(out==7) )
 {
    P2_7=0;P1_1=0;
    LCDClear();LcdTextOut(10, 2,"Loading....");
    abc();down(1);goright(1);
     goright(1);
    down(3);ok(1);down(1);goright(1);
    ok(1);abc();
	hello(sig);out=2;
    delay(80000);P1_1=1;P2_7=1;
 }
  else if(out==1||out==3||out==4)
  {
 P2_7=0;P1_1=0;
       LCDClear();LcdTextOut(10, 2,"Loading....");
       abc();down(1);goright(1);down(2);goright(1);down(1);
      ok(1);abc();
	hello(sig);out=2;
      delay(80000);P1_1=1;P2_7=1;
   } 
								
}
void outputcontrol3()
{
     if(out==3){}
     else if( (out==5)||(out==6)||(out==7) )
     {
P2_7=0;P1_1=0;
   LCDClear();LcdTextOut(10, 2,"Loading....");
	 abc();down(1);goright(1);
       goright(1);
       down(3);ok(1);down(1);goright(1);
 down(4);goup(1);
        ok(1);abc();
   hello(sig);out=3;
        delay(80000);P1_1=1;P2_7=1;
     }
   else if(out==1||out==2||out==4)
  {
  P2_7=0;P1_1=0;
LCDClear();LcdTextOut(10, 2,"Loading....");
	 abc();down(1);goright(1);down(2);goright(1);
	    down(4);goup(1);
       ok(1);abc();
	hello(sig);out=3;
       delay(80000);P1_1=1;P2_7=1;
 } 
}
void outputcontrol4()
{
 if(out==4){}
  else if( (out==5)||(out==6)||(out==7) )
 {
    P2_7=0;P1_1=0;
   LCDClear();LcdTextOut(10, 2,"Loading....");
    abc();down(1);goright(1);
     goright(1);
    down(3);ok(1);down(1);goright(1);
   down(4);
     ok(1);abc();
   hello(sig);out=4;
  delay(80000);P1_1=1;P2_7=1;
  }
 else if(out==1||out==2||out==3)
 {
   P2_7=0;P1_1=0;
     LCDClear();LcdTextOut(10, 2,"Loading....");
   abc();down(1);goright(1);down(2);goright(1);
   down(4);
    ok(1);abc();
   hello(sig);out=4;
  delay(80000);P1_1=1;P2_7=1;
 } 
}
void outputcontrol5()
{
 if(out==5){}
else {
      P2_7=0;P1_1=0;
  LCDClear();LcdTextOut(10, 2,"Loading....");
       abc();
 down(1);
   goright(1);
	   down(1);
     goright(1);

⌨️ 快捷键说明

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