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

📄 main.c

📁 LPC213X驱动LCD19264,I2C通讯,串口,FLASH读写
💻 C
📖 第 1 页 / 共 5 页
字号:
#include  "config.h"


#define V10
#define USERFID
//#define TEST_RFID
//#pragma arm section rodata


/***************************************************************************************************/

const static uint8 DS2401_ID[3]={0X02,0X52,0X00};
/**********************************************************************************************/
volatile uint16 MenuState,MenuStateFlag,MessageWritePointer,InputLength,InputLengthMin,InputLengthMax;
volatile uint8 TimerEvent,KeyBoardState,Key,ReceiveMessageBox,ReceiveEvent,Receiving,SendBusy,MessageNum;
volatile uint8 ReceiveBuffer[MAX_RECEIVE_BUFFER],SendBuffer[MAX_SEND_BUFFER];
volatile uint16 SendPointer,ReceivePointer,DealPointer;
volatile uint8 ContainerNumberAck[150],ACK_Requirly[100],GpsDateTimePos[80];
volatile uint8 GsmSignal,DisplayCx,DisplayCy,DisplayPage,DisplayEntry;
volatile uint8 GSMReceiveBuffer[GSM_MAX_RECEIVE_BUFFER],GSMSendBuffer[GSM_MAX_SEND_BUFFER],GsmACK[8];
volatile uint16 GSMSendPointer,LDGSMSendPointer,GSMReceivePointer,GSMDealPointer;
volatile uint32 WaitingACKTimer;

volatile char ContainerNumber[8][20],ConsigNote[8][50],InPortCode[8][50],KonfaiNumber[8][50],CustomerName[8][30],Pickup[8][5],DeportCode[8][5],InPort[8][5],OperatorRoom[8][20],BookingRef[8][20];
volatile char DisApprovedText[96],ServerAckText[96];

volatile uint8 SendSaDaPointer,SaveDaPointer,SignalLowToHigh,KeyOnePress;

volatile char InstructionMsg[JOB_MAXLENGTH],DetInstruMsg[8][DJOB_MAXLENGTH],WaitingACK,ACK;
volatile char Odometer[8],NewAddress[10],StationCode[8],WorkSavePointe,WorkType,WorkTypeList;

volatile char Message[MaxMsg][MaxMsgsize],TempSaveMessage[100],ObjectNumber[8*20],InputBuffer[255],ACK_BreakDown[100];
volatile uint16 DealMessage,UARTReceieTimerLimit,UARTNoReceieTC,ReInstrPointer;


volatile char DriverID[DRIVERIDLENGTH],MDTID[MDTIDLENGTH];

volatile char ContainerNumber1[CNTR_MAXLENGTH],ContainerNumber2[CNTR_MAXLENGTH],TrailerNumber[TRAILER_MAXLENGTH];
volatile char SealNumber1[SN_MAXLENGTH],SealNumber2[SN_MAXLENGTH],GSMNumber[GSM_MAXLENGTH];
volatile char QtyContainer[3];

volatile uint8 week,month,day,hour,minute,second,NewMessage,ReceHead,FrameEnd,WorkFlag;
volatile uint16 year,RecTemp,AddressTemp;
volatile uint8 CurDisMsg,CurMsg,NewJobFlag,FlashNewJobFlag;
volatile uint8  rcv_new;     	// 接收新数据标志*/
volatile char RefueValue[6],RefuelApprovedCode[8],RefuelStationCode[20];

volatile uint8 MenuPressKeyFlag,LastKey,NowKey;
volatile uint16 MenuWaitEvent,SendingFlag;
//struct date today;
//struct time now;
volatile uint8 GobalTimer,LogInOutStatue,PowerOnCounter;
//#ifdef V10
volatile uint8 GpsSendPointer,GpsReceivePointer,GpsDealPointer;
volatile uint8 GpsRecvBuffer[GPS_RECV_BUFFER],GpsSendBuffer[GPS_SEND_BUFFER];
volatile uint8 RfidRecvBuffer[RFID_RECV_BUFFER],RfidSendBuffer[RFID_SEND_BUFFER];
volatile uint8 PritRecvBuffer[PRIT_RECV_BUFFER],PritSendBuffer[PRIT_SEND_BUFFER];
//#endif
const char checkch1[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

/*************************************************/
/* 
uint8 const DISP_TAB[16] = { 0x5A, 0xA5, 0x5A, 0xA5, 0x5A, 0xA5, 0x5A, 0xA5,
                             0x5A, 0xA5, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA
	                   		};
 uint8  rcv_data; */

 /*****************************************************************************/
 void Lcm19264BackLightOn()
 {
  IO0SET = LCM_BG;
 }

 void Lcm19264BackLightOff()
 {
  IO0CLR = LCM_BG;
 }
void InitBeep(void)
{
 #ifdef ZLG_MEDOBOARD
               IO0DIR = BEEPCON; //a sound beep
 #else
               IO1DIR = BEEPCON; //a sound beep
 #endif
 } 
 
void Beep(uint16 i)
{
#ifdef ZLG_MEDOBOARD
               IO0CLR = BEEPCON; //a sound beep
              DelayMS(i);
              IO0SET = BEEPCON;
 #else
              IO1CLR = BEEPCON; //a sound beep
              DelayMS(i);
              IO1SET = BEEPCON;
 #endif
 } 
 
void PowerON()
 {
  IO0SET = POWER_ONOFF;
  } 
 
void PowerOFF()
 {
  IO0CLR = POWER_ONOFF;
  } 
   
 char PowerCheck(void)
 {
  if ((IO0PIN & POWER_CHECK) == 0) 
       return 0;
  else return 1;
  
 }
   
void PowerSwitchOnOffCheck(void)
 {
   if(PowerCheck()==0)
       PowerOnCounter=1;
    else  if(PowerCheck()==1)
    {
      if(PowerOnCounter==1)
       {
        DelayMS(30);
        if(PowerCheck()==1) 
          {
            CLRLCD(0);
            LCM_DispPageCh(CLOSEMENU);
            while(1) 
             {
               PowerOFF();
               DispTime(0,24,"sy");
              }
           }
        }
       
     }
 }

void EnableUart0INT(void)
{
  VICIntEnable = 1<<6;//0x00000040;           // 使能UART0中断 
 }
 
 void DisableUart0INT(void)
{
  VICIntEnClr =1<<6;// 0x00000040;
 }
 
void __irq IRQ_Eint3(void)
{  
  uint32  i;   
   i = IO0SET;						// 读取当前B1控制值
   if( (i&BEEPCON)==0 )				// 控制B1输出取反
   {  IO0SET = BEEPCON;
   }
   else
   {  IO0CLR = BEEPCON;
   }
   //Key=MDTGetKeyboard();
   //VICIntEnClr=0x00020000;
   Key=1;
   EXTINT = 0x08;					// 清除EINT1中断标志
   VICVectAddr = 0;					// 向量中断结束
   
}	

void InitEint3()
{
   /* PINSEL1 = 0x20000000;			// 设置管脚连接,P0.30设置为EINT3
    EXTMODE |= 0x08;					// 设置EINT3中断为边沿触发模式
    EXTPOLAR &= 0xfe;			   // 设置EINT3中断为下降沿触发
   */
    VICIntSelect = 0x00000000;		// 设置所有中断分配为IRQ中断
    VICVectCntl3 = 0X20|17;				// 分配EINT3中断到向量中断3
    VICVectAddr3 = (int32)IRQ_Eint3;//IRQ_Eint3; 	// 设置中断服务程序地址
    EXTINT = 0x08;					// 清除EINT3中断标志	
    VICIntEnable = 1<<17;//0x00020000;  // 使能ext EINT中断
    	
 }
 
 void Uart1MuxSel(uint8 GpsRfid)
 {
   if(GpsRfid==0)
   {
    IO0SET = SEL_GPS;
    IO0SET = SEL_RFID;
    }
   else if(GpsRfid==UART1GPS)
    {
    IO0SET = SEL_RFID;
    DelayMS(1);
    IO0CLR = SEL_GPS;
    }
    else if(GpsRfid==UART1RFID)
    {
    IO0SET = SEL_GPS;
    DelayMS(1);
    IO0CLR = SEL_RFID;
    }
    
  }
/*********************************************************************************/
void InitMdtPram(void)
{
    uint16 i;
    
    for(i=0;i<MaxJobMsg;i++)
      memset((char *)DetInstruMsg[i],0,sizeof(DetInstruMsg[i])); 
      
    for(i=0;i<8;i++)
      memset((char *)DetInstruMsg[i],0,sizeof(DetInstruMsg[i]));
    for(i=0;i<8;i++)
       ReadEeprom(CAT24WC256, EEPROM_DetInstruMsg1+DJOB_MAXLENGTH*i,(uint8 *)DetInstruMsg[i], DJOB_MAXLENGTH);
    ReadEeprom(CAT24WC256, EEPROM_WorkloadAddr,(uint8 *)&WorkSavePointe, 1);
   	if(WorkSavePointe>7)
   	  WorkSavePointe=0;  
      
    for(i=0;i<MaxMsg;i++)
      memset((char *)Message[i],0,sizeof(Message[i]));
    for(i=0;i<MaxMsg;i++)
       ReadEeprom(CAT24WC256, EEPROM_MsgAddr+255*i,(uint8 *)Message[i], 255);
   	ReadEeprom(CAT24WC256, EEPROM_CurrentMsgAddr,(uint8 *)&ReceiveMessageBox, 1);
   	if(ReceiveMessageBox>=8)
   	  ReceiveMessageBox=0;
   	  
   	/*TEST*/
   	/*for (i=0; i<75; i++)
		data_buf[i] = i+1 ;				
	WriteEeprom(CAT24WC256, 2,(uint8 *)data_buf,64);
	//I2C_WriteNByte(CAT24WC02, TWO_BYTE_SUBA, 6, data_buf, 63);;
	DelayMS(10);		
	for (i=0; i<75; i++)
		data_buf[i] = 0;
        ReadEeprom(CAT24WC256,2,(uint8 *)data_buf,sizeof(data_buf));
	//I2C_ReadNByte(CAT24WC02, TWO_BYTE_SUBA, 6, data_buf, 63);
	*/
	/*EEPROM SET*/
   /*
   WriteEeprom(CAT24WC256, EEPROM_MDT,(uint8 *)"MDT001",6);
   WriteEeprom(CAT24WC256, EEPROM_DriverID,(uint8 *)"Driver", 6);
   WriteEeprom(CAT24WC256, EEPROM_CONTAINER1,(uint8 *)"CNT1", 4);
   WriteEeprom(CAT24WC256, EEPROM_CONTAINER2,(uint8 *)"CNT2", 4);
   WriteEeprom(CAT24WC256, EEPROM_SEALNUMBER1,(uint8 *)"SN1", 3);
   WriteEeprom(CAT24WC256, EEPROM_SEALNUMBER2,(uint8 *)"SN2", 3); 
   WriteEeprom(CAT24WC256, EEPROM_TRAILER,(uint8 *)"TRAILER", 7);
     */
     memset((char *)GpsDateTimePos,0,sizeof((char *)GpsDateTimePos));
     memcpy((char *)GpsDateTimePos,"GPS",3);
     
     memset((char *)Odometer,0,sizeof((char *)Odometer));
     memcpy((char *)Odometer,"60",2);
     
     memset((char *)DriverID,0,sizeof((char *)DriverID)); 
     memcpy((char *)DriverID,"Driver",6);
     
     memset((char *)MDTID,0,sizeof((char *)MDTID)); 
     memcpy((char *)MDTID,"MDT001",6);
     
     memset((char *)SealNumber1,0,sizeof((char *)SealNumber1));
     memcpy((char *)SealNumber1,"SN1",3);
     
     memset((char *)SealNumber2,0,sizeof((char *)SealNumber2)); 
     memcpy((char *)SealNumber2,"SN2",3); 
     
     memset((char *)ContainerNumber1,0,sizeof((char *)ContainerNumber1));
     memcpy((char *)ContainerNumber1,"CNo1",4); 
      
     memset((char *)ContainerNumber2,0,sizeof((char *)ContainerNumber2)); 
     memcpy((char *)ContainerNumber2,"CNo2",4);
      
     memset((char *)TrailerNumber,0,sizeof((char *)TrailerNumber)); 
     memcpy((char *)TrailerNumber,"Trailer",7);
      
      
    /*
   memset((char *)MDTID,0,sizeof((char *)MDTID));
   memset((char *)DriverID,0,sizeof((char *)DriverID));
   memset((char *)ContainerNumber1,0,sizeof((char *)ContainerNumber1));
   memset((char *)ContainerNumber2,0,sizeof((char *)ContainerNumber2));
   memset((char *)SealNumber1,0,sizeof((char *)SealNumber1));
   memset((char *)SealNumber2,0,sizeof((char *)SealNumber2));
   memset((char *)TrailerNumber,0,sizeof((char *)TrailerNumber));
   memset((char *)InstructionMsg,0,sizeof((char *)InstructionMsg));
   memset((char *)DetInstruMsg1,0,sizeof((char *)DetInstruMsg1));
   memset((char *)DetInstruMsg2,0,sizeof((char *)DetInstruMsg2));
   
   memset((char *)DeviceID,0,sizeof(DeviceID));
   memset((char *)Odometer,0,sizeof(Odometer));
   memset((char *)RFIDNO,0,sizeof(RFIDNO));
   */
   /*
   ReadEeprom(CAT24WC02, EEPROM_InstructionMsg,(uint8 *)InstructionMsg, DJOB_MAXLENGTH);
   if(isgraph(InstructionMsg[0]))
    {i=0;
     while(isgraph(InstructionMsg[i++]));//==1)&(i<MDTIDLENGTH))
     if(i<JOB_MAXLENGTH)
       InstructionMsg[i-1]=0;
     else
       InstructionMsg[JOB_MAXLENGTH-1]=0;
    }
   else
     memset((char *)InstructionMsg,0,sizeof(InstructionMsg));
   

   ReadEeprom(CAT24WC02, EEPROM_DetInstruMsg1,(uint8 *)DetInstruMsg1, DJOB_MAXLENGTH); 
   if(isgraph(DetInstruMsg1[0]))
    {i=0;
     while(isgraph(DetInstruMsg1[i++]));//==1)&(i<MDTIDLENGTH))
     if(i<DJOB_MAXLENGTH)
       DetInstruMsg1[i-1]=0;
     else
       DetInstruMsg1[DJOB_MAXLENGTH-1]=0;
    }
   else
     memset((char *)DetInstruMsg1,0,sizeof(DetInstruMsg1));

   ReadEeprom(CAT24WC02, EEPROM_DetInstruMsg2,(uint8 *)DetInstruMsg2, DJOB_MAXLENGTH); 
   if(isgraph(DetInstruMsg2[0]))
    {i=0;
     while(isgraph(DetInstruMsg2[i++]));//==1)&(i<MDTIDLENGTH))
     if(i<DJOB_MAXLENGTH)
       DetInstruMsg2[i-1]=0;
     else
       DetInstruMsg2[DJOB_MAXLENGTH-1]=0;
    }
   else
     memset((char *)DetInstruMsg2,0,sizeof(DetInstruMsg2));
 
  ReadEeprom(CAT24WC02,EEPROM_MDT,(uint8 *)TempBuf,sizeof(MDTID));
   if(isgraph(TempBuf[0]))
   {i=0;
    while(isgraph(TempBuf[i++]));//==1)&(i<MDTIDLENGTH))
    if(i<MDTIDLENGTH)
     TempBuf[i-1]=0;
    else
     TempBuf[MDTIDLENGTH-1]=0;
   //temp=strlen((char *)TempBuf);
   if(strlen((char *)TempBuf)==0)
     strncpy((char *)MDTID,"MDT01",5);
   else //if(strlen((char *)TempBuf)>=sizeof(MDTID))
     strncpy((char *)MDTID,(char *)TempBuf,sizeof(MDTID)-1);
  // else (strlen((char *)TempBuf)>0)
     //strncpy((char *)MDTID,(char *)TempBuf,sizeof(TempBuf));
    }
   else
    strncpy((char *)MDTID,"MDT01",5); 
  
   ReadEeprom(CAT24WC02,EEPROM_DriverID,(uint8 *)TempBuf,sizeof(DriverID));
   if(isgraph(TempBuf[0]))
   {i=0;
    while(isgraph(TempBuf[i++]));//==1)&(i<MDTIDLENGTH))
    if(i<DRIVERIDLENGTH)
     TempBuf[i-1]=0;
    else
     TempBuf[DRIVERIDLENGTH-1]=0;
   //temp=strlen((char *)TempBuf);
   if(strlen((char *)TempBuf)==0)
     strncpy((char *)DriverID,"Driver01",8);
   else //if(strlen((char *)TempBuf)>=sizeof(DriverID))
     strncpy((char *)DriverID,(char *)TempBuf,sizeof(DriverID)-1);
  // else
     //strncpy((char *)DriverID,(char *)TempBuf,sizeof(TempBuf));
   } 
   else
    strncpy((char *)DriverID,"Driver01",8);
       
   ReadEeprom(CAT24WC02,EEPROM_CONTAINER1,(uint8 *)TempBuf,sizeof(ContainerNumber1));
   if(isgraph(TempBuf[0]))
   { i=0;
    while(isgraph(TempBuf[i++]));//==1)&(i<MDTIDLENGTH))
    if(i<CNTR_MAXLENGTH)
     TempBuf[i-1]=0;
    else
     TempBuf[CNTR_MAXLENGTH-1]=0;
   //temp=strlen((char *)TempBuf);
   if(strlen((char *)TempBuf)==0)
     strncpy((char *)ContainerNumber1,"CNo1",4);
   else //if(strlen((char *)TempBuf)>=sizeof(ContainerNumber1))
     strncpy((char *)ContainerNumber1,(char *)TempBuf,sizeof(ContainerNumber1)-1);

⌨️ 快捷键说明

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