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

標題: C51通用串口收發數據C語言程序模塊實例 [打印本頁]

作者: hts2008222    時間: 2017-5-11 00:23
標題: C51通用串口收發數據C語言程序模塊實例
#include <reg52.h>        //C51通用串口收發數據C語言程序模塊
#define  uchar unsigned char
#define uint unsigned int
uchar shu;

bit i;
sbit  led1=P0^0;
void  delayms(uint xms)         //1ms;
{
   uint i,j;
   for(i=xms;i>0;i--)
       for(j=110;j>0;j--) ;


}
/************************************************************************/
void  UART_init()
{
  TMOD=0X20;//定時器1方式        2
  SCON=0X50;//K串口方式          
  TH1=0XFD;
  TL1=0XFD;
  EA=1;
  ES=1;
  TR1=1;

}


/*********************************
函數:void main(void)
____________________________________
說明:主函數,程序執行從這里開始
********************************/
void main(void)
{

   UART_init();
   while(1 ) ;
          
}

/*********************************
函數:void Inter()         interrunpt 4
____________________________________
說明:串口中斷處理程序
********************************/
void Inter() interrupt 4
{
   uchar i=0;
  if(RI)        //判斷是否接收完畢
  {
    RI=0; //是則RI清零,準備下一次接收
        shu=SBUF;
        SBUF=shu;
   }
   if(TI) //發送數據回去
   {
             TI=0;
   }
   if(shu== 0x30)   //判斷接收到的數據, 并作出相應處理
        {
                 
          led1=1;//LED燈滅
         }
   if(shu == 0x31)        //判斷接收到的數據, 并作出相應處理
        {
          led1=0;
        }
       
         if(shu== 0x32)   //判斷接收到的數據, 并作出相應處理
        {
           for(i=0;i<10;i++)
          {
           led1=~led1;
           delayms(200);
          }
          
        }

}


作者: liuzhaoxin1020    時間: 2017-5-11 09:23
不錯的文件,值得收藏
作者: 13976778401    時間: 2017-5-11 09:49
只有收程序,發的程序呢?
作者: hts2008222    時間: 2017-5-28 08:57
發的程序;
if(TI) //發送數據回去
   {
             TI=0;
   }
作者: lhyspurs    時間: 2017-5-29 22:18
只有收程序,發的程序呢?
作者: qwe1818    時間: 2017-11-30 20:28
很好如果能運行正是我想要的,感謝分享。
作者: 回到原點    時間: 2017-12-20 20:35
漂亮

作者: feiyu1209    時間: 2018-7-6 22:47
樓主,程序試了下,很好用。能不能再詳細講講,如果接收不是判斷0,1,2.而是改成一段字符串比如“dakai”,"guanbi","shansuo“,這咋寫啊?
還有,就是如果是比如15秒就自動發一“hello”,然后就開始接收或是等待接收,這咋寫啊?
新手求教。望詳解。謝謝
作者: wdliming    時間: 2018-7-25 20:56
謝謝分享。基礎
作者: hts2008222    時間: 2020-3-30 16:14
if(RI)        //判斷是否接收完畢
  {
    RI=0; //是則RI清零,準備下一次接收
        shu=SBUF; //接收到的數據送給 shu變量存儲
        SBUF=shu;  //發送 shu變量存儲的數據回去
   }
   if(TI) //發送數據回去
   {
             TI=0;
   }
作者: 而非非人非    時間: 2020-3-30 19:33
不錯的文件,值得收藏
作者: 同凨    時間: 2020-7-31 13:55
為什么實際運行的時候會有一定丟數據的概率
作者: lll888yyyy    時間: 2020-7-31 15:08
看看怎么樣?謝謝分享!
作者: 多喝水    時間: 2020-7-31 16:39
值得收藏
作者: hts2008222    時間: 2021-6-28 14:07
feiyu1209 發表于 2018-7-6 22:47
樓主,程序試了下,很好用。能不能再詳細講講,如果接收不是判斷0,1,2.而是改成一段字符串比如“dakai”,"g ...

這個你要配合PC的ASCII碼進行轉換就可以實現,代碼和原理上比較復雜,關連知識很多,先學好最基礎的,以后需要時,就會很容易明白的了!




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