📄 remoter.lst
字号:
sReceiveState++;
}else
{
pReceiveBuffer[sReceiveState-6]=c;
sReceiveState++;
if(sReceiveState == 43)
{
sReceiveState = 0;
gSerialReceiveFlag = 1;
}
}
C51 COMPILER V7.01 REMOTER 05/18/2006 11:54:09 PAGE 6
}
if(sReceiveState>2)
{
if(gReceiveTimeout==0)
sReceiveState = 0;
gReceiveTimeout=200;
}
else
gReceiveTimeout=200;
}
void SendDataTo776(uChar type ,uChar len,uChar *pTemp)
{
uChar *pSendTo776Buffer = pReceiveBuffer;
uChar i;
uChar tTempSum=0;
OpenInt0AndCloseSerial();
pSendTo776Buffer[0]=0x24;
pSendTo776Buffer[1]=type;
pSendTo776Buffer[2]=len + 4;//4 for Token+type+len+CheckSum;
for(i=0 ;i<len; i++)
pSendTo776Buffer[3+i] = pTemp[i];
for(i=0 ;i<(len+3); i++)
tTempSum = pSendTo776Buffer[i];
pSendTo776Buffer[len+3] = tTempSum;
gSendArray = len+4;
gSendLen = gSendArray;
gSendBit=8;
gSendTimeout = 200;
DAT = 0;
}
void main(void)
{
delay(20);
Init();
Delay_100ms(2);
while(1)
{
if(gGetInfoDataSuccessFlag == 0)
{
if((gReceiveTotalStation == gTotalStation)&&(gReceiveTotalStation!=0))
{
gGetInfoDataSuccessFlag = 1;
SendDataTo776(0xff,2,"OK");
}
}
if(gIrKeyValue)
{
PrintNum(gIrKeyValue);
if(gIrKeyValue == _Key_2)
{
uChar pTemp[2];
pTemp[0]=0x05;
pTemp[1]=~0x05;
SendCharsToSerial("SendData\n",9);
SendDataTo776(0x01,2,pTemp);
// ViewGpsDat();
}
if(gIrKeyValue == _Key_3)
{
C51 COMPILER V7.01 REMOTER 05/18/2006 11:54:09 PAGE 7
PrintNum(gTotalStation);
PrintNum(gReceiveTotalStation);
}
if(gIrKeyValue == _Key_4)
{
gCurLongitude = 0x12345678;
gCurLatitude = 0x123456789;
if(CompareData()!=0)
SendCharsToSerial("find\n",5);
else
SendCharsToSerial("no find\n",8);
PrintNum(gTotalStation);
}
gIrKeyValue=0;
}
if(gSerialReceiveFlag == 1)
{
gSerialReceiveFlag = 0;
SendCharsToSerial(pReceiveBuffer,43);
// if(GetCurLongitudeLatitude(pReceiveBuffer))
{
uChar pTemp[2];
pTemp[0] = CompareData();
pTemp[1]=~pTemp[0];
// if(pTemp!=0)
SendDataTo776(0x0,2,pTemp);
}
}
if(g776SendFinishFlag == 1)
{
g776SendFinishFlag = 0;
EnterCrucial();
DAT=1;
PrintNum(pReceiveBuffer[2]);
if(Handle776InfoData(pReceiveBuffer)==TRUE)
SendCharsToSerial("GPS Succed!\n",12);
else
SendCharsToSerial("GPS Fail!\n",10);
ExitCrucial();
CloseInt0AndOpenSerial();
}
if((gSendTimeout ==0)&&((gSendArray!=0)||(gSendBit!=0)))//fail send and restart .
{
OpenInt0AndCloseSerial();
gSendTimeout = 200;
gSendArray =gSendLen;
gSendBit=8;
DAT = 0;
}
if(gNecState != Nec_Null)
{
if(gSystemTick>(gIrTick+67))
{
SendCharsToSerial("Nec_Null\n",9);
gNecState = Nec_Null;
}
}
if((gSendArray==0)&&(gSendBit ==0)&&(g776SendFlag==0))
C51 COMPILER V7.01 REMOTER 05/18/2006 11:54:09 PAGE 8
{
CloseInt0AndOpenSerial();
DAT=1;
CLK=1;
if(DAT == 0)
{
DAT = 0;
g776SendFlag = 1;
g776SendBitPos=0;
g776SendBytePos = 0;
g776SendTimeout=200;
OpenInt0AndCloseSerial();
}
}
if((g776SendTimeout==0)&&(g776SendFlag == 1))//fail and GiveUp
{
g776SendFlag = 0;
g776SendBytePos = 0;
g776SendBitPos = 0;
SendCharsToSerial("AA!\n",4);
DAT = 1;
CloseInt0AndOpenSerial();
}
}//while(1)
}
#else
458
459 //#include<reg52.h>
460 #include "reg51.h"
461
462 sbit STB = P2^1;
463 sbit CLK = P2^2;
464 sbit DAT = P2^3;
465
466
467 #define uchar unsigned char
468 #define uint unsigned int
469
470 void InputBYTE(uchar tTemp);
471
472 void Long_Delay(void)
473 {
474 1 int i=4000;
475 1
476 1 while(i--);
477 1 }
478 void delay(void)
479 {
480 1 uchar i;
481 1 for(i=0;i<1;i++);
482 1 }
483 void send(uchar tTemp)
484 {
485 1 STB=1;
486 1 DAT=1;
487 1 CLK=1;
488 1
489 1 STB=0;
C51 COMPILER V7.01 REMOTER 05/18/2006 11:54:09 PAGE 9
490 1 InputBYTE(tTemp);
491 1
492 1 STB=1;
493 1 DAT=1;
494 1 CLK=1;
495 1
496 1 }
497 void InputBYTE(uchar tTemp)
498 {
499 1 uchar ar,i;
500 1 #if 0
for(i=0;i<8;i++)
{
delay();
CLK=0;
delay();
ar=0x01;
ar<<=i;
if(tTemp&ar)
DAT=1;//为1则置高电平
else
DAT=0;//为0则置低电平
CLK=1;//置脉冲
delay();
}
#else
517 1
518 1 ar=0x01;
519 1 for(i=0;i<8;i++)
520 1 {
521 2 CLK=0;
522 2 if(ar&tTemp)
523 2 DAT=1;
524 2 else
525 2 DAT=0;
526 2 ar<<=0x01;
527 2 CLK=1;
528 2 }
529 1
530 1 #endif
531 1 }
532
533 void InputBYTE2(uchar tTempValue)
534 {
535 1 uchar i;
536 1 uchar tTemp=0x01;
537 1 for(i=0;i<8;i++)
538 1 {
539 2 CLK=0;
540 2 if(tTemp&tTempValue)
541 2 DAT=1;
542 2 else
543 2 DAT=0;
544 2 tTemp<<=0x01;
545 2 CLK=1;
546 2 }
547 1 }
548 void displaymodeset()
549 {
550 1 delay();
551 1 send(0x02);
C51 COMPILER V7.01 REMOTER 05/18/2006 11:54:09 PAGE 10
552 1 delay();
553 1 }
554 void dataset()
555 {
556 1 delay();
557 1 send(0x40);
558 1 delay();
559 1 }
560
561 void displaycontrolset()
562 {
563 1 delay();
564 1 send(0x8c);
565 1 delay();
566 1 }
567
568 void senddata(uchar ucaddr,uchar senda)
569 {
570 1 delay();
571 1 STB=1;
572 1 delay();
573 1 STB=0;
574 1 delay();
575 1 InputBYTE(ucaddr);
576 1
577 1
578 1 // delay();
579 1 InputBYTE(senda);
580 1 STB=1;
581 1 delay();
582 1 }
583
584
585 void UpdateVFD(uchar add,uchar dat);
586 void main(void)
587 {
588 1 int i;
589 1
590 1 dataset();//数据设置命令
591 1 displaymodeset();//显示模式设置命
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -