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

📄 word_lib.c

📁 MSP430z_f247.rar
💻 C
字号:
# include "Word_Lib.h"

//这个变量定义在TRANS文件中,用于放大倍数的传递


static unsigned char Word_Buffer[] = "0123456789";
static unsigned char Number[10]={'0', '1', '2', '3', '4', 
								'5', '6', '7', '8', '9'};
const unsigned char Wrod_Table[96][5]={ 
{0x00, 0x00, 0x00, 0x00, 0x00},// (space) ascii=0x20
{0x00, 0x00, 0x5F, 0x00, 0x00},// !
{0x00, 0x07, 0x00, 0x07, 0x00},// " 
{0x14, 0x7F, 0x14, 0x7F, 0x14},// # 
{0x24, 0x2A, 0x7F, 0x2A, 0x12},// $ 
{0x23, 0x13, 0x08, 0x64, 0x62},// % 
{0x36, 0x49, 0x55, 0x22, 0x50},// & 
{0x00, 0x05, 0x03, 0x00, 0x00},// ' 
{0x00, 0x1C, 0x22, 0x41, 0x00},// ( 
{0x00, 0x41, 0x22, 0x1C, 0x00},// ) 
{0x08, 0x2A, 0x1C, 0x2A, 0x08},// * 
{0x08, 0x08, 0x3E, 0x08, 0x08},// + 
{0x00, 0x50, 0x30, 0x00, 0x00},// , 
{0x08, 0x08, 0x08, 0x08, 0x08},// - 
{0x00, 0x30, 0x30, 0x00, 0x00},// . 
{0x20, 0x10, 0x08, 0x04, 0x02},// / 
{0x3E, 0x51, 0x49, 0x45, 0x3E},// 0 
{0x00, 0x42, 0x7F, 0x40, 0x00},// 1 
{0x42, 0x61, 0x51, 0x49, 0x46},// 2 
{0x21, 0x41, 0x45, 0x4B, 0x31},// 3 
{0x18, 0x14, 0x12, 0x7F, 0x10},// 4 
{0x27, 0x45, 0x45, 0x45, 0x39},// 5 
{0x3C, 0x4A, 0x49, 0x49, 0x30},// 6 
{0x01, 0x71, 0x09, 0x05, 0x03},// 7 
{0x36, 0x49, 0x49, 0x49, 0x36},// 8 
{0x06, 0x49, 0x49, 0x29, 0x1E},// 9 
{0x00, 0x36, 0x36, 0x00, 0x00},// : 
{0x00, 0x56, 0x36, 0x00, 0x00},// ; 
{0x00, 0x08, 0x14, 0x22, 0x41},// < 
{0x14, 0x14, 0x14, 0x14, 0x14},// = 
{0x41, 0x22, 0x14, 0x08, 0x00},// > 
{0x02, 0x01, 0x51, 0x09, 0x06},// ? 
{0x32, 0x49, 0x79, 0x41, 0x3E},// @ 
{0x7E, 0x11, 0x11, 0x11, 0x7E},// A 
{0x7F, 0x49, 0x49, 0x49, 0x36},// B 
{0x3E, 0x41, 0x41, 0x41, 0x22},// C 
{0x7F, 0x41, 0x41, 0x22, 0x1C},// D 
{0x7F, 0x49, 0x49, 0x49, 0x41},// E 
{0x7F, 0x09, 0x09, 0x01, 0x01},// F 
{0x3E, 0x41, 0x41, 0x51, 0x32},// G 
{0x7F, 0x08, 0x08, 0x08, 0x7F},// H 
{0x00, 0x41, 0x7F, 0x41, 0x00},// I 
{0x20, 0x40, 0x41, 0x3F, 0x01},// J 
{0x7F, 0x08, 0x14, 0x22, 0x41},// K 
{0x7F, 0x40, 0x40, 0x40, 0x40},// L 
{0x7F, 0x02, 0x04, 0x02, 0x7F},// M 
{0x7F, 0x04, 0x08, 0x10, 0x7F},// N 
{0x3E, 0x41, 0x41, 0x41, 0x3E},// O 
{0x7F, 0x09, 0x09, 0x09, 0x06},// P 
{0x3E, 0x41, 0x51, 0x21, 0x5E},// Q 
{0x7F, 0x09, 0x19, 0x29, 0x46},// R 
{0x46, 0x49, 0x49, 0x49, 0x31},// S 
{0x01, 0x01, 0x7F, 0x01, 0x01},// T 
{0x3F, 0x40, 0x40, 0x40, 0x3F},// U 
{0x1F, 0x20, 0x40, 0x20, 0x1F},// V 
{0x7F, 0x20, 0x18, 0x20, 0x7F},// W 
{0x63, 0x14, 0x08, 0x14, 0x63},// X 
{0x03, 0x04, 0x78, 0x04, 0x03},// Y 
{0x61, 0x51, 0x49, 0x45, 0x43},// Z 
{0x00, 0x00, 0x7F, 0x41, 0x41},// [ 
{0x02, 0x04, 0x08, 0x10, 0x20},// "\" 
{0x41, 0x41, 0x7F, 0x00, 0x00},// ] 
{0x04, 0x02, 0x01, 0x02, 0x04},// ^ 
{0x40, 0x40, 0x40, 0x40, 0x40},// _ 
{0x00, 0x01, 0x02, 0x04, 0x00},// ` 
{0x20, 0x54, 0x54, 0x54, 0x78},// a 
{0x7F, 0x48, 0x44, 0x44, 0x38},// b 
{0x38, 0x44, 0x44, 0x44, 0x20},// c 
{0x38, 0x44, 0x44, 0x48, 0x7F},// d 
{0x38, 0x54, 0x54, 0x54, 0x18},// e 
{0x08, 0x7E, 0x09, 0x01, 0x02},// f 
{0x08, 0x14, 0x54, 0x54, 0x3C},// g 
{0x7F, 0x08, 0x04, 0x04, 0x78},// h 
{0x00, 0x44, 0x7D, 0x40, 0x00},// i 
{0x20, 0x40, 0x44, 0x3D, 0x00},// j 
{0x00, 0x7F, 0x10, 0x28, 0x44},// k 
{0x00, 0x41, 0x7F, 0x40, 0x00},// l 
{0x7C, 0x04, 0x18, 0x04, 0x78},// m 
{0x7C, 0x08, 0x04, 0x04, 0x78},// n 
{0x38, 0x44, 0x44, 0x44, 0x38},// o 
{0x7C, 0x14, 0x14, 0x14, 0x08},// p 
{0x08, 0x14, 0x14, 0x18, 0x7C},// q 
{0x7C, 0x08, 0x04, 0x04, 0x08},// r 
{0x48, 0x54, 0x54, 0x54, 0x20},// s 
{0x04, 0x3F, 0x44, 0x40, 0x20},// t 
{0x3C, 0x40, 0x40, 0x20, 0x7C},// u 
{0x1C, 0x20, 0x40, 0x20, 0x1C},// v 
{0x3C, 0x40, 0x30, 0x40, 0x3C},// w 
{0x44, 0x28, 0x10, 0x28, 0x44},// x 
{0x0C, 0x50, 0x50, 0x50, 0x3C},// y 
{0x44, 0x64, 0x54, 0x4C, 0x44},// z 
{0x00, 0x08, 0x36, 0x41, 0x00},// { 
{0x00, 0x00, 0x7F, 0x00, 0x00},// | 
{0x00, 0x41, 0x36, 0x08, 0x00},// } 
{0x08, 0x08, 0x2A, 0x1C, 0x08},// -> 
{0x08, 0x1C, 0x2A, 0x08, 0x08} // <- 
}; 

void Get_Word_Digit(unsigned int Data, unsigned ch_Newline)
{
	unsigned char NUM_Move=0;
	unsigned char NUM_Digit=0;
	
	for(NUM_Move=0; NUM_Move<DIGIT_SHOW; NUM_Move++)
	{
		NUM_Digit=Data%10;
		Data=Data/10;
		Word_Buffer[DIGIT_SHOW-1-NUM_Move]=Number[NUM_Digit];
	}
	if(ch_Newline)
	{
		Word_Buffer[NUM_Move]=' ';
		Word_Buffer[NUM_Move+1]='\n';
		Word_Buffer[NUM_Move+2]='\0';		//字符收尾							
	}
	else
	{
		Word_Buffer[NUM_Move]=' ';
		Word_Buffer[NUM_Move+1]='\0';
	}
}

void Word_Show_Number(unsigned int Data, 
					  unsigned char ch_Newline,
					  unsigned char ch_x,
					  unsigned char ch_y)
{
	Get_Word_Digit(Data, ch_Newline);
	Write_Str(Word_Buffer, ch_x, ch_y);
}

void Write_Char(UINT8 chData,UINT8 chx,UINT8 chy)
{
  	UINT8 i = 0,j = 0;
	UINT8 chIndex = (UINT8)(chData-32); //-space
	UINT8 x = chx;
	UINT8 y = chy;
	if (!((chx > 0 && chx <= 123) && (chy >= 4 && chy <= 63)))
	{
	  	return;
	}
	for (i = 0;i < 5;i++)
	{
	
	  	for (j = 0;j < 8;j++)
		{
		  	if (Wrod_Table[chIndex][i]&BIT(j))
			{
			  	Draw_Dot(x,y);
			}
			else 
			{
			  	Clear_Dot(x,y);
			}
			y--;
		}
		x++;
		y = chy;
	}
}

void Write_Str(UINT8 *Str,UINT8 chx,UINT8 chy)
{
  	UINT8 i = 0;
	for (i = 0;Str[i] != '\0';i++)
	{
	  	Write_Char(Str[i],chx,chy);
		chx += 5;
	}
}
void Dialog_Output(void)
{
	Write_Str("Ic:u",102,63);
	Write_Str("Vce:",102,43);
	Write_Str("Back",102,23);
}

void Dialog_Input(void)
{
   	Write_Str("Ib:u",102,63);
	Write_Str("Vbe:",102,43);
	Write_Str("Back",102,23);
}

void Show_Disk_Top(void)
{
	Write_Str("Duuble ",55,63);
	Write_Str("NPN_IN ",55,53);
	Write_Str("NPN_Out",55,43);
	Write_Str("PNP_In ",55,33);
	Write_Str("PNP_Out",55,23);
	Write_Str("Diode  ",55,13);
}
//////////////////////////////////////////
//这个函数实现坐标的实际虚拟坐标到实际物理
//意义的转换并显示
//其中显示坐标需要根据实际菜单区大小来改变
//////////////////////////////////////////
struct Mouse_Struct *Show(unsigned char Testing_Type)
{
  struct Dot_Struct *Mouse_Head  = NULL;
  static struct Mouse_Struct Mouse = {0,0,FALSE,FALSE};
  unsigned int x_Real = 0;
  unsigned int y_Real = 0;
  Mouse_Icon_Update();
  Mouse_Head = Mouse_Icon_Read(0,0,FALSE);
  Mouse.x = Mouse_Head->x;
  Mouse.y = Mouse_Head->y;
  {
		if(Testing_Type == OUT)
		{
			if(Mouse_Head->x <=51)
			{
				x_Real = (Mouse_Head->x -1)*15;
			}
			else
			{
				x_Real = (Mouse_Head->x -52)*15;
			}
		}
		else if(Testing_Type == IMPT)
		{
			if(Mouse_Head->x <=51)
			{
				x_Real = (Mouse_Head->x +26)*10;
			}
			else
			{
				x_Real = (Mouse_Head->x +77)*10;
			}
		}
		
		
		y_Real = (Mouse_Head->y)*300;
		
	if (g_Mouse.b_Left_Key_Down && Dot_Is_Exist(Mouse_Head->x,Mouse_Head->y))
	{
	  static UINT8 chCounter = 0;
      
	  switch (chCounter)
	  {
	  case 0:
	  Word_Show_Number(x_Real, 0,102,33);//PLUS_[0][3]
	  Word_Show_Number(y_Real, 0, 102,53);
	  break;
	  case 1:
	  break;
	  }
	  chCounter = (chCounter+1)%2;
	}
	  
   }
   Mouse.b_Left_Key_Down = g_Mouse.b_Left_Key_Down;
   Mouse.b_Right_Key_Down = g_Mouse.b_Right_Key_Down;
   return &Mouse;
}
void Twice(UINT8 chCounter)
{
  	
      
	  switch (chCounter)
	  {
	  case 0:
	
	  break;
	  case 1:
	  break;
	  }
	  chCounter = (chCounter+1)%2;
}

⌨️ 快捷键说明

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