www.pudn.com > RC522.zip > chinese.c, change:2015-04-14,size:3152b


#include "chinese.h" 
#include "chfont.h" 
#include "lcd.h" 
#include "remote.h" 
 
 
//////////////////////////////////////////////////////////////////////////////////	  
//本程序只供学习使用,未经作者许可,不得用于其它任何用途 
//Mini STM32开发板——扩展实验 
//自定义汉字显示  代码			    
//正点原子@ALIENTEK 
//技术论坛:www.openedv.com 
//修改日期:2010/7/6 
//版本:V1.0 
//版权所有,盗版必究。 
//Copyright(C) 正点原子 2009-2019 
//All rights reserved 
////////////////////////////////////////////////////////////////////////////////// 	   
			     
//在LCD上的(x,y)处画点 
//color:点的颜色 
void LCD_Draw_Point(u16 x,u16 y,u16 color) 
{ 
	u16 temp; 
	temp=POINT_COLOR; 
	POINT_COLOR=color; 
    LCD_DrawPoint(x,y); 
	POINT_COLOR=temp; 
} 
//在指定位置 显示1个16*16的汉字 
//(x,y):汉字显示的位置 
//index:tfont数组里面的第几个汉字 
//color:这个汉字的颜色 
void Test_Show_CH_Font16(u16 x,u16 y,u8 index,u16 color) 
{   			     
	u8 temp,t,t1; 
	u16 y0=y;				    
    for(t=0;t<32;t++)//每个16*16的汉字点阵 有32个字节 
    {    
		if(t<16)temp=tfont16[index*2][t];      //前16个字节 
		else temp=tfont16[index*2+1][t-16];    //后16个字节	                           
        for(t1=0;t1<8;t1++) 
		{ 
			if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点 
			else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景色) 
			temp<<=1; 
			y++; 
			if((y-y0)==16) 
			{ 
				y=y0; 
				x++; 
				break; 
			} 
		}  	  
    }           
} 
//在指定位置 显示1个24*24的汉字 
//(x,y):汉字显示的位置 
//index:tfont数组里面的第几个汉字 
//color:这个汉字的颜色 
void Test_Show_CH_Font24(u16 x,u16 y,u8 index,u16 color) 
{   			     
	u8 temp,t,t1; 
	u16 y0=y;				    
    for(t=0;t<72;t++)//每个24*24的汉字点阵 有72个字节 
    {    
		if(t<24)temp=tfont24[index*3][t];           //前24个字节 
		else if(t<48)temp=tfont24[index*3+1][t-24]; //中24个字节	                           
        else temp=tfont24[index*3+2][t-48];         //后24个字节 
	    for(t1=0;t1<8;t1++) 
		{ 
			if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点 
			else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景色) 
			temp<<=1; 
			y++; 
			if((y-y0)==24) 
			{ 
				y=y0; 
				x++; 
				break; 
			} 
		}  	  
    }           
} 
//测试2个汉字显示函数 
void TEST_FONT(void) 
{ 
	u8 t; 
	u8 x,x1; 
	x=x1=10; 
	for(t=0;t<9;t++) 
	{ 
		Test_Show_CH_Font24(x1,70,t,RED); 
		x+=16; 
		x1+=24; 
	} 
	x1=30; 
	for(t=9;t<11;t++) 
	{ 
		Test_Show_CH_Font24(x1,150,t,RED); 
		x+=16; 
		x1+=24; 
	} 
//	x1=30; 
//	for(t=11;t<13;t++) 
//	{ 
//		Test_Show_CH_Font24(x1,180,t,RED); 
//		x+=16; 
//		x1+=24; 
//	} 
	 
		x1=30; 
	for(t=13;t<15;t++) 
	{ 
		Test_Show_CH_Font24(x1,210,t,RED); 
		x+=16; 
		x1+=24; 
	} 
  
 } 
 
 
void ShowExecute(u8 key) 
 { 
	 u8 t,x,x1,index; 
	  
	x1=120; 
	if(key==0) index=15;//CHONGZHI 
	else if(key==1)  index=17;//KOUKUAN 
	else if(key==2)  index=19;// 
	else if(key==3)  index=21;//DUKA 
	else if(key==4)  index=23;//GAIMI 
	 else if(key==5)  index=25;//上锁 
	 else if(key==6)  index=27;//解锁 
				  
	for(t=index;t<index+2;t++) 
	{ 
					if(Remote_Rdy)return; 
 
		Test_Show_CH_Font24(x1,0,t,RED); 
		x+=16; 
		x1+=24; 
	} 
	  
 }