LPC2000 液晶显示器HDG12864L-6 并行控制 +输出汉字

LPC2000 液晶显示器HDG12864L-6 并行控制 +输出汉字_第1张图片

LPC2000 液晶显示器HDG12864L-6 并行控制 +输出汉字_第2张图片

 void WR_DATA(char dat) //数据输出函数
{
  IO0SET=1<<9;  //当A0为0时表示当前传输的是命令,为1时表示当前传输的是数据
  IO0CLR =0xff; 
  IO0SET =dat;
   
	   IO0CLR = 1<<8; //来一个上升沿发数据
         IO0SET =1<<8; 

}

void WR_CMD(char cmd) //命令输出函数
{   
  IO0CLR=1<<9;  //当A0为0时表示当前传输的是命令,为1时表示当前传输的是数据
 IO0CLR = 0xff;
  IO0SET =cmd;
  
	   IO0CLR = 1<<8; //来一个上升沿发数据
         IO0SET =1<<8; 

}
 void LCD_write_CHchar(unsigned char x, unsigned char y, unsigned char* CHstr)
 {
  	 int i1,j1,i;
	  for(i=0;i<chinese_12_len;i++)
	  {
	     //判断汉字
	     if((*CHstr == chinese_12[i].value[0])&&(*(CHstr+1) == chinese_12[i].value[1]))
	     { 
	  for(i1=0;i1<2;i1++)
          { 
              //汉字屏幕定位
             WR_CMD(0xb0+y+i1); //列
             WR_CMD(0x10+x/16); //行的高四位
             WR_CMD(0x00+x%16); //行的低四位 PS:具体看数据手册
	         for(j1=i1*16;j1<16*(i1+1);j1++)
            {
                WR_DATA(*(chinese_12[i].data+j1));
             } 
           }
	     }   
	  }	
 }
void china(unsigned char x, unsigned char y,unsigned char *string) 
{
  unsigned char l=0;
	  while(*(string+l))
	  {
	   	 LCD_write_CHchar(x,y,string+l);
	     l=l+2;
		 x=x+0x10;
	  }
}
/****************************************************************************
* 名    称:main()
* 功    能:控制LED灯闪烁。
****************************************************************************/
int  main(void)
{  
     PINSEL0=0;      	             
     IO0DIR =0xfff;     
     WR_CMD(0xa1);
     china(0x00,3,(unsigned char *)"电子科技大学");
     return 0;
}


你可能感兴趣的:(LPC2000 液晶显示器HDG12864L-6 并行控制 +输出汉字)