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

📄 ym_160128.txt

📁 基于T6963C控制芯片的160_128液晶程序
💻 TXT
📖 第 1 页 / 共 3 页
字号:
		      temp =*P;
		      LCD_YM_160128A_WriteMode1(temp, DataWAddrI);             // 左半部 地址加一 
		      temp =*(P+1); 
		      LCD_YM_160128A_WriteMode1(temp, DataWAddrI);            // 右半部	地址加一
		      StartAddr = StartAddr + 0x14;                       // 换到下一行
			  data1 = StartAddr&0x00ff;
			  data2 = StartAddr>>8;
			      P += 2;
	       } 
}

//*******************************************
//函数名称:void display_LCD_YM_160128A_0808number_float(uchar page,uchar y,float Num,uchar length)
//函数功能:显示小数(8*8点阵)
//形式参数:
//行参说明:			
//返回参数:
//使用说明:	   在文本区显示,length为想要显示的小数位数 0~4位,能显示位数与uint len 数据类型有关,所以只能最多4位
//*******************************************
void display_LCD_YM_160128A_0808number_float(uchar page,uchar y,float Num,uchar length)
{

		uchar count,temp[10],Flag = 1,lent,data1,data2;
		uint len=1,ucdata ;
		ulong Num_ch ;
		    
		ucdata = (page*0x14+y);
		data1 = ucdata & 0x00ff; 
		data2 = (ucdata >>=8);
		
	    lent = length;
			for(;length>0;length--)				 //使用一个lent变量保存一下,因为后来length的值改变了
			  {
			  len *= 10;
			  } 
		Num *= len;
		Num_ch = (ulong)Num;				//强制类型转换为长整型
		
			for(count=10;count;)				//将Num的高(低)位放在数组temp的低(高)位中
			  {
				if((count-1)==9-lent)			//判断一个位置放零
			      {
				   temp[count-1]=0x0E;
				   count--;
				  }
				temp[--count]=Num_ch%10;
			    temp[count]+=0x10;			     //加上该数字在自定义ASCII码表中的偏移量16
				Num_ch/=10;
			  }
		LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
		LCD_YM_160128A_WriteCommand(DataAutoWrite);                  // 设置自动写状态 
			for(count=0;count<10;count++)						
			   {
				LCD_YM_160128A_AutoWriteData(0x00);	     		  //在显示数据前把这几个位置清零
			   }
		LCD_YM_160128A_WriteCommand(ExitAutoRW);               // 自动写结束

	    LCD_YM_160128A_WriteMode2(data1,data2,AddrSet);
	    LCD_YM_160128A_WriteCommand(DataAutoWrite);                  // 设置自动写状态 
			for(count=0;count<10;count++)						
				{
				   if (temp[count] != 0x10||Flag==0||temp[count+1]==0x0E)
					  {
				      LCD_YM_160128A_AutoWriteData(temp[count]);
					  Flag=0;
					  }	     
				}
		LCD_YM_160128A_WriteCommand(ExitAutoRW);              // 自动写结束
}
//*******************************************
//函数名称:void display_LCD_YM_160128A_picture(uchar *P)
//函数功能:显示整屏的图片(160*128点阵)
//形式参数:
//行参说明:
//返回参数:
//使用说明:		 在图形区显示
//*******************************************
void display_LCD_YM_160128A_picture(uchar *P)
{
        uint m;
		LCD_YM_160128A_WriteMode2(0x00,0x10,AddrSet);  // 设置指针地址0000H 
		LCD_YM_160128A_WriteCommand(DataAutoWrite);    // 设置自动写状态 
		    for( m=0; m<2560; m++)										
			{
				LCD_YM_160128A_AutoWriteData(*P);
				P++;				    
			}
		LCD_YM_160128A_WriteCommand(ExitAutoRW);       // 自动写结束


}


//*******************************************
//函数名称:void display_LCD_YM_160128A_pixel(uchar x,uchar  y,uchar Flag)
//函数功能:在液晶显示器上面画一个像素点
//形式参数:uchar x,uchar  y,uchar Flag
//行参说明:
//返回参数:
//使用说明:		 在图形区显示
//*******************************************
void display_LCD_YM_160128A_pixel(uchar x,uchar  y,uchar Flag)
{
        uchar x_place,temp,ucode1=0x01,ucode2;
		uchar data1,data2;
		uint StartAddr;
		if(x%8)
		{ x_place = x/8; }
		else 
		{ x_place = x/8-1;}

		StartAddr = (128-y)*0x14 + x_place + 0x1000;       //定位起始行
		data1 = StartAddr&0x00ff;
		data2 = StartAddr>>8;
	
	    temp = 8-(x%8);
		if(temp ==8)
		  {
		     ucode1=0x01;
		  }
		else
		 { 
	      while (temp) 
	         {						//移动像素
	  	       ucode1 = ucode1*2;
		       temp--;
	         }
		  }
		LCD_YM_160128A_WriteMode2( data1,data2,AddrSet );
		LCD_YM_160128A_WriteCommand(DataRAddrNV);
		ucode2 = LCD_YM_160128A_ReadData();
		if(Flag == 0)
		   {
		    ucode1 = ucode1|ucode2;
		   }
		else
		  {
		    ucode1 = (~ucode1)&ucode2;
		  }
        LCD_YM_160128A_WriteMode2( data1,data2,AddrSet); 
        LCD_YM_160128A_WriteMode1(ucode1, DataWAddrNV);   

}
void LCD_YM_160128A_Init(void)
{
	LCD_YM_160128A_RESET = 1;	
	LCD_YM_160128A_RESET = 0;	//复位
	LCD_YM_160128A_RESET = 1;

	LCD_YM_160128A_WriteMode2(0x00,0x00,TextHomeAddr);	// 文本首地址
	LCD_YM_160128A_WriteMode2(0x14,0x00,TextArea);		// 文本宽度设置,即一行显示所占字节数,20个字节
	LCD_YM_160128A_WriteMode2(0x00,0x10,GraHomeAddr);	// 图形首地址
	LCD_YM_160128A_WriteMode2(0x14,0x00,GraArea);		// 设置图形宽度,即一行显示所占字节数,20个字节
	LCD_YM_160128A_WriteMode2(0x00,0x00,OffsetReg);     // CGRAM偏移地址设置
													    // 
	LCD_YM_160128A_WriteCommand(0xa0);					// 光标形状设置
	LCD_YM_160128A_WriteCommand(ExorMode);				// 显示方式设置,逻辑"异或"合成
	LCD_YM_160128A_WriteCommand(0x9f);					// 显示开关,图形开,文本开,光标开并闪烁

	Cursor_X = 0x00;
	Cursor_Y = 0x00;
	LCD_YM_160128A_CursorPosSet(Cursor_X,Cursor_Y);      //光标的位置设定
}

uchar code disp1[]=
{
   
0x10,0x00,0x10,0x00,0x20,0x04,0x25,0xFE,0x44,0x20,0xF8,0x20,0x08,0x20,0x10,0x20,
0x20,0x20,0xFC,0x20,0x40,0x20,0x00,0x20,0x1C,0x20,0xE0,0x24,0x47,0xFE,0x00,0x00,/*"红",0*/

0x00,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,
0x1F,0xF0,0x00,0x20,0x10,0x30,0x08,0x20,0x04,0x40,0xFF,0xFE,0x00,0x00,0x00,0x00,/*"豆",1*/

0x00,0x80,0x10,0xC0,0x10,0x80,0x10,0x88,0x1F,0xFC,0x20,0x80,0x20,0x80,0x40,0x88,
0x9F,0xFC,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x84,0x7F,0xFE,0x00,0x00,/*"生",2*/

0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x02,0x00,0x3F,0xFC,0x24,0x24,0x22,0x44,
0x2F,0xF4,0x21,0x04,0x3F,0xFC,0x21,0x04,0x21,0x04,0x21,0x14,0x21,0x08,0x00,0x00,/*"南",3*/

0x00,0x00,0x7F,0xFC,0x40,0x04,0x5F,0xF4,0x41,0x04,0x41,0x04,0x41,0x04,0x4F,0xE4,
0x41,0x44,0x41,0x24,0x41,0x24,0x5F,0xF4,0x40,0x04,0x40,0x04,0x7F,0xFC,0x40,0x04,/*"国",4*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,/*",",5*/

0x01,0x00,0x01,0x00,0x3F,0xFC,0x01,0x00,0x1F,0xF8,0x02,0x00,0xFF,0xFE,0x04,0x20,
0x08,0x18,0x3F,0xEE,0xC8,0x24,0x0F,0xE0,0x08,0x20,0x08,0x20,0x0F,0xE0,0x00,0x00,/*"春",6*/

0x01,0x00,0x01,0x00,0x3F,0xFC,0x01,0x00,0x09,0x30,0x05,0x20,0x03,0x40,0x7F,0xFE,
0x01,0x80,0x03,0x40,0x05,0x20,0x09,0x18,0x31,0x0E,0xC1,0x04,0x01,0x00,0x01,0x00,/*"来",7*/

0x02,0x00,0x22,0x40,0x22,0x30,0x22,0x10,0x7F,0xFE,0x24,0x00,0x04,0x00,0x07,0xE0,
0x0C,0x20,0x0A,0x20,0x0A,0x20,0x11,0x40,0x20,0x80,0x41,0x60,0x86,0x1C,0x18,0x08,/*"发",8*/

0x00,0x00,0x0F,0xE0,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,
0x08,0x20,0x08,0x20,0x08,0x22,0x10,0x22,0x10,0x22,0x20,0x1E,0x40,0x00,0x00,0x00,/*"几",9*/

0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x20,0x10,0x20,0x39,0xFC,0x34,0x88,
0x54,0x88,0x50,0x50,0x90,0x50,0x10,0x20,0x10,0x70,0x11,0x88,0x16,0x0E,0x10,0x04,/*"枝",10*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x30,0x00,0x48,0x00,0x48,0x00,0x30,0x00,0x00,0x00,0x00,0x00,/*"。",11*/

0x3F,0xFE,0x21,0x00,0x27,0xF8,0x24,0x08,0x27,0xF8,0x24,0x08,0x27,0xF8,0x20,0x40,
0x22,0x48,0x2C,0xC4,0x20,0x40,0x4A,0x84,0x4A,0x42,0x9A,0x12,0x01,0xF0,0x00,0x00,/*"愿",12*/

0x00,0x00,0x3F,0xF8,0x02,0x08,0x02,0x08,0xFF,0xFE,0x04,0x08,0x04,0x08,0x3F,0xF8,
0x04,0x08,0x08,0x00,0x1F,0xF8,0x18,0x08,0x28,0x08,0x48,0x08,0x8F,0xF8,0x08,0x08,/*"君",13*/

0x01,0x00,0x01,0xF8,0x02,0x08,0x04,0x10,0x0B,0x20,0x10,0xC0,0x03,0x00,0x0C,0x80,
0x71,0xFE,0x02,0x04,0x0D,0x08,0x30,0x90,0x00,0x60,0x01,0x80,0x0E,0x00,0x70,0x00,/*"多",14*/

0x00,0x00,0x01,0xF8,0x7E,0x00,0x00,0x10,0x11,0x10,0x08,0xA0,0x01,0x00,0x7F,0xFE,
0x01,0x80,0x03,0x40,0x05,0x20,0x09,0x18,0x31,0x0E,0xC1,0x04,0x01,0x00,0x01,0x00,/*"采",15*/

0x21,0x00,0x21,0x3E,0x27,0xC8,0xF9,0x10,0x21,0x3E,0x27,0xA2,0x30,0x2A,0x20,0x2A,
0x67,0xAA,0xA4,0xAA,0x24,0xAA,0x24,0xAA,0x27,0x88,0x24,0x94,0xA0,0x22,0x40,0x42,/*"撷",16*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x20,0x00,0x00,0x00,/*",",17*/

0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x24,0x46,0x27,0x58,0x24,0x60,0x24,0x40,
0x24,0x40,0x24,0x40,0x24,0x40,0x27,0x42,0x38,0x42,0xE0,0x42,0x00,0x3E,0x00,0x00,/*"此",18*/

0x10,0x80,0x10,0x80,0x50,0x80,0x51,0xFC,0x7D,0x54,0x52,0x54,0x94,0x94,0x14,0x94,
0x19,0x24,0x32,0x24,0xD4,0x44,0x10,0x84,0x11,0x04,0x12,0x04,0x14,0x28,0x00,0x10,/*"物",19*/

0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x00,0x00,0xFF,0xFE,0x22,0x00,
0x3E,0xFC,0x22,0x88,0x3E,0x50,0x23,0x20,0x3E,0x50,0xE2,0x8E,0x03,0x04,0x02,0x00,/*"最",20*/

0x10,0x00,0x10,0xFC,0x10,0x84,0x10,0x84,0xFE,0x84,0x18,0xFC,0x34,0x84,0x32,0x84,
0x52,0x84,0x50,0xFC,0x90,0x84,0x10,0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x10,0x84,/*"相",21*/

0x00,0x00,0x1F,0xF8,0x11,0x08,0x11,0x08,0x1F,0xF8,0x11,0x08,0x11,0x08,0x1F,0xF8,
0x00,0x00,0x01,0x00,0x08,0x88,0x48,0x84,0x48,0x16,0xC8,0x12,0x07,0xF0,0x00,0x00,/*"思",22*/

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x30,0x00,0x48,0x00,0x48,0x00,0x30,0x00,0x00,0x00,0x00,0x00/*"。",23*/
};
void delay(uchar a,uchar b)
{
   uchar ii,jj;
   for(ii=0;ii<a;ii++)
     for(jj=0;jj<b;jj++);
}
 void main()  //简单测试程序
{	  
         uint n,i,temp,k,c,j=0;
      //   uchar *a="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        // uchar b='a';
	  	 LCD_YM_160128A_Init();
		 LCD_YM_160128A_ClearRAM(8200);
        // display_LCD_YM_160128A_0808number_float(0,0,1.1234,4);
        // display_LCD_YM_160128A_0808RAMdata(0,0,b);
         //display_LCD_YM_160128A_0808number_long(0,36,987654);
        // display_LCD_YM_160128A_1616chinese(0,0,disp);
        // display_LCD_YM_160128A_0808number(0,0,255);
		 //display_LCD_YM_160128A_0808data(1,1,b);
         //display_LCD_YM_160128A_0808number(0,0,220);	  
		// Set_LCD_YM_160128A_CGRAM(a);
		  
	    // display_LCD_YM_160128A_0808data(0,0,b);
		// display_LCD_YM_160128A_CGROM_0808string(0,0,a);
		LCD_YM_160128A_WriteMode2(0,0x10,AddrSet);
		// display_LCD_YM_160128A_0808data(0,0,b);
		 
        // Set_LCD_YM_160128A_CGRAM()
	//	LCD_YM_160128A_CursorPosSet(6,1);
	   //  LCD_YM_160128A_WriteMode2(20,20,AddrSet);
		 
	   	// LCD_YM_160128A_WriteCommand(0xf8);
	//	display_LCD_YM_160128A_1616chineselong(20,0,disp,3,0);
//	 display_LCD_YM_160128A_picture(line);
        
	   	while(1);
} 		  





⌨️ 快捷键说明

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