간편한 51 단편기 직렬 수신 및 송신 프로그램

1363 단어 단편기
 
  

/*********************
    :              ,             ,
        !  
**********************/
#include 
#define uchar unsigned char
#define uint unsigned int
sbit LED = P2^7;
uchar flag = 0;
uchar index = 0;
uchar data c[100];
void Delay_ms(uint n)
{
 uchar i;
 while(n--)
     for(i = 0;i < 120;i++);
}
void Send_string(uchar *c)
{
 while(*c != '!')
 {
  SBUF=*c;
  c++;
  while(TI==0);
  TI=0;
 }
}
void main()
{
 SCON=0x50;	//    1,    
 TMOD=0x20;	//T1    2
 TH1=0xF3;	//   4800
 TL1=0xF3;
 PCON=0x80;	//     
 EA = 1;//    
 ES = 1;//     
 TR1=1;//    1  
 while(1)
 {
  if((SBUF == '!')&&(flag == 1))
  {
    Send_string(c);
   LED = ~LED;
   index = 0;
   flag = 0;
  }
  /*
           SBUF   SBUF   SBUF    ,          SBUF,
    SBUF_read   SBUF_write,  SBUF     SBUF_read  。
 */
 }
}
//        
void Serial_INT() interrupt 4
{
 if(RI==0) return;
 ES=0;	//      
 RI=0;	//       
 c[index++]=SBUF;
    if(SBUF == '!')
   flag = 1;
 ES=1;
}

좋은 웹페이지 즐겨찾기