serial.c

来自「gps 源码.GPS工作原理,对开发GPS软件有帮助」· C语言 代码 · 共 129 行

C
129
字号

#include <reg51.h>


#define    FLOW_TH0     0X0EA      //for 11.059MHz crystal
#define    FLOW_TL0     0X0CE

#define SOH 0X01

sbit LED = P1^7;

unsigned char c;
unsigned char k;
unsigned char MSec;


bit Led_Cont =0;
bit Speed =0;







timer0 () interrupt 1 using 1 {
 TR0=0;
 TH0=FLOW_TH0;
 TL0=FLOW_TL0;
 TR0=1;
 MSec++; 
 if(MSec == 0x96 && Led_Cont == 0 && Speed ==0){    
   LED = 1;
   Led_Cont=1;
   MSec = 0;
 }else if(MSec == 0x96 && Led_Cont == 1 && Speed ==0){
   LED = 0;
   Led_Cont=0;
   MSec = 0;
 }else if(MSec == 0x32 && Led_Cont == 0 && Speed == 1){   
   LED = 1;
   Led_Cont=1;
   MSec = 0;
 }else if (MSec == 0x32 && Led_Cont == 1 && Speed == 1){
   LED = 0;
   Led_Cont=0;
   MSec = 0;
 }
}







void Start_Up(void)
{
 CY=0;                      
 ACC=0;
 TH0=FLOW_TH0;
 TL0=FLOW_TL0;
 TMOD=0X01;
 k=0; 
 RXD=1;
 TXD=1;
} 







void Sport_Init()
{
 SCON=0X50;
 TMOD |=0X20;
 TH1=0XFD;
}







void Ena_Int()
{
 TR0=1;
 TR1=1;
 ET0=1;
 EA=1;
 TI=1;
}








void main(void)
{                    
 EA=0;
 Start_Up();
 Sport_Init();
 Ena_Int();

 while(1)
 {

     	for(;(k<=4 && TI);k++)
           {
       	    TI=0;	
       	    SBUF=SOH;
           }	
         if(RI)
          {
           c=SBUF;
      	   RI=0;
     	   if(c == 'Y')
      	     {
	      Speed=1;	
             }
         }
  }
}

⌨️ 快捷键说明

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