找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12777|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

C51通用串口收發(fā)數(shù)據(jù)C語言程序模塊實(shí)例

  [復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 1 黑幣 回復(fù)本帖可獲得 1 黑幣獎(jiǎng)勵(lì)! 每人限 1 次(中獎(jiǎng)概率 10%)
跳轉(zhuǎn)到指定樓層
樓主
ID:59980 發(fā)表于 2017-5-11 00:23 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>        //C51通用串口收發(fā)數(shù)據(jù)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;//定時(shí)器1方式        2
  SCON=0X50;//K串口方式          
  TH1=0XFD;
  TL1=0XFD;
  EA=1;
  ES=1;
  TR1=1;

}


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

   UART_init();
   while(1 ) ;
          
}

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

}

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

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:153199 發(fā)表于 2017-5-11 09:23 | 只看該作者
不錯(cuò)的文件,值得收藏
回復(fù)

使用道具 舉報(bào)

板凳
ID:84765 發(fā)表于 2017-5-11 09:49 | 只看該作者
只有收程序,發(fā)的程序呢?
回復(fù)

使用道具 舉報(bào)

地板
ID:59980 發(fā)表于 2017-5-28 08:57 | 只看該作者
發(fā)的程序;
if(TI) //發(fā)送數(shù)據(jù)回去
   {
             TI=0;
   }
回復(fù)

使用道具 舉報(bào)

5#
ID:205940 發(fā)表于 2017-5-29 22:18 | 只看該作者
只有收程序,發(fā)的程序呢?
回復(fù)

使用道具 舉報(bào)

6#
ID:254411 發(fā)表于 2017-11-30 20:28 | 只看該作者
很好如果能運(yùn)行正是我想要的,感謝分享。
回復(fù)

使用道具 舉報(bào)

7#
ID:232199 發(fā)表于 2017-12-20 20:35 | 只看該作者
漂亮
回復(fù)

使用道具 舉報(bào)

8#
ID:366585 發(fā)表于 2018-7-6 22:47 | 只看該作者
樓主,程序試了下,很好用。能不能再詳細(xì)講講,如果接收不是判斷0,1,2.而是改成一段字符串比如“dakai”,"guanbi","shansuo“,這咋寫啊?
還有,就是如果是比如15秒就自動(dòng)發(fā)一“hello”,然后就開始接收或是等待接收,這咋寫啊?
新手求教。望詳解。謝謝
回復(fù)

使用道具 舉報(bào)

9#
ID:20672 發(fā)表于 2018-7-25 20:56 | 只看該作者
謝謝分享;A(chǔ)
回復(fù)

使用道具 舉報(bào)

10#
ID:59980 發(fā)表于 2020-3-30 16:14 | 只看該作者
if(RI)        //判斷是否接收完畢
  {
    RI=0; //是則RI清零,準(zhǔn)備下一次接收
        shu=SBUF; //接收到的數(shù)據(jù)送給 shu變量存儲
        SBUF=shu;  //發(fā)送 shu變量存儲的數(shù)據(jù)回去
   }
   if(TI) //發(fā)送數(shù)據(jù)回去
   {
             TI=0;
   }
回復(fù)

使用道具 舉報(bào)

11#
ID:586324 發(fā)表于 2020-3-30 19:33 | 只看該作者
不錯(cuò)的文件,值得收藏
回復(fù)

使用道具 舉報(bào)

12#
ID:477651 發(fā)表于 2020-7-31 13:55 | 只看該作者
為什么實(shí)際運(yùn)行的時(shí)候會有一定丟數(shù)據(jù)的概率
回復(fù)

使用道具 舉報(bào)

13#
ID:810065 發(fā)表于 2020-7-31 15:08 | 只看該作者
看看怎么樣?謝謝分享!
回復(fù)

使用道具 舉報(bào)

14#
ID:782710 發(fā)表于 2020-7-31 16:39 來自手機(jī) | 只看該作者
值得收藏
回復(fù)

使用道具 舉報(bào)

15#
ID:59980 發(fā)表于 2021-6-28 14:07 | 只看該作者
feiyu1209 發(fā)表于 2018-7-6 22:47
樓主,程序試了下,很好用。能不能再詳細(xì)講講,如果接收不是判斷0,1,2.而是改成一段字符串比如“dakai”,"g ...

這個(gè)你要配合PC的ASCII碼進(jìn)行轉(zhuǎn)換就可以實(shí)現(xiàn),代碼和原理上比較復(fù)雜,關(guān)連知識很多,先學(xué)好最基礎(chǔ)的,以后需要時(shí),就會很容易明白的了!
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表