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

📄 hz24.c

📁 是一个基于arm开发平台的指纹识别的原程序,基于ucos
💻 C
字号:
/****************************************************************************************
* 文件名:hz24.C
* 功能:24*24 ASCII码字体及显示函数。
* 作者:路涛
* 日期:2006.10.13
* 备注:使用GUI_SetColor()函数设置前景颜色及背景色。
****************************************************************************************/
#include "config.h"


uint8 dcb2dex_tab[];
/****************************************************************************
* 名称:GUI_PutCharm_n()
* 功能:显示ASCII码(m*n字体),显示值为20H-7FH(若为其它值,则显示' ')。
* 入口参数: x		指定显示位置,x坐标
*           y		指定显示位置,y坐标
*			m		指定一个字符显示的列数
*			n		指定一个字符显示的行数
*	hzxy[][m*n/8]	汉字码数组
*           ch		要显示的ASCII码值。
* 出口参数:返回值为1时表示操作成功,为0时表示操作失败。
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
/*
uint8  GUI_PutChar24(uint32 x, uint32 y,char ch)
{  uint8   font_dat;
   uint8   i, j, k;

	
   // 参数过滤 
   if( x>(GUI_LCM_XMAX-24) ) return(0);
   if( y>(GUI_LCM_YMAX-32) ) return(0);
  
  
   for(i=0;i<10;i++)
   {
   		if(ch==hz24_tab[i])break;
   		i++;
   }
   k=i; 
    
   for(i=0; i<24; i++)						// 显示共24行
   {  for(j=0; j<24; j++)					// 每行共24点
      {  // 若当前点为0、8、16点,读取点阵数据 
         if((j==0)|(j==8)|(j==16)) font_dat = hz24[k][i*3+j/8];     
         // 设置相应的点为color或为back_color 
         if( (font_dat&dcb2dex_tab[j%8])==0 ) GUI_Point(x, y, RED);
            else  GUI_Point(x, y, GREEN); 
         x++;
      }
      
      y++;									// 指向下一行
      x -= 24;								// 恢复x值
   }
   
   return(1);
}
*/




uint8  GUI_PutCharm_n(uint32 x, uint32 y, uint8 m, uint8 n, uint8 **hzm_n, char *hzm_n_tab, char ch)//m,n为行与列,m_n自行改为数字形式
{  uint8   font_dat;
   uint8   i, j, k;

	
   /* 参数过滤 */
   if( x>(GUI_LCM_XMAX-n) ) return(0);
   if( y>(GUI_LCM_YMAX-m) ) return(0);
  
  
   for(i=0;i<10;i++)
   {
   		if(ch==hzm_n_tab[i])break;
   		i++;
   }
   k=i; 
    
   for(i=0; i<m; i++)						// 显示共m行
   {  for(j=0; j<n; j++)					// 每行共n点
      {  // 若当前点为0、8、16...点,读取点阵数据 
         if(j&7==0) font_dat = hzm_n[k][i*3+j/8];     
         // 设置相应的点为color或为back_color 
         if( (font_dat&dcb2dex_tab[j%8])==0 ) GUI_Point(x, y, RED);
            else  GUI_Point(x, y, GREEN); 
         x++;
      }
      
      y++;									// 指向下一行
      x -= n;								// 恢复x值
   }
   
   return(1);
}





/****************************************************************************
* 名称:GUI_PutStringm_n()
* 功能:输出显示字符串((m*n字体,没有自动换行功能)。
* 入口参数: x		指定显示位置,x坐标
*           y		指定显示位置,y坐标
*			m		指定一个字符显示的列数
*			n		指定一个字符显示的行数
*	hzxy[][m*n/8]	汉字码数组
*           str		要显示的ASCII码字符串
* 出口参数:无
* 说明:操作失败原因是指定地址超出有效范围。
****************************************************************************/
/*void  GUI_PutString24(uint32 x, uint32 y, char *str)
{  while(1)
   {  if( (*str)=='\0' ) break;
      if( GUI_PutChar24(x, y, *str++)==0 ) break;
      x += 24;								// 下一个字符显示位置,y不变(即不换行)
   }
}
*/

void  GUI_PutStringm_n(uint32 x, uint32 y, uint8 m, uint8 n, uint8 **hzm_n, char *hzm_n_tab, char *str)//m_n自行改为数字形式
{  uint8 i,j;
	i=0;
	j=0;
	while(1)
   {  if( (*str)=='\0' ) break;
   	  if(i>(GUI_LCM_XMAX-x)/n)
   	  {
   	  	y+=m;
   	  	x=0;
   	  	j++;
   	  }
   	  if(j>(GUI_LCM_YMAX-y)/m)break;
      if( GUI_PutCharm_n(x, y, m, n, hzm_n, hzm_n_tab, *str++)==0 ) break;
      i++;
      x += n;								// 下一个字符显示位置,y不变(即不换行)
   }
}


⌨️ 快捷键说明

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