欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 294|回復: 0
收起左側

簡單的單片機串口通信訓練

[復制鏈接]
ID:1152570 發表于 2025-6-7 12:00 來自觸屏版 | 顯示全部樓層 |閱讀模式
#include<reg51.h>       //包含單片機寄存器的頭文件
/*****************************************************
函數功能:接收一個字節數據
***************************************************/
unsigned char Receive(void)
{
  unsigned char dat;
  while(RI==0)  //只要接收中斷標志位RI沒有被置“1”
           ;    //等待,直至接收完畢(RI=1)
          RI=0;      //為了接收下一幀數據,需將RI清0
     dat=SBUF;  //將接收緩沖器中的數據存于dat
          return dat;
}
/*****************************************************
函數功能:主函數
***************************************************/
void main(void)
{
   TMOD=0x20;  //定時器T1工作于方式2
   SCON=0x50;  //SCON=0101 0000B,串口工作方式1,允許接收(REN=1)
   PCON=0x00;  //PCON=0000 0000B,波特率9600
   TH1=0xfd;  //根據規定給定時器T1賦初值
   TL1=0xfd;  //根據規定給定時器T1賦初值      
   TR1=1;    //啟動定時器T1   
   REN=1;    //允許接收
  while(1)
   {
             P1=Receive(); //將接收到的數據送P1口顯示               
   }
}



#include<reg51.h>       //包含單片機寄存器的頭文件
unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
//流水燈控制碼,該數組被定義為全局變量

/*****************************************************
函數功能:向PC發送一個字節數據
***************************************************/
void Send(unsigned char dat)
{
   SBUF=dat;
   while(TI==0)
         ;
    TI=0;
}
/**************************************************************
函數功能:延時約150ms
**************************************************************/
void delay(void)   
{
   unsigned char m,n;
         for(m=0;m<200;m++)
          for(n=0;n<250;n++);
}
/*****************************************************
函數功能:主函數
***************************************************/
void main(void)
{
   unsigned char i;
   TMOD=0x20;  //TMOD=0010 0000B,定時器T1工作于方式2
   SCON=0x40;  //SCON=0100 0000B,串口工作方式1
   PCON=0x00;  //PCON=0000 0000B
   TH1=0xfd;   //根據規定給定時器T1賦初值,波特率9600
   TL1=0xfd;   //根據規定給定時器T1賦初值
   TR1=1;      //啟動定時器T1   
  while(1)
   {
          for(i=0;i<8;i++)   //模擬檢測數據
             {
                    Send(Tab[ i]);        //發送數據i
                          delay();   //50ms發送一次檢測數據                          
                  }               
   }
}



#include<reg51.h>       //包含單片機寄存器的頭文件
unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
//流水燈控制碼,該數組被定義為全局變量

/*****************************************************
函數功能:向PC發送一個字節數據
***************************************************/
void Send(unsigned char dat)
{
   SBUF=dat;
   while(TI==0)
         ;
    TI=0;
}
/**************************************************************
函數功能:延時約150ms
**************************************************************/
void delay(void)   
{
   unsigned char m,n;
         for(m=0;m<200;m++)
          for(n=0;n<250;n++);
}
/*****************************************************
函數功能:主函數
***************************************************/
void main(void)
{
   unsigned char i;
   TMOD=0x20;  //TMOD=0010 0000B,定時器T1工作于方式2
   SCON=0x40;  //SCON=0100 0000B,串口工作方式1
   PCON=0x00;  //PCON=0000 0000B
   TH1=0xfd;   //根據規定給定時器T1賦初值,波特率9600
   TL1=0xfd;   //根據規定給定時器T1賦初值
   TR1=1;      //啟動定時器T1   
  while(1)
   {
          for(i=0;i<8;i++)   //模擬檢測數據
             {
                    Send(Tab[ i]);        //發送數據i
                          delay();   //50ms發送一次檢測數據                          
                  }               
   }
}
mmexport1749268776329.png

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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