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

📄 lcd12864.txt

📁 用lcd12864显示简单的动画
💻 TXT
📖 第 1 页 / 共 2 页
字号:
{
	x=x+0xb8;
	LCD_wcode(x,1,1);
	y=y+0x40;
	LCD_wcode(y,1,1);
}
//判断X,Y轴并写入一位数据,k=1反显
void LCD_writeAword(unsigned char LCD_store,unsigned char *y,unsigned char k)
{
	if(*y==64 || *y==LCD_y)//判断是否要写X,Y轴
	{
		if(*y>=64)
		{
			LCD_set_adr(LCD_x,*y-64);
		}
		else
		{
			LCD_set_adr(LCD_x,*y);
		}
	}
	if(*y>=64)
	{
		if(k==0)
		{
			LCD_wdata(LCD_store,0,1);
		}
		else
		{
			LCD_wdata(~LCD_store,0,1);
		}
	}
	else
	{
		if(k==0)
		{
			LCD_wdata(LCD_store,1,0);
		}
		else
		{
			LCD_wdata(~LCD_store,1,0);
		}
	}
	(*y)++;
}
//a[]数据指针,w宽,h高,move 字节移动,move_little 位移(0-7),head 数据开头指针地址,trail 数据最后指针地址,k=1反显
void LCD_write(unsigned char a[],unsigned char w,unsigned char h,unsigned char k)
{
	unsigned char loop,loop2,y;
	unsigned char word_p=0;//计数指针
	y=LCD_y;
	for(loop2=0;loop2<h;loop2++)
	{	
		for (loop=0;loop<w;loop++)
		{
			LCD_writeAword(a[word_p],&y,k);
			word_p++;
		}
		LCD_x++;y=LCD_y;
	}
}
//填充子程序
void LCD_write_full(unsigned char d,unsigned char w,unsigned char h)
{
	unsigned char loop,loop2,y;
	y=LCD_y;
	for(loop2=0;loop2<h;loop2++)
	{	
		for (loop=0;loop<w;loop++)
		{
			LCD_writeAword(d,&y,0);
		}
		LCD_x++;y=LCD_y;
	}
}


void main()
{
  PCA0MD=0;        //关闭看门狗
/********************************************端口初始化************************/
  P0MDOUT=0xed;    //输出:SCK(p0.0),MOSI(p0.2),CSn(p0.3)
  P1MDOUT=0xff;    //8位输出
  P2MDOUT=0xff;   
  XBR0=0x02;       //将SPI0配置到端口
  XBR1=0x40;       //交叉开关使能
/*******************************************设定内部时钟***********************/
  OSCICN=0xc3;     //不分频
  CLKSEL=0x10;     //使用内部振荡,usb时钟6M
   EMI0CN=0x00;			//2K地址块以取模的方式映射到整个外部数据存储器的地址空间
/******************************************外部存储器XRAM接口控制初始化********/
   ET0=1;      //允许T0计数溢出时产生中断请求   
	RST=0;
	delay(1000);	
	E=0;
	RST=1;
	delay(200);
	D_I=0;R_W=1;
	CS1=1;CS2=1;
	LCD_data=0xff;
	E=1;
	delay(200);
	E=0;
//开显示
	LCD_wcode(0x3f,1,1);
//设Z坐标
	LCD_wcode(0xc0,1,1);
//设光标
	LCD_x=0;LCD_y=0;
	LCD_write_full(0x00,128,8);
  delay(50000); 
  delay(50000); 
  delay(50000); 
  delay(50000); 
		LCD_x=0;LCD_y=0;
	LCD_write((font8),128,2,0);
		LCD_x=2;LCD_y=0;
	LCD_write((font9),128,2,0);

 		LCD_x=4;LCD_y=0;
	LCD_write((font10),128,2,0);
		LCD_x=6;LCD_y=0;
	LCD_write((font11),128,2,0);
   n=100;
   i=0;
   v=0;
   RED=0;
while(1)
{	
     n--;
   	 if(n==0)
	  {n=50;
	   if(v==0){
 	  		LCD_x=0;LCD_y=0;
 	LCD_write((font8),128,2,0);
		LCD_x=2;LCD_y=0;
	LCD_write((font9),128,2,0);

 		LCD_x=4;LCD_y=0;
	LCD_write((font10),128,2,0);
		LCD_x=6;LCD_y=0;
	LCD_write((font11),128,2,0);

	  		LCD_x=1;LCD_y=0;
	        LCD_write((BMP3),64,4,0);
	    	LCD_x=5;LCD_y=0;
	        LCD_write((BMP4),64,2,0);
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	    	  		LCD_x=0;LCD_y=0;
 	LCD_write((font8),128,2,0);
		LCD_x=2;LCD_y=0;
	LCD_write((font9),128,2,0);

 		LCD_x=4;LCD_y=0;
	LCD_write((font10),128,2,0);
		LCD_x=6;LCD_y=0;
	LCD_write((font11),128,2,0);

			}
       else
	   {
 	  		LCD_x=0;LCD_y=0;
	LCD_write((font8),128,2,0);
		LCD_x=2;LCD_y=0;
	LCD_write((font9),128,2,0);

 		LCD_x=4;LCD_y=0;
	LCD_write((font10),128,2,0);
		LCD_x=6;LCD_y=0;
	LCD_write((font11),128,2,0);

	    	LCD_x=0;LCD_y=64;
	        LCD_write((BMP1),64,4,0);
		    LCD_x=4;LCD_y=64;
	        LCD_write((BMP2),64,4,0);
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	   delay(50000);  
	    LCD_x=0;LCD_y=0;
 	LCD_write((font8),128,2,0);
		LCD_x=2;LCD_y=0;
	LCD_write((font9),128,2,0);

 		LCD_x=4;LCD_y=0;
	LCD_write((font10),128,2,0);
		LCD_x=6;LCD_y=0;
	LCD_write((font11),128,2,0);
			}
  	   v=~v;
    if(i==2)
	{BLUE=1;GREEN=0;RED=0;
	i=0;}
    else if(i==1)
	{BLUE=0;GREEN=1;RED=0;i++;}
	else 
		{BLUE=0;GREEN=0;RED=1;i++;}

    }
   delay(50000);  
   delay(50000);  
}
}

⌨️ 快捷键说明

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