標(biāo)題: 單片機(jī)串行通信例子 [打印本頁]

作者: intiiiii    時間: 2020-7-7 19:44
標(biāo)題: 單片機(jī)串行通信例子
/*****單片機(jī)甲、發(fā)送單片機(jī)*****/
#include<reg51.h>
/*
unsigned char dat=0;  //顯示值dat為全局變量,初值為0
char code tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};                      //定義共陽極LED字形碼
*/

void delay()    // 延時
{  unsigned char i;
  for(i=0;i<40;i++)
  {
    TH0=(65536-5000)/256;
    TL0=(65536-5000)%256;
    TR0=1;
    do{;} while(TF0!=1) ;
    TF0=0;  TR0=0;         
   }  

}

void main()
{
  TMOD=0x21;     // T1 方式2   T0 方式1
  TH1=TL1=0xe8;  //設(shè)定波特率        1200
  TR1=1;
  SCON=0x40;      //方式1   REN=1
  while(1)
   {
     TI=0;
          P1=0xff;                   
     SBUF=P1;
     do{;}while(TI!=1);
      TI=0;   
            delay();
         
  }
}






/*******單片機(jī)乙、接收單片機(jī)********/
#include<reg51.h>
unsigned char a;
unsigned char dat=0;  //顯示值dat為全局變量,初值為0
char code tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};                      //定義共陽極LED字形碼


void main()
{
  TMOD=0x21;     // T1 方式2   T0 方式1
  TH1=TL1=0xe8;  //設(shè)定波特率  1200
  TR1=1;
  SCON=0x50;      //方式1   REN=1
  while(1)
   {

          do{;}while( RI!=1);
   RI=0;  
   a=SBUF; // 接收數(shù)據(jù)
   if(a==0xfe)
      {if(dat!=9){dat++;}
          else
          dat=0; }
   if(a==0xfd)
    { if(dat!=0){dat--;}
     else
           dat=9; }
   if(dat>=0&&dat<=9){P2=tab[dat]; }


  }
}






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1