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

📄 authorize_process.c

📁 stc-isp开发板驱动程序
💻 C
字号:
#include <config.h>

#define IN_AUTHORIZE

unsigned int xdata exhaust_number=0;
unsigned int xdata authorize_number=0;
unsigned char xdata display_alter=0,Authorize_f=0,wrong_LED_f=0; 

void Authorize_process(void)
{if((authorize_number)>=0x01)
   {if(Authorize_f)
	  {rs232_senddata(0x1c);		  //发送一次激活码
	   rs232_senddata(0x3f);
	   rs232_senddata(0x46);
	   Authorize_f=0x00;			  //按键一次只发送一次激活码
       wrong_LED=0x00;			//点亮激活失败的指示灯 
	   right_LED=0x01;		    //熄灭成功激活的指示灯 
	   }
	}
 }



void Rs232rece_process(void)
{static unsigned char idata k[3];

  if(rs232_getdata(0x00)!=0x00)		//当串口就收到数据才校验同步
	 {k[0]=k[1];
	  k[1]=k[2];
	  k[2]=rs232_getdata(0x01);
	  if(rs232_getdata(0x01)==0x55)
	     k[2]=0x00;				   //排除卡带机程序中的0x55同步命令 
	  if((k[0]==0x5a)&&(k[1]==0x66)&&(k[2]==0xa5))  //获得1000片的激活资格 
         {authorize_number=1000;
		  rs232_senddata(0x5a);
		  rs232_senddata(0x33);
		  rs232_senddata(0xa5);
	      #if  EEPROM_USING
	           eeprom_operatemode=0x02; //将要记忆的内容写入EEPROM
	           eeprom_process();        // EEPROM的读写
          #endif
	     }
	  if((k[0]==0x5a)&&(k[1]==0x77)&&(k[2]==0xa5))  //清空已经激活的数目 
         {exhaust_number=0x00;
		  rs232_senddata(0x5a);
		  rs232_senddata(0x22);
		  rs232_senddata(0xa5);
	      #if  EEPROM_USING
	           eeprom_operatemode=0x02; //将要记忆的内容写入EEPROM
	           eeprom_process();        // EEPROM的读写
          #endif
	     }
      else if((k[0]==0x5a)&&(k[1]==0x88)&&(k[2]==0xa5))  //获得激活反馈  
              {if(exhaust_number<=9999)
	             {exhaust_number++;
			      right_LED=0x00;		 //点亮成功激活的指示灯 
				  wrong_LED=0x01;		 //熄灭激活失败的指示灯 
				  wrong_LED_f=0x00;		 
			      }
	           else 
	              exhaust_number=0x00;
	           if(authorize_number>=0x01)
	              authorize_number--;
		       else 
		          wrong_LED=0x00;        //点亮激活失败的指示灯 
	           #if  EEPROM_USING
	                eeprom_operatemode=0x02; //将要记忆的内容写入EEPROM
	                eeprom_process();        // EEPROM的读写
               #endif
	           }
      }
  if(key_key==0x82)				//检测到发送激活码的命令 
     {Authorize_f=0x01;
	  //rs232_senddata(0x82);
	  key_key=0x00;
	  }
  else if(key_key==0x81)				//检测到按键显示的切换
          {display_alter++;
		   //rs232_senddata(0x81);
	       key_key=0x00;
	       }
  if(display_alter%2)
     {g_display_state=0x00;	   //LED显示剩下的数目
	  authorize_LED=0;		   //点亮表示剩下可烧芯片数目的指示灯
	  exhaust_LED=1;		   //熄灭已烧芯片数目的指示灯
	  }
  else
     {g_display_state=0x01;    //LED显示已烧写数目	
	  exhaust_LED=0;		   //点亮已烧芯片数目的指示灯
	  authorize_LED=1;		   //熄灭表示剩下可烧芯片数目的指示灯
	  }
 }

⌨️ 快捷键说明

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