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

📄 lcd12864.c

📁 该模板使用于周立功公司研发的EasyARM2100系列开发板
💻 C
📖 第 1 页 / 共 2 页
字号:
						{
							if(err < 0)
							{
								show_dot(x - 1,y + 1);
								x -= 1;
								y += 1;
								err += (dy + dx);
							}
							else
							{
								show_dot(x,y + 1);
								y += 1;
								err += dx;
							}
						}
					}
	}	
	else
	{
		dx = x; dy = x1;
		if(x < x1)
		{
			dx = x1;
			dy = x;
		}
		for(;dy < dx;dy++)
			show_dot(dy,y);
	}
}

void Show_Picture_data(uint8 data,uint8 x,uint8 y)
{
	
	uint8 w=8,h=16;
	switch(data)
	{
		case '0':
		show_picture(ASCII_0,x,y,w,h);
		break;
		case '1':
		show_picture(ASCII_1,x,y,w,h);
		break;
		case '2':
		show_picture(ASCII_2,x,y,w,h);
		break;
		case '3':
		show_picture(ASCII_3,x,y,w,h);
		break;
		case '4':
		show_picture(ASCII_4,x,y,w,h);
		break;
		case '5':
		show_picture(ASCII_5,x,y,w,h);
		break;
		case '6':
		show_picture(ASCII_6,x,y,w,h);
		break;
		case '7':
		show_picture(ASCII_7,x,y,w,h);
		break;
		case '8':
		show_picture(ASCII_8,x,y,w,h);
		break;
		case '9':
		show_picture(ASCII_9,x,y,w,h);
		break;
		
		case 'A':
		show_picture(asc_A,x,y,w,h);
		break;
		case 'B':
		show_picture(asc_B,x,y,w,h);
		break;
		case 'C':
		show_picture(asc_C,x,y,w,h);
		break;
		case 'D':
		show_picture(asc_D,x,y,w,h);
		break;
		case 'E':
		show_picture(asc_E,x,y,w,h);
		break;
		case 'F':
		show_picture(asc_F,x,y,w,h);
		break;
		case 'G':
		show_picture(asc_G,x,y,w,h);
		break;
		case 'H':
		show_picture(asc_H,x,y,w,h);
		break;
		case 'I':
		show_picture(asc_I,x,y,w,h);
		break;
		case 'J':
		show_picture(asc_J,x,y,w,h);
		break;
		case 'K':
		show_picture(asc_K,x,y,w,h);
		break;
		case 'L':
		show_picture(asc_L,x,y,w,h);
		break;
		case 'M':
		show_picture(asc_M,x,y,w,h);
		break;
		case 'N':
		show_picture(asc_N,x,y,w,h);
		break;
		case 'O':
		show_picture(asc_O,x,y,w,h);
		break;
		case 'P':
		show_picture(asc_P,x,y,w,h);
		break;
		case 'Q':
		show_picture(asc_Q,x,y,w,h);
		break;
		case 'R':
		show_picture(asc_R,x,y,w,h);
		break;
		case 'S':
		show_picture(asc_S,x,y,w,h);
		break;
		case 'T':
		show_picture(asc_T,x,y,w,h);
		break;
		case 'U':
		show_picture(asc_U,x,y,w,h);
		break;
		case 'V':
		show_picture(asc_V,x,y,w,h);
		break;
		case 'W':
		show_picture(asc_W,x,y,w,h);
		break;
		case 'X':
		show_picture(asc_X,x,y,w,h);
		break;
		case 'Y':
		show_picture(asc_Y,x,y,w,h);
		break;
		case 'Z':
		show_picture(asc_Z,x,y,w,h);
		break;
		
	/*	
		
		
		
		case 'a':
		show_picture(asc_a,x,y,w,h);
		break;
		case 'b':
		show_picture(asc_b,x,y,w,h);
		break;
		case 'c':
		show_picture(asc_c,x,y,w,h);
		break;
		case 'd':
		show_picture(asc_d,x,y,w,h);
		break;
		case 'e':
		show_picture(asc_e,x,y,w,h);
		break;
		case 'f':
		show_picture(asc_f,x,y,w,h);
		break;
		case 'g':
		show_picture(asc_g,x,y,w,h);
		break;
		case 'h':
		show_picture(asc_h,x,y,w,h);
		break;
		case 'i':
		show_picture(asc_i,x,y,w,h);
		break;
		case 'j':
		show_picture(asc_j,x,y,w,h);
		break;
		case 'k':
		show_picture(asc_k,x,y,w,h);
		break;
		case 'l':
		show_picture(asc_l,x,y,w,h);
		break;
		case 'm':
		show_picture(asc_m,x,y,w,h);
		break;
		case 'n':
		show_picture(asc_n,x,y,w,h);
		break;
		case 'o':
		show_picture(asc_o,x,y,w,h);
		break;
		case 'p':
		show_picture(asc_p,x,y,w,h);
		break;
		case 'q':
		show_picture(asc_q,x,y,w,h);
		break;
		case 'r':
		show_picture(asc_r,x,y,w,h);
		break;
		case 's':
		show_picture(asc_s,x,y,w,h);
		break;
		case 't':
		show_picture(asc_t,x,y,w,h);
		break;
		case 'u':
		show_picture(asc_u,x,y,w,h);
		break;
		case 'v':
		show_picture(asc_v,x,y,w,h);
		break;
		case 'w':
		show_picture(asc_w,x,y,w,h);
		break;
		case 'x':
		show_picture(asc_x,x,y,w,h);
		break;
		case 'y':
		show_picture(asc_y,x,y,w,h);
		break;
		case 'z':
		show_picture(asc_z,x,y,w,h);
		break;
	
		
		
		
		
		case ':':
		show_picture(maohao,x,y,w,h);
		break;
		
		case '_':
		show_picture(Xhx,x,y,w,h);
		break;
		
		case '|':
		show_picture(Shx,x,y,w,h);
		break;
		
		case '.':
		show_picture(dian,x,y,w,h);
		break;
		default:
		show_picture(ASCII_0,x,y,w,h);
		break;
			   */
	}
	

}


void Show_Str(uint8 *str,uint8 x,uint8 y,uint8 lenth)
{
	uint8 i;
	for(i=0;i<lenth;i++)
	{
		Show_Picture_data(str[i],x,(y+(8*i)));
	}

}

void lcd_test(void)
{   
 init_LCD();
 clr_LCD_screen();
  while(1)
   {
   show_picture(rzjdq2,0,0,128,64);
   	     // DelayNS(300);
   		//  clr_LCD_screen();
   	      DelayNS(300);
   }
}



void clr_LCD(uint8 Bselect_area)////// clear  the LCD_screen
{
if(1==Bselect_area)
{
  
 IO0SET|=LCD_CS1;
 IO0SET|=LCD_CS2;
 IO0SET|=LCD_RW;
 IO0CLR|=LCD_E;
 IO0CLR|=LCD_D0;
 IO0CLR|=LCD_D2;
 IO0CLR|=LCD_D3;
 IO0CLR|=LCD_D5;
 IO0CLR|=LCD_D7;
 IO1SET|=LCD_RS;
 IO1SET|=LCD_D1;
 IO1SET|=LCD_D4;
 IO1SET|=LCD_D6; 	    	
 lcd_delay(50);
 IO0CLR|= LCD_CS1;
 IO0CLR|=LCD_CS2;
 IO0CLR|=LCD_RW;
 IO0SET|=LCD_E;
 IO0SET|=LCD_D0;
 IO0SET|=LCD_D2;
 IO0SET|=LCD_D3;
 IO0SET|=LCD_D5;
 IO0SET|=LCD_D7;
 IO1CLR|=  LCD_RS;
 IO1CLR|=  LCD_D1;
 IO1CLR|=  LCD_D4;
 IO1CLR|=  LCD_D6;  	   
 IO1SET|=  LCD_RS;
 IO1SET|=  LCD_D1;
 IO1SET|=  LCD_D4;
 IO1SET|=  LCD_D6;
 lcd_delay(50);
      
}

}




/****************************************************************************/
//键扫描并处理
/****************************************************************************/

void ReadKeyProcess(void)

 {  
     
    temp_value=0;
 
   if((IO0PIN & UP ) == 0)
   
   temp_value|=0x01;
   else
   temp_value&=0xfe;
   
   
    if((IO0PIN & DOWN ) == 0)
   
   temp_value|=0x02;
   else
   temp_value&=0xfd;
   
   
    if((IO0PIN & CANCEL ) == 0)
   
   temp_value|=0x04;
   else
   temp_value&=0xfb;
   
   
  
    if((IO0PIN & ENTER ) == 0)
   
   temp_value|=0x08;
   else
   temp_value&=0xf7;
   
     temp_value&=0x0f;
      
       if(temp_value)                     //如果有键按下
         {
          if(Bkey_delay)                   //延时去抖动,位标识,如果本位为1,则表示键有效
             {
             //------------------------
             if(temp_value==key_value0)     //两次键值相等?
                 {
 	              if (key_delay==0)         //正常延时,
	                 {
				  		Bkey_been_down=1;   		              
                 	 }
           	      else
           	         {
             	        key_delay--;
             	     }
                 } 
             else                 //不等则为干扰
                 {
                  Bkey_delay=0;
                  key_value=0x00;
                  Bread_key=0;	 
                 }
             //------------------------
            }
         else
            {
             Bkey_delay=1;
             key_value=0;
             key_value0=temp_value;
             key_delay=1;
            }
         }
      else   //没有键下按,表示键释放,则处理上次键值,//no key down
        {
		  if(Bkey_been_down)
            {
             Bkey_been_down=0;
             Bkey_delay=0;
             key_value=key_value0;	
             Bread_key=0;    
	        }
        }
 
 }
 
  void key_test(void)
{
 if(Bread_key==1)
  ReadKeyProcess();

   Bread_key=1;
if ((key_value&0x01)||((key_value&0x02))||((key_value&0x04))||((key_value&0x08)))
      { 
	   key_value=0;
   if    ( (IO1SET&RY4) == 0 ) IO1SET |= RY4;	// 控制LED4点亮
       else  IO1CLR |= RY4;    		 	// 控制LED4熄灭
	  }
									
}
 
void ReadKey(void)

 {  
  
    temp_value=0;
 
   if((IO0PIN & UP ) == 0)
     {
     delay(200);
       if((IO0PIN & UP ) == 0)
         {
          while((IO0PIN & UP ) == 0);
          temp_value|=0x01; 
         }
     } 
   else
     {
     temp_value&=0xfe;
     }
   
   
   if((IO0PIN & DOWN ) == 0)
     {
       delay(200);
       if((IO0PIN & DOWN ) == 0)
       {
       while((IO0PIN & DOWN ) == 0);
       temp_value|=0x02;  
       }
     }
   else
     {
     temp_value&=0xfd;
     }
     
   
   if((IO0PIN & CANCEL ) == 0)
     {
       delay(200);
       if((IO0PIN & CANCEL ) == 0)
       {
       while((IO0PIN & CANCEL ) == 0);
       temp_value|=0x04;
       }
     }
   else
     {
      temp_value&=0xfb;
     }
   
  
    if((IO0PIN & ENTER ) == 0)
     {
      delay(200);
       if((IO0PIN & ENTER ) == 0)
         {
          while((IO0PIN & ENTER ) == 0);
          temp_value|=0x08;   
         }
     }
     else
     {
     temp_value&=0xf7;
     }    
// return temp_value;
 }







⌨️ 快捷键说明

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