找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1596|回復: 0
打印 上一主題 下一主題
收起左側

單片機串行通信例子

[復制鏈接]
跳轉到指定樓層
樓主
ID:799238 發(fā)表于 2020-7-7 19:44 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
/*****單片機甲、發(fā)送單片機*****/
#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;  //設定波特率        1200
  TR1=1;
  SCON=0x40;      //方式1   REN=1
  while(1)
   {
     TI=0;
          P1=0xff;                   
     SBUF=P1;
     do{;}while(TI!=1);
      TI=0;   
            delay();
         
  }
}






/*******單片機乙、接收單片機********/
#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;  //設定波特率  1200
  TR1=1;
  SCON=0x50;      //方式1   REN=1
  while(1)
   {

          do{;}while( RI!=1);
   RI=0;  
   a=SBUF; // 接收數據
   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]; }


  }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表