亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? setup.c

?? 稅控收款機源碼:拼音輸入法,LCD,VFD驅動,IC卡驅動,稅控國標
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*-------------------------------------------------------------
模塊功能:編程功能--各類參數的設置
說明:符合國家標準GB18240.1-2003和GB18240.2-2003的稅控機軟件
日期:2003年6月12日
 
---------------------------------------------------------------*/
#include "include.h"

uchar code clear_card_ID[8]={0x52,0x49,0x53,0x45,0x20,0x03,0x11,0x18};

void ( *restart)();

void RestartToBoot(void)  //*****進入Boot升級程序
{
	//EA=0;
//	PSD8xx_reg.PAGE = 0x00;
//	restart=0x0000;
//	restart();
	//while(1);
	buzz_off();
	EA=0; 
	restart=0xff80;
	restart();
	while(1);
}

//從EEPROM中檢查是否有空位置來分發票
uchar get_V_invoice(uchar *index_no)
{
	uchar i,j;
	struct distribute_invoice_struct* distribute_invoice;
	uchar buf[5];
	j=0;
	for (i=0;i<MAX_DISTRIBUTE_NUM;i++)//0-50卷
	{    //13901開始
		if(read_eeprom(DISTRIBUTE_INVOICE_ADDR+(i+1)*(uint)sizeof(*distribute_invoice)-5,5,buf)) 
		return(READ_EEPROM_FAIL);
		//send_str((uint)sizeof(*distribute_invoice),distribute_invoice);
		if((!strlen(buf))&&(buf[4]==0)){*index_no++=i;j++;}
		if(low_pwr) return(POWER_OFF);
	}
    *index_no=j;
	return(j);//從EEPROM中沒有未錄入稅控卡的暫存發票卷
}
//===================================================================
/*uchar update_record(uchar which_card, uchar short_Fid,uchar rec_sn, uchar len, uchar *data_in)
                 
{
  
	uchar xdata buf[300]; 
	uchar xdata i;

  
  buf[0]=0x60;
  buf[1]=len+6;
  buf[2]=0;
  buf[3]=0x00;
  buf[4]=0xDC;
  buf[5]=rec_sn;
  buf[6]=((short_Fid<<3)&0xF8)^0x04;
  buf[7]=len;
  //send_char(buf[6]);
  memcpy(&buf[8], data_in, len);
  
  if(which_card==0)
    i=sam_iso(buf);
  else
    i=id_iso(buf);
  

  
	if(i)
		switch(which_card)
		{
		case SAM_CARD:
			return(SAM_COMM_FAIL);
		case USER_CARD:
			return(USR_COMM_FAIL);
		case CHK_CARD:
			return(CHK_COMM_FAIL);
		}
	if(((which_card==USER_CARD)||(which_card==CHK_CARD))&&((buf[3]==0x6a)&&(buf[4]==0x83))) 
   
    return FILE_OVER;
   
	else if((buf[3]!=0x90)||(buf[4]!=0x00))
	{
      
		switch(which_card)
		{
		case SAM_CARD:
			return(SAM_WRITE_FAIL);
		case USER_CARD:
			return(USR_WRITE_FAIL);
		case CHK_CARD:
			return(CHK_WRITE_FAIL);
		}
  }
    
  return 0;
}
//=====================================================================
/*uchar ReadRec1( uchar short_Fid,uchar rec_sn, uchar Lc, uchar *data_in)
                 
{
  
  uchar i;
  uchar buf[100];

  	buf[0]=0x60;
	buf[1]=6+Lc;
	buf[2]=0;
	buf[3]=0x00;	 // CLA  
	buf[4]=0xb2;     // INS 
	buf[5]=rec_sn;   // P1 
  	buf[6]=((short_Fid<<3)&0xF8)^0x04; 
	buf[7]=Lc;
	for(i=0;i<Lc;i++){buf[8+i]=*data_in++;}
	//send_str2(7+Lc,buf);
    i=id_iso(buf);
	if(i!=0)return (i);
    return 0;
}
*/
//=============================================================
uchar get_roll_no(uchar *roll_no)
{
    uchar buf[50];
	uchar tempbuf[50];
	uchar i,j;
	uchar result;
    strcpy(buf,"請輸入原發票的發票卷號:");//輸入BCD碼
    lcd_disp(2,0,buf);
    memset(tempbuf,0,50);
    result=get_num(tempbuf);
    if(result) return result;
    memset(&tempbuf[20],0,30);
    j=strlen(tempbuf);
    if(j%2) //轉成BCD碼
	{
		for(i=0;i<j-1;i++)
		{
			if(i%2)tempbuf[30-j/2+i/2]|=(tempbuf[i+1]&0x0f);
			else  { tempbuf[30-j/2+i/2]=(tempbuf[i+1]&0x0f);tempbuf[30-j/2+i/2]<<=4;}
		}
		tempbuf[30-(j+1)/2]|=(tempbuf[0]&0x0f);
	}
	else
	{
		for(i=0;i<j;i++)
		{
			if(i%2)tempbuf[30-j/2+i/2]|=(tempbuf[i]&0x0f);
			else  { tempbuf[30-j/2+i/2]=(tempbuf[i]&0x0f);tempbuf[30-j/2+i/2]<<=4;}
		}
	}
	memcpy(roll_no,&tempbuf[20],10);
	clear_lcd(3,1);
	return 0;
}
//=========================================================
uchar update_Clear_card(uchar mach_num)
{
	uchar error;
	uchar cur_date[8];
	uchar buf[32];

	buf[0]=mach_num;

	read_rtc(&cur_date[1]);
	cur_date[0] = 0x20;
	memcpy(&buf[1],cur_date,6);
	memcpy(&buf[7],&g_manufacturer_info.machinery_no[0],8);
	if(SelFile_id(CHK_CARD,0xEF03))
		return (CHK_COMM_FAIL);
  
	error=WriteRec(CHK_CARD,mach_num, 15, buf);//update_record(CHK_CARD,3,mach_num, 15, buf); // WriteRec(USER_CARD,mach_num, 15, buf);
	if(error)return error;

	return 0;
}
//=====================================================================
void StrToHex(uchar len,uchar *buf)
{
	uchar tempbuf[10];
	uchar i,j;
	j=0;
	for(i=0;i<(len/2);i++){tempbuf[i]=((buf[j]&0x0f)<<4)|(buf[j+1]&0x0f);j+=2;}
	for(i=0;i<(len/2);i++)buf[i]=tempbuf[i];

}
//======================================================================
uchar  check_clear_card(uchar setmode,uchar *mach_num)
{
	uchar xdata buf[50];
	uchar xdata RetVal;
	uchar pin_no[9];
	uchar limit_num;
	uchar error;
	uchar i;
    clear_lcd(0,4);
	strcpy(buf,"正在檢測設置卡..."); //校驗清機卡的PIN碼
	lcd_disp(1,0,buf);
    error=enter_application_direct(USER_CARD);
          if(error) return error;  
	if(SelFile_id(CHK_CARD,0xEF02))
		return (CHK_COMM_FAIL);
			  
	if(RW_bin(CHK_CARD, 0, 0, 20, buf))  
		return (CHK_COMM_FAIL);

	if(buf[0]!=0x5a)
		return (CARD_ERROR);  //非清機卡
	limit_num=buf[1];       //限定的次數

	if(read_rtc(&pin_no[1])!=0)
    {
     	return(READ_CLOCK_FAIL);//讀時鐘錯誤
    }
	pin_no[0] = 0x20;
	if(setmode==0)
	{
		if((memcmp(pin_no, &buf[10], 4)<0) ||(memcmp(pin_no, &buf[14], 4)>0))//清機卡已過期
		{
			return(CARD_DATE_INVALID);
		}
	}
	*mach_num=limit_num;
  
	if(SelFile_id(CHK_CARD,0xEF03))
		return (CHK_COMM_FAIL);
	for(i=0; i<limit_num; i++)//計算清機的次數
    {
		error = ReadRec(CHK_CARD,1,i+1,15, buf);
		if(error)return(error);
		//send_str(15,buf);
		if(buf[0]==0&&buf[1]==0)
		{
			*mach_num = i+1;
			break;        
		}
	}
   
	if(*mach_num>=limit_num) return (CARD_ERROR); 
 
	clear_lcd(0,4);
	strcpy(buf,"請輸入清機卡的密碼:"); //校驗清機卡的PIN碼
	lcd_disp(1,0,buf);
	set_value0(pin_no,(uint)sizeof(pin_no));
	RetVal =input_card_pin(16,pin_no);
	if(!RetVal)
	{
		RetVal = verify_pin(pin_no[0],&pin_no[1]);
		if(RetVal!=0) return RetVal;
	}
	else return RetVal;
	if(SelFile_id(2,0xEF01))
		return (CHK_COMM_FAIL); 
	if(RW_bin(CHK_CARD, 0, 0, 10, buf))
		return (CHK_COMM_FAIL);
	//send_char(*mach_num);
	if(memcmp(clear_card_ID,buf,8)==0)return 0;
	else
		return (CLEAR_CARD_IDFAIL);
}
 
/*==================================================================
函數功能:編程功能--各類參數的設置
入口參數:mach_initialed--機器是否已初始化
出口參數:
返回值:   ==POWER_OFF,則表示斷電,返回
	   =0,
全局變量:
編制人:     日期:2003-06-18
==================================================================*/
uchar setup(uchar mach_initial)
{
	////////////////////////1、變量說明區///////////////////////////////
	//======================1.1 菜單級變量==============================//
  	
	uchar xdata switch_mode,layer;//方式鎖位置,菜單級別
	uchar xdata last_line,cur_line;//上一級菜單項所在行,當前菜單項所在行(都從1開始)
	uchar xdata menu_num;//某一級中一個子菜單項數
	uchar xdata key;//鍵值
	ulong xdata num;
	//ulong xdata start_no;
	uchar xdata temp_rec_no;   //收款員號碼
	uchar xdata temp_authority; //收款員權限  0:收款員  1:管理員
	uchar rtc[7];
	uchar xdata index_no; //發票卷的序號
	uchar over_mode;//某項菜單選擇操作結束方式
	#define  NO_CHOOSED	0x0	//未選定任何菜單
	#define  IS_CHOOSED	0x1	//選定某項菜單
	#define  EXIT_CHOOSE	0xfe	//返回上一級菜單
	struct distribute_invoice_struct xdata distribute_invoice; //lyj 8.7
	uchar xdata menu_L1_ST[]={SET_UP,0};
	uchar  i,j,k,end_index;
	#ifdef allowsetjiqi                      //允許設置出廠參數
	uint crctemp;
	
    uchar xdata menu_L2_ST[]={FISCAL_MNGMNT, TRADE_PARA, GOODS_MNGMNT, COMMUNICATION,SET_MANUFACTURE,0};
    
    #define ITEM_NUM_L2	sizeof(menu_L2_ST)//第2級菜單項數
     uchar xdata menu_Lmax_ST[ITEM_NUM_L2-1][13]=
     {
		//稅務管理
		{GET_INVOICE_NO, SET_INVOICE_ROLL, UPDATE_CONTROL_MSG, 
        /*SET_BRANCH_INDEX, SET_PLU_INDEX,*/ PRINT_FISCAL_MSG, 
        PRINT_INV_ROLL, PRINT_INV_DATA,/*DISP_PRODUCER,*/ 0},

		//交易參數
		#ifdef NEED_BIT    //需要輔幣功能
		{SET_RECEIVER_PASSWORD, INVOICE_LOCATE, BRANCH_PLU_SWITCH, PDA_SWITCH,
		PRINT_ITEM_SELECT,AUTHORITY_SETUP,FIXED_DISCOUNT, FIXED_SERVICE, SET_BIT_RATE, 0},
		#else
		{SET_RECEIVER_PASSWORD, INVOICE_LOCATE, BRANCH_PLU_SWITCH, PDA_SWITCH,
		PRINT_ITEM_SELECT,AUTHORITY_SETUP,FIXED_DISCOUNT, FIXED_SERVICE,PLU_INMODE,SET_BIT_RATE,SET_PRT_MODE,SELE_PRINTER ,0},//SET_TIME_MODE ,
		#endif 
  	   
		//商品管理
		//    {BRANCH_NAME, SET_MAX_PLU, PLU_NAME, PLU_PRICE, /*BAR_CODE,*/ 
		//       PLU_BRANCH, SET_STOCKS, 0},
		{BRANCH_MANAGEMENT, SET_MAX_PLU, PLU_MANAGEMENT,UPDATA_INFO_PAYER , 0},
		//通訊傳送
		{READ_PLU_HEAD, SEND_PLU_HEAD, READ_PLU_ALL, SEND_PLU_ALL, READ_BRANCH_NAME,SEND_BRANCH_NAME,FLASHCARD_PLU,OTHER_COMM, 0},
		//
		{SET_JIQIHAO, SET_ZHIDATE,CLEAR_PINCODE, SET_TIME, FORMAT_FILE,UPDATE_PROGRAM,0}
	};
 
	#else                                     //不允許設置出廠參數
		uchar xdata menu_L2_ST[]=
		{FISCAL_MNGMNT, TRADE_PARA, GOODS_MNGMNT, COMMUNICATION,0};
	#define ITEM_NUM_L2	sizeof(menu_L2_ST)//第2級菜單項數
	uchar xdata menu_Lmax_ST[ITEM_NUM_L2-1][10]=
	{
	//稅務管理
    {GET_INVOICE_NO, SET_INVOICE_ROLL, UPDATE_CONTROL_MSG, 
	/*SET_BRANCH_INDEX, SET_PLU_INDEX,*/ PRINT_FISCAL_MSG, 
	PRINT_INV_ROLL, 
	/*DISP_PRODUCER,*/ 0},

    //交易參數
    #ifdef NEED_BIT    //需要輔幣功能
    {SET_RECEIVER_PASSWORD, INVOICE_LOCATE, BRANCH_PLU_SWITCH, PDA_SWITCH,
	PRINT_ITEM_SELECT,AUTHORITY_SETUP,FIXED_DISCOUNT, FIXED_SERVICE, SET_BIT_RATE, 0},
    #else
    {SET_RECEIVER_PASSWORD, INVOICE_LOCATE, BRANCH_PLU_SWITCH, PDA_SWITCH,
	PRINT_ITEM_SELECT,AUTHORITY_SETUP,FIXED_DISCOUNT, FIXED_SERVICE,  0}, //SET_TIME_MODE,
    #endif
    //商品管理
	//    {BRANCH_NAME, SET_MAX_PLU, PLU_NAME, PLU_PRICE, /*BAR_CODE,
	//       PLU_BRANCH, SET_STOCKS, 0},
	{BRANCH_MANAGEMENT, SET_MAX_PLU, PLU_MANAGEMENT,UPDATA_INFO_PAYER , 0},
	//通訊傳送
	{READ_PLU_HEAD, SEND_PLU_HEAD, READ_PLU_ALL, SEND_PLU_ALL, READ_BRANCH_NAME,SEND_BRANCH_NAME,FLASHCARD_PLU, 0}
	//
	};
	#endif

	//===================1.2 功能級變量==================================//
	uchar xdata function_no;//功能號
	uchar xdata result;//操作結果
	uchar xdata buf[50];//臨時緩沖區
	uchar tempbuf[51];
	uchar no[10];
	//uchar i;//臨時循環計數變量
	//uchar chk_type;//稅控管理卡類別  
	struct invoice_roll_info_struct xdata inv_roll_info;
	struct invoice_roll_struct xdata inv_roll;
	struct record_struct xdata record;
	//struct invoice_roll_addr_struct inv_roll_addr;
	//uint temp;
	uchar is_first_enter;//是否第一次進入當前功能菜單
  
  //////////////2、代碼執行區///////////////////////////////
  //============2.1 操作菜單,選擇某個設置功能=================//
  //------------2.1.1 初始化----------//
  switch_mode=SETUP;//編程檔
  layer=SND_LAYER_MENU;//初始為第二級菜單
  cur_line=1;//初始為第一行
  last_line=1;
  //display_menu_page(switch_mode,layer,menu_L1_ST,cur_line);
  menu_num=strlen(menu_L1_ST);
  is_first_enter=1;
  //result=read_eeprom(RECEIVER_NO,2,buf);//先登錄
  //if(result) return READ_EEPROM_FAIL;
  //i=buf[0];
  //if(!i) return POWER_FAIL_1;
  //------------2.1.2 等待按鍵,選擇菜單功能----------//
  while(1)
  {
    if(low_pwr) return POWER_OFF;//如果斷電了,則exit 
	openbacklight();
    key = get_key();
    if(!key) //未按下任何鍵
    {
      if(layer==FST_LAYER_MENU) return 0;//此時若在第1級菜單,則返回主程序,可切換方式鎖位置
      if(!is_first_enter) continue;//等待按鍵
      else is_first_enter=0;
    }
    //else beep(50);
    if(key==PAPER1) //若按下[走紙]鍵,則走紙1行
    {
		#ifdef C6_VER
		result=fpaper(6);
		if(result) return LINE_FEED_FAIL;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九在线精品视频| 制服.丝袜.亚洲.中文.综合| k8久久久一区二区三区| 欧美一区二区三区成人| 国产精品成人免费| 久久99在线观看| 欧美怡红院视频| 国产精品―色哟哟| 国模无码大尺度一区二区三区| 成人福利视频网站| 久久免费的精品国产v∧| 婷婷久久综合九色综合绿巨人| 成人高清视频免费观看| 精品国产免费人成电影在线观看四季| 亚洲激情第一区| av高清久久久| 久久久久久电影| 免费成人美女在线观看| 欧美午夜影院一区| 亚洲精品成a人| 成人丝袜18视频在线观看| 精品国产一区二区亚洲人成毛片 | 99热99精品| 亚洲精品一区二区三区香蕉 | 久久精品免费观看| 欧美顶级少妇做爰| 亚洲国产精品人人做人人爽| 99国产精品久久久久久久久久久 | 福利一区二区在线观看| 日韩欧美激情四射| 狠狠色综合播放一区二区| 91精品国产91热久久久做人人| 亚洲午夜久久久久久久久久久| 欧洲精品中文字幕| 亚洲国产一区二区在线播放| 91福利国产精品| 亚洲综合精品自拍| 欧美三级视频在线观看| 亚洲一区二区欧美| 欧美一区二区三区不卡| 久热成人在线视频| 久久婷婷国产综合国色天香| 精东粉嫩av免费一区二区三区| 精品毛片乱码1区2区3区| 麻豆成人在线观看| 337p日本欧洲亚洲大胆色噜噜| 精品一区二区av| 国产日韩精品久久久| 成人sese在线| 亚洲一二三四在线| 日韩小视频在线观看专区| 狠狠色丁香久久婷婷综合丁香| 国产欧美日产一区| 日本精品一区二区三区高清| 亚洲综合免费观看高清完整版在线| 欧美在线看片a免费观看| 日韩电影在线观看电影| 久久久久久免费网| 91久久精品午夜一区二区| 日韩avvvv在线播放| 久久人人超碰精品| 色香色香欲天天天影视综合网| 亚洲国产一区视频| 久久亚洲私人国产精品va媚药| 99re热视频精品| 肉肉av福利一精品导航| 久久精品在线观看| 欧美日韩国产免费| 福利电影一区二区三区| 午夜在线成人av| 国产午夜精品一区二区三区嫩草| 91在线你懂得| 精品一区二区综合| 亚洲一区日韩精品中文字幕| 精品日韩在线观看| 在线看国产一区二区| 国产一区二区按摩在线观看| 亚洲黄色性网站| 国产日韩欧美一区二区三区综合| 在线日韩国产精品| 成人教育av在线| 日韩成人精品视频| 亚洲精品中文在线影院| 久久久99久久精品欧美| 欧美日韩国产首页| 成人动漫一区二区在线| 寂寞少妇一区二区三区| 一区二区三区.www| 中文一区二区在线观看| 欧美久久久久久蜜桃| 色综合中文字幕| 欧美三级韩国三级日本三斤| 亚洲成人资源网| 精品成a人在线观看| 制服丝袜亚洲播放| 一区二区三区精密机械公司| 国产成人精品免费看| 久久久91精品国产一区二区精品| 国产一区二区福利视频| 亚洲欧洲日韩在线| 欧美日韩成人综合天天影院| 欧美aaa在线| 国产日韩欧美高清| 4438x成人网最大色成网站| 亚洲蜜臀av乱码久久精品蜜桃| 欧美妇女性影城| 亚洲一区在线观看网站| 自拍偷拍国产精品| 国产精品系列在线| 国产日韩精品一区| 久久精品视频网| 久久久不卡网国产精品二区| 精品少妇一区二区三区免费观看 | 精品久久五月天| 欧美电影在哪看比较好| 欧美日韩中字一区| 欧美日韩国产另类不卡| 欧美日韩免费不卡视频一区二区三区| 91免费看片在线观看| 色综合婷婷久久| 欧洲一区二区三区在线| 欧洲另类一二三四区| 欧美日韩情趣电影| 欧美精品免费视频| 欧美一级爆毛片| 久久免费国产精品 | 5858s免费视频成人| 9191久久久久久久久久久| 欧美精品乱码久久久久久按摩 | 日韩三级av在线播放| 日韩精品一区二区三区蜜臀| 欧美精品一区二| 中国av一区二区三区| 亚洲自拍都市欧美小说| 日韩精品成人一区二区在线| 久久丁香综合五月国产三级网站| 毛片基地黄久久久久久天堂| 国产精品一区专区| 99r精品视频| 欧美高清性hdvideosex| 日韩精品一区二区三区视频播放 | 亚洲一区二区三区四区在线观看 | 成人高清视频免费观看| 91高清视频免费看| 欧美一区二区三区性视频| 久久久噜噜噜久久人人看 | 精品美女被调教视频大全网站| 久久综合久久综合久久| 亚洲色图一区二区| 日韩国产高清在线| 成人免费毛片高清视频| 欧美日韩在线播| 久久久久久久网| 亚洲第一激情av| 国产高清精品久久久久| 色婷婷久久久亚洲一区二区三区 | 久久精品这里都是精品| 亚洲一区二区三区激情| 精品制服美女久久| 色综合欧美在线视频区| 精品久久五月天| 一个色综合网站| 国产精品一二三| 欧美精品丝袜中出| 中文字幕日韩一区| 久久不见久久见免费视频1| 色美美综合视频| 国产欧美日韩不卡免费| 免费av成人在线| 色婷婷综合久色| 国产亚洲1区2区3区| 日本不卡中文字幕| 欧美视频一区二区三区四区 | 亚洲一区二区精品久久av| 国产成人精品综合在线观看| 欧美精品日日鲁夜夜添| 亚洲免费在线看| 粗大黑人巨茎大战欧美成人| 日韩精品一区二| 免费成人在线观看| 3atv一区二区三区| 亚洲一区二区影院| 91麻豆成人久久精品二区三区| 久久亚洲综合色| 久久精品国产77777蜜臀| 欧美日韩三级视频| 亚洲激情欧美激情| 91论坛在线播放| ...av二区三区久久精品| 粉嫩av一区二区三区在线播放| 日韩精品一区国产麻豆| 免费av网站大全久久| 宅男在线国产精品| 日韩av中文字幕一区二区| 欧美日韩一区二区三区高清| 亚洲视频一区在线| 91麻豆免费视频| 亚洲欧美一区二区三区极速播放| 成人黄动漫网站免费app| 久久久久国产一区二区三区四区|