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

📄 set.c

📁 这是一称的项目原文件,包括T9汉字输入,打印机,24C512,已经引用到产品上
💻 C
字号:
#include  <intrins.h>
#include  <24C02.h>
#include  <lcd128x64.h>
#include <keyboard451.h>
#include <print.h>
#include <set.h>



//根据数字去查找每个位数的地址,在液晶那边为每个位设置了一个地址变量,液晶根据这些变量来显示
WORD save_current_num = 0;

BYTE save_current_type = 0;      //类别

BYTE save_tem_type = 0;

long int save_current_pizhong = 0;

long int save_tem_pizhong = 0;

//直接地址操作,不需要经过从数字到地址的转换。
WORD save_current_usename[5] = {0xA1A0,0xA1A0,0xA1A0,0xA1A0,0xA1A0};
WORD save_tem_usename[5] = {0xA1A0,0xA1A0,0xA1A0,0xA1A0,0xA1A0};

set_struct1  set_usename_struct = {
   &save_tem_usename,
   0,
   0
};

set_struct  set_type_struct = {
   &save_tem_type,
   0
};

set_struct  set_pizhong_struct = {
   &save_tem_pizhong,
   0
};

static void set_current_usename_word_bykey(BYTE word_num, WORD num);

/************************************************/
/*void set_type_num_address_bydata(BYTE data100)
/*hl//061117将三位的数据data100化成百位、十位、个位三个数字
/*save_type_buffer.baiwei、save_type_buffer.shiwei、save_type_buffer.gewei
/*****************************************************/
void set_type_num_address_bydata(BYTE data100)		
{ 
	BYTE tem_1,tem_2;
   
   tem_1 = data100 / 100;
   tem_2 = data100 - tem_1 * 100;
   save_type_buffer.baiwei = 0x30 + tem_1;
   save_type_buffer.shiwei = 0x30 + tem_2/10;
   save_type_buffer.gewei  = 0x30 + (data100 - tem_1 * 100 - (tem_2/10) * 10);    
}

/**********************************************************************************/
//void set_pizhong_num_address_bydata(long int p_data) 
//hl//061117将七位的数据p_data化成百万位、十万位、万位、千位、百位、十位、个位七个数字
//save_pizhong_buffer.baiwanwei、  save_pizhong_buffer.shiwanwei、 save_pizhong_buffer.wanwei
//save_pizhong_buffer.qianwei、  save_pizhong_buffer.baiwei	、save_pizhong_buffer.shiwei 、 save_pizhong_buffer.gewei
/************************************************************************************/
void set_pizhong_num_address_bydata(long int p_data)   
{ 
   

   WORD tem0,tem1,tem2;
   BYTE tem3;
   save_pizhong_buffer.baiwanwei =	0x30 +p_data/1000000;	  //百万位
   save_pizhong_buffer.shiwanwei = 0x30 +(p_data%1000000)/100000;	//十万位
   tem0=(p_data%1000000)%100000;	     //wanqianbaishige
   save_pizhong_buffer.wanwei = 0x30 +tem0/10000;  //万位
   tem1=tem0-(tem0/10000)*10000; 	  //qianbaishige
   save_pizhong_buffer.qianwei=0x30+tem1/1000          ;   //千位
   tem2=tem1-(save_pizhong_buffer.qianwei-0x30)*1000; //baishige
   save_pizhong_buffer.baiwei=0x30+tem2 / 100;   //百位

   tem3 = tem2-( save_pizhong_buffer.baiwei-0x30)*100;	//shige
   save_pizhong_buffer.shiwei=0x30+tem3/10;
   save_pizhong_buffer.gewei=0x30+tem3%10;
	Delay1(5000);
   if(save_pizhong_buffer.shiwanwei==0x30)  save_pizhong_buffer.shiwanwei=0x20;
  	  else return;
   if(save_pizhong_buffer.wanwei==0x30)     save_pizhong_buffer.wanwei=0x20;
  	  else return;
   if(save_pizhong_buffer.qianwei==0x30)    save_pizhong_buffer.qianwei=0x20;
  	  else return;
   if(save_pizhong_buffer.baiwei==0x30)     save_pizhong_buffer.baiwei=0x20;
  	  else return;
   if(save_pizhong_buffer.shiwei==0x30)     save_pizhong_buffer.shiwei=0x20;
  	  else return;						  
							   
}
/****************************************************************/
//hl//设置类型值
//最多支持255种类型
/***********************************************************************/
void set_current_type_bykey(BYTE key_value)
{  
   BYTE num_address;

   num_address = get_num_address_from_key_value(key_value);
   
   if (num_address > 10) return; //invalid key
   if (num_address == 10){  //back
      if(set_type_struct.count > 0){
         set_type_struct.count--;
      }else{
         set_type_struct.count = 0;
      }
      return;
   }

   switch (set_type_struct.count){
      case 0:
         if (num_address > 2) return; // >2
         *(BYTE*)(set_type_struct.p_data) = (num_address * 100);
         save_type_buffer.baiwei = 0x30 + num_address;
         set_type_struct.count++;
         break;
      case 1:
         *(BYTE*)(set_type_struct.p_data) += (num_address * 10);
         save_type_buffer.shiwei = 0x30 + num_address;
         set_type_struct.count++;
         break;
      case 2:
         *(BYTE*)(set_type_struct.p_data) += num_address;
         save_type_buffer.gewei = 0x30 + num_address;
         set_type_struct.count++;
         break;
      default:
         break;
   }
}

/*****************************************************************/
//hl//设置皮重,最多支持999999皮重
/******************************************************************/
void set_current_pizhong_bykey(BYTE key_value)
{  
   BYTE num_address;

   num_address = get_num_address_from_key_value(key_value);
   
   if (num_address > 10) return; //invalid key
   if (num_address == 10)
   	{  //back
      if(set_pizhong_struct.count > 0){
         set_pizhong_struct.count--;
      }else{
         set_pizhong_struct.count = 0;
      }
      return;
   }

   switch (set_pizhong_struct.count){
      case 0:
	     if (num_address > 9) return; // >2
         *(long int*)(set_pizhong_struct.p_data) = (num_address * 100000);
         save_pizhong_buffer.shiwanwei = 0x30 + num_address;
         set_pizhong_struct.count++;
         break; 
	  case 1:
         *(long int*)(set_pizhong_struct.p_data) += (num_address * 10000);
         save_pizhong_buffer.wanwei = 0x30 + num_address;
         set_pizhong_struct.count++;
         break;
      case 2:
         *(long int*)(set_pizhong_struct.p_data) += (num_address * 1000);
         save_pizhong_buffer.qianwei = 0x30 + num_address;
         set_pizhong_struct.count++;
         break;
      case 3:
         *(long int*)(set_pizhong_struct.p_data) += (num_address * 100);
         save_pizhong_buffer.baiwei = 0x30 + num_address;
         set_pizhong_struct.count++;
         break;
      case 4:
         *(long int*)(set_pizhong_struct.p_data) += (num_address * 10);
         save_pizhong_buffer.shiwei = 0x30 + num_address;
         set_pizhong_struct.count++;
         break;
      case 5:
         *(long int*)(set_pizhong_struct.p_data) += num_address;
         save_pizhong_buffer.gewei = 0x30 + num_address;
         set_pizhong_struct.count++;
         break;
		        
      default:
         break;
   }
}


void set_current_usename_bykey(BYTE key_value)
{  
   WORD num_address;

   num_address = (WORD)get_num_address_from_key_value(key_value);
   
   if (set_usename_struct.count_word < 5)
      set_current_usename_word_bykey(set_usename_struct.count_word, num_address);
   else return;
}

static void set_current_usename_word_bykey(BYTE word_num, WORD num)
{
   switch(set_usename_struct.count_bit){
      case 0:
         save_tem_usename[word_num] &= 0x0FFF;
         save_tem_usename[word_num] |= (num << 12);
         set_usename_struct.count_bit++;
         break;
      case 1:
         save_tem_usename[word_num] &= 0xF0FF;
         save_tem_usename[word_num] |= (num << 8);
         set_usename_struct.count_bit++;
         break;
      case 2:
         save_tem_usename[word_num] &= 0xFF0F;
         save_tem_usename[word_num] |= (num << 4);
         set_usename_struct.count_bit++;
         break;
      case 3:
         save_tem_usename[word_num] &= 0xFFF0;
         save_tem_usename[word_num] |= num;
         set_usename_struct.count_bit++;
         break;
      default :
         break;
   }
}

 /******************************************************************/
 //hl//将总重的数值换算为没一位,总共有十位,从第一个不为0的数据开始显示
 /**********************************************************************/
void set_zongzhong_num_address_bydata(long int p_data)

{
	BYTE qian3;
	long int hou7;
    qian3= p_data/10000000;
    hou7=  p_data%10000000;
    set_pizhong_num_address_bydata(hou7);
    Delay1(5000);
    set_type_num_address_bydata(qian3) ;
    Delay1(5000);

  if( save_type_buffer.baiwei ==0x30)  	 save_type_buffer.baiwei =0x20;
     else return;
  if( save_type_buffer.shiwei ==0x30)  	 save_type_buffer.shiwei =0x20;
     else return;
  if( save_type_buffer.gewei ==0x30)  	 save_type_buffer.gewei =0x20;
     else return;
  if( save_pizhong_buffer.baiwanwei ==0x30)   save_pizhong_buffer.baiwanwei =0x20;
     else return;
  if( save_pizhong_buffer.shiwanwei ==0x30)   save_pizhong_buffer.shiwanwei =0x20;
     else return;
  if( save_pizhong_buffer.wanwei ==0x30)  	  save_pizhong_buffer.wanwei =0x20;
     else return;
  if( save_pizhong_buffer.qianwei ==0x30)  	  save_pizhong_buffer.qianwei =0x20;
     else return;
  if( save_pizhong_buffer.baiwei ==0x30)  	  save_pizhong_buffer.baiwei =0x20;
     else return;
  if( save_pizhong_buffer.shiwei ==0x30)  	  save_pizhong_buffer.shiwei =0x20;
     else return;
	

}

⌨️ 快捷键说明

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