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

📄 edit1.c.bak

📁 HD6305的Tag_IT电子标签的读写例子。
💻 BAK
📖 第 1 页 / 共 2 页
字号:
					}
					break;
			case 3:
					gs.qy = 6;
					gs.maxNum = 2;
					gs.minNum = 1;
					gs.minValue = 0;
					gs.maxValue = 59;
					gs.pPrompt = "";
					gs.retNum = 0;
					switch(GetStr_E(&gs))
					{
						case 0:
								settRec.fields.second = gs.retValue;
								sprintf(dBuf,"秒:%02d    ",settRec.fields.second);
								DispStr_CE(0,6,dBuf,DISP_POSITION);
								which_in = 4;
								break;
						case 1:
								settRec.fields.second = gettRec.fields.second;
								sprintf(dBuf,"秒:%02d    ",settRec.fields.second);
								DispStr_CE(0,6,dBuf,DISP_POSITION);
								which_in = 4;
								break;
						case -1:
								DispStr_CE(0,4,"分:             ",DISP_POSITION);
								DispStr_CE(0,6,"秒:             ",DISP_POSITION);
								which_in = 2;
					}
		}
		if (which_in<1) return -1;
		if (which_in>3)
		{
			RTC_set_time(settRec.l_word);
			gettRec.l_word = RTC_read_time();
			sprintf(dBuf,"%02d时%02d分%02d秒",gettRec.fields.hour,gettRec.fields.minute,gettRec.fields.second);
			DispStr_CE(0,0,dBuf,DISP_CENTER|DISP_CLRSCR);
			delay_ms(1000);
			return 0;
		}		
	}
}


void disp_data_in_binary(unsigned char *buf,unsigned char *disp_b_buf)
{
		typ_msg_word msg;
	int i,j=0,k;
	char buffer[10];
	memset(buffer,0,10);
	while(*buf){
		for(i=0;i<8;i++){
			if((*buf>>(7-i))&0x1)
				disp_b_buf[j++]='1';
			else
				disp_b_buf[j++]='0';	
		}
		buf++;
	}
	i=0;
	j=strlen(disp_b_buf)/8;
	for(k=0;k<4;k++)
	{
		memcpy(buffer,disp_b_buf+i*8+2*k*8,8);
		DispStr_E(0,4+k,buffer,DISP_POSITION|DISP_5x7);
		memcpy(buffer,disp_b_buf+i*8+(2*k+1)*8,8);
		DispStr_E(56,4+k,buffer,DISP_POSITION|DISP_5x7);
	}
	while(1)
	{
		msg.s_word = sys_msg(SM_GOTO_SLEEP);
		if (msg.bits.key_available)
		{
			switch(KEY_read())
			{
				case KEY_UP:
					if(i>0)
						i-=4;
					for(k=0;k<4;k++)
					{
						memcpy(buffer,disp_b_buf+i*8+2*k*8,8);
						DispStr_E(0,4+k,buffer,DISP_POSITION|DISP_5x7);
						memcpy(buffer,disp_b_buf+i*8+(2*k+1)*8,8);
						DispStr_E(56,4+k,buffer,DISP_POSITION|DISP_5x7);
					}
					break;
				case KEY_DOWN:
					if(i<j-1)
						i+=4;
						for(k=0;k<4;k++)
					{
						memcpy(buffer,disp_b_buf+i*8+2*k*8,8);
						DispStr_E(0,4+k,buffer,DISP_POSITION|DISP_5x7);
						memcpy(buffer,disp_b_buf+i*8+(2*k+1)*8,8);
						DispStr_E(56,4+k,buffer,DISP_POSITION|DISP_5x7);
					}
					break;
				case KEY_COMM:
				case KEY_POWER:
					return;	
			}
		}
	}
}
int rw_tagit(char rw_flag) 
{
  short l_wStatus,RecLength;
  Tag_Info TagInfo;	
  long tcnt;
  unsigned char card_read_ok,cntr,RecData[64],buff[16],disp_b_buf[64*8];
  
  UART_init(UART_232_ON | UART_ON | UART_8_DATA_BITS | UART_BAUD_115200);
  UART_fcntl(UART_fcntl(UART_F_INQ) | UART_F_NO_CTS);
  delay_ms(100);
  if(ISO15693_VCD_On() != MI_OK) {
  	ISO15693_VCD_Off();
  	return -1;
  }
  if(rw_flag)
  	DispStr_CE(0,0,"请写卡... 6",DISP_POSITION|DISP_CLRSCR);
  else
  	DispStr_CE(0,0,"请读卡... 6",DISP_POSITION|DISP_CLRSCR);	
  Disp_set_font_attribute(DISP_FONT_TYPE_7x9);
  SPT_set(64);
  for(card_read_ok = 0, cntr = 6; cntr && !card_read_ok;) 
  {
  	if (!SPT_read()) 
  	{
  	  goto_xy(80,0);
  	  sprintf(buff,"%d",cntr-1);
  	  Disp_write_char(buff[0]);
  	  SPT_set(64);
  	  cntr --;
  	}
  	l_wStatus=ISO15693_FindOneCard(0x26, 0x00, &TagInfo);
        if (l_wStatus == MI_OK) 
	{
	    if(rw_flag==0){
	    	for(tcnt=0;tcnt<12;tcnt++){
	  	    l_wStatus=ISO15693_ReadBlock(0x22, TagInfo.UID, tcnt, 1, &RecLength, RecData+tcnt*4);
	  	    if(l_wStatus!=MI_OK)
	    		    break;
	    	}
	  	if(l_wStatus==MI_OK){
			card_read_ok=1;
			DispStr_CE(0,2,RecData,DISP_POSITION);
  		
  			get_any_key();
		}
	    }
	    else{
	        for(tcnt=0;tcnt<12;tcnt++){
	        	l_wStatus=ISO15693_WriteBlock(0x62, TagInfo.UID, tcnt, 1, 4, chip+tcnt*4);
	        	if(l_wStatus!=MI_OK)
	    		    break;
	        }
	        if(l_wStatus==MI_OK)
			card_read_ok=1;
	    }
	    
	}
  }
  ISO15693_VCD_Off();
  return l_wStatus;
}
int write_tagit(void)
{
	struct GETSTR_PARAM gs;
	unsigned char	input[6],dBuf[16];
	clr_scr();
	goto_xy(0,0);
	DispStr_CE(0,0,"请输入:",DISP_POSITION);
	gs.qx = 0;
	gs.sFont = 0;
	gs.alpha = 1;
	gs.pPrompt = "";
	gs.nullEnable = 1;
	gs.csChar = '_';
	gs.pwChar = 0;
	gs.spChar = 0;
	gs.pStr = chip;
	gs.qy = 2;
	gs.maxNum = 20;
	gs.minNum = 0;
	gs.minValue = 0;
	gs.maxValue = -1;
	gs.flimited = 0;//小数点后位数限定
	gs.pPrompt = "";
	gs.retNum = 0;
	switch(GetStr_E(&gs))
	{
		case 0:
			rw_tagit(1);
			return 0;
		case 1:
		case -1:
			
			return -1;
	}
}

void disp_menu (char *qBuf,int count,int current)
{
	int     q,x;

	for (q=0;q<4;q++)
	{
		if (q<count)
		{
			if (q==current)
				x = DISP_POSITION|DISP_REVERSE;
			else
				x = DISP_POSITION;
			qBuf[q*16+15]=0;	
			DispStr_CE(0,q*2,qBuf+q*16,x);
		}
		else
			ClearLine(q*2,DISP_7x9);
	}
}

void tagit_menu_process (void)
{
	typ_msg_word msg;
	int curPtr,linePtr,mint,halt=0;
	const char mmenu[5*16]="1.读TAGIT标签   2.写TAGIT标签   ";
	curPtr = linePtr = 0;
	mint = 2;
	disp_menu((char *)mmenu,mint,0);
	while(1)
	{
		msg.s_word = sys_msg(SM_GOTO_SLEEP);	
		if (msg.bits.key_available)
		{
			switch(KEY_read())
			{
				case KEY_UP:
				case 20:
				case KEY_2:
						if (curPtr>0)
							curPtr--;
						else
							if (linePtr>0)
								linePtr--;
						disp_menu((char *)(mmenu+linePtr*16),mint-linePtr,curPtr);
						break;
				case KEY_DOWN:
				case 21:
				case KEY_8:
						if (linePtr<mint-1)
						{
							if (curPtr>1)
								linePtr++;
							else
							    if (linePtr+curPtr>=mint-1) linePtr++;
						}
						if (curPtr<2)
							curPtr = ((mint-linePtr-1)>2)||(curPtr<(mint-linePtr-1)) ? curPtr+1 : mint-linePtr-1;
						else
							curPtr = (mint-linePtr-1)>2 ? 2 : mint-linePtr-1;
						disp_menu((char *)(mmenu+linePtr*16),mint-linePtr,curPtr);
						break;
				case KEY_POWER:
				case KEY_COMM:
						return;
				case KEY_F1:
					sys_menu_process();
					disp_menu((char *)(mmenu+linePtr*16),mint-linePtr,curPtr);
					break;		
				case KEY_ENTER:
						switch(linePtr+curPtr)
						{
							case 0:
								rw_tagit(0);
								clr_scr();
								break;
							case 1:
								write_tagit();
								break;
							
						}
						disp_menu((char *)(mmenu+linePtr*16),mint-linePtr,curPtr);
			}
		}
	}
}

void sys_menu_process (void)
{
	typ_msg_word msg;
	int curPtr,linePtr,mint,halt=0;
	const char mmenu[5*16]="1.按键音.背光   2.液晶对比度    3.手动设置时间  ";
	curPtr = linePtr = 0;
	mint = 3;
	disp_menu((char *)mmenu,mint,0);
	while(1)
	{
		msg.s_word = sys_msg(SM_GOTO_SLEEP);
		if (msg.bits.key_available)
		{
			switch(KEY_read())
			{
				case KEY_UP:
				case 20:
				case KEY_2:
						if (curPtr>0)
							curPtr--;
						else
							if (linePtr>0)
								linePtr--;
						disp_menu((char *)(mmenu+linePtr*16),mint-linePtr,curPtr);
						break;
				case KEY_DOWN:
				case 21:
				case KEY_8:
						if (linePtr<mint-1)
						{
							if (curPtr>1)
								linePtr++;
							else
							    if (linePtr+curPtr>=mint-1) linePtr++;
						}
						if (curPtr<2)
							curPtr = ((mint-linePtr-1)>2)||(curPtr<(mint-linePtr-1)) ? curPtr+1 : mint-linePtr-1;
						else
							curPtr = (mint-linePtr-1)>2 ? 2 : mint-linePtr-1;
						disp_menu((char *)(mmenu+linePtr*16),mint-linePtr,curPtr);
						break;
				case KEY_POWER:
				case KEY_COMM:
						return;
				case KEY_ENTER:
						switch(linePtr+curPtr)
						{
							case 0:
								beep_backlight();
								break;
							case 1:
								LCD_Regulate();
								break;
							case 2:
								modi_date();
								modi_time();
								break;
						}
						disp_menu((char *)(mmenu+linePtr*16),mint-linePtr,curPtr);
			}
		}
	}
}

void topmenu (void)
{
	char		dispBuf[20];
	typ_RTC_date_rec	dRec;
	
	dRec.l_word = RTC_read_date();
	DispStr_CE(0,1,"-TI标签演示程序-",DISP_CENTER|DISP_CLRSCR);
	sprintf(dispBuf,"%04d年%02d月%02d日",dRec.fields.year,dRec.fields.month,dRec.fields.day);
	DispStr_CE(0,6,dispBuf,DISP_CENTER);
}
int main(void) {
	typ_msg_word msg;
	KEY_init(KEY_BEEP_KEY|KEY_AUTO_EL_ON);

REBOOT:	Halt_6305=0;
	sm_setting(MSK_KEY_UP|MSK_KEY_DOWN);
	Disp_init(DISP_INIT_ON);
	if(key_beep)
	  KEY_beep_mask_set(0xffff7fff);
	if(light)
	{
	  KEY_EL_mask_set(0xffff7fff);
	  EL_set_time_out(30);
	}
	topmenu();
      while(1)
      {
		msg.s_word = sys_msg(SM_GOTO_SLEEP);
		if (msg.bits.key_available)
		{
			switch(KEY_read())
			{
				case KEY_ENTER:
					clr_scr();
					tagit_menu_process();
					break;
				case KEY_F1:
					clr_scr();
					sys_menu_process();
					break;	
				case KEY_POWER:
					if(Halt_6305)
						goto REBOOT;
					else
						Halt_HD6305();
					break;
			}
		topmenu();	
		}
	}
}

⌨️ 快捷键说明

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