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

📄 lcd.txt

📁 Atmega128单片机的LCD显示 开发环境ICCAVR
💻 TXT
📖 第 1 页 / 共 2 页
字号:
		    {
			 ocmj_write(0xf3);
			 ocmj_write(x);
			 ocmj_write(y);
			 ocmj_write(*bmp_p);
			 bmp_p++;
			 x++;
			}
		  x-=width;
		  y++;	
		 }
	 }	 
/*       传送LCD内部汉字数据到LCD         */
/*       x:0x00~0x07 y:0x00~0x03          */
void hz_tran(unsigned char x,unsigned char y,unsigned char *hz_p)
    {
	 x+=2;
     while((*hz_p)!=0)
	    {
		 ocmj_write(0xf0);
		 ocmj_write(x);
		 ocmj_write(y);
		 ocmj_write(*hz_p-0xa0);
		 hz_p++;
		 ocmj_write(*hz_p-0xa0);
		 hz_p++;
		 if(x<0x09)
 		    x++;
		 else
		    {
			 x=0x02;
			 y++;
			}	
		}
	}
/*          传送ASCII字母到LCD            */
/*          x:0x00~0x0f y:0~64            */	
void asc_tran(unsigned char x,unsigned char y,unsigned char *asc_p)
    {
	 x+=4;
	 while((*asc_p)!=0)
	    {
		 ocmj_write(0xf1);
		 ocmj_write(x);
		 ocmj_write(y);
		 ocmj_write(*asc_p);
		 asc_p++;
		 if (x<0x13) 
		    x++;
		 else
		   {
		    x=0x04;
			y+=8;		    
		   }	
		}	
	 }
/*            画点函数              */
void pset(unsigned char x,unsigned char y)
     {
	  ocmj_write(0xf2);
	  ocmj_write(x+32);
	  ocmj_write(y);
	 }	
/*             画线函数          */	 
void line(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2)
{
    unsigned char t;
	signed int xerr=0,yerr=0;
	signed int delta_x,delta_y,distance;
	signed char incx,incy;

/* 	计算两个方向的长度 */
	delta_x=x2-x1;
	delta_y=y2-y1;

/* 计算增量的方向,增量为"0"表示为垂直或水平线 */
	if(delta_x>0) 
	     incx=1;
	else 
	    {
		 if( delta_x==0 )
		      incx=0;
		 else 
		      {
			   incx=-1;
			   delta_x =-delta_x;
			  }
		}
	if(delta_y>0) 
	      incy=1;
	else 
	    {
		 if( delta_y==0 )
		     incy=0;
		 else 
		     {
			  incy=-1;
			  delta_y =-delta_y;
			 }
		}
/*  确定画线的范围 */
	if( delta_x > delta_y ) distance=delta_x;
	else distance=delta_y;

/* 画线 */
	for(t=0;t<= distance+1;t++) 
	   {
		ocmj_write(0xf2);
	    ocmj_write(x1+32);
	    ocmj_write(y1);
 	    xerr += delta_x ;
		yerr += delta_y ;
		if( xerr > distance ) 
		    {
			xerr-=distance;
 		    x1+=incx;
		    }
		if( yerr > distance ) 
		    {
			yerr-=distance;
 		    y1+=incy;
    		}
  	  }
}	 
/*            画圆函数             */
void circle(unsigned char x0,unsigned char y0,unsigned char r)
   {
	unsigned char x,y;
	unsigned int xx,rr,xt,yt,rs;
	yt=r;
	rr=r*r+1;			//补偿 1 修正方形
	rs=yt*3/4;      //画8分之一圆弧
	for (xt=0;xt<=rs;xt++)
	{
		xx=xt*xt;
		while ((yt*yt)>(rr-xx))
		      yt--;
		x=x0+xt;		//第一象限
		y=y0-yt;
		pset(x,y);
		x=x0-xt;		//第二象限
		pset(x,y);
		y=y0+yt;		//第三象限
		pset(x,y);
		x=x0+xt;		//第四象限
		pset(x,y);
/******45度镜象画另外8分之一圆弧******/
		x=x0+yt;		//第一象限
		y=y0-xt;
		pset(x,y);
		x=x0-yt;		//第二象限
		pset(x,y);
		y=y0+xt;		//第三象限
		pset(x,y);
		x=x0+yt;		//第四象限
		pset(x,y);
	}
}  	  
/*       MAIN入口         */
void main(void)
    {
	unsigned char i;
	
	ocmj_init();//初始化	
	while(1)
       {
		ocmj_write(0xf4);//清屏
    	/*ico_tran(0,0,sl_ico);//传送图标,也可用bmp_tran()传送
    	hz_tran(3,0,"广州双龙");//传送内部汉字
    	hz_tran(2,1,"电子有限公司");
    	asc_tran(5,39,"HTTP://");//传送ASCII字符
		*/
    	asc_tran(2,50,"WWW.SL.COM.CN");
    	delay_ms(1000);//延时
    	ocmj_write(0xf4);//清屏
    	bmp_tran(4,2,60,8,hz1);//传送汉字"和"
		
    	delay_ms(1000);
    	ocmj_write(0xf4);
    	//bmp_tran(1,3,49,13,atmel_bmp);//传送ATMEL标志图形
    	asc_tran(2,54,"WWW.ATMEL.COM");
    	delay_ms(1000);
		/*
		ocmj_write(0xf4);
		bmp_tran(2,15,33,4,hz2);//传送汉字"欢"
		bmp_tran(6,15,33,4,hz3);//传送汉字"迎"
		bmp_tran(10,15,33,4,hz4);//传送汉字"您"
		hz_tran(0,0,"恭");
    	hz_tran(0,1,"祝");
		hz_tran(0,2,"各");
		hz_tran(0,3,"位");
		hz_tran(7,0,"万");
    	hz_tran(7,1,"事");
		hz_tran(7,2,"如");
		hz_tran(7,3,"意");
		delay_ms(3000);
		for(i=0;i<32;i++)
		   {
		    ocmj_write(0xf4);
		    line(i*2,32,64,i);
		    line(64,i,(127-i*2),32);
			line((127-i*2),32,64,(63-i));
		    line(64,(63-i),i*2,32);
 			delay_ms(100);
		   }
		for(i=0;i<32;i++)
		   {
		    ocmj_write(0xf4);
			circle(63,31,i);
			delay_ms(100);
		   }
		   */		      
    	}  
	}	

⌨️ 快捷键说明

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