久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

新人想用51單片機做多機通信,麻煩大佬指點程序設計思路

[復制鏈接]
跳轉到指定樓層
樓主
ID:494868 發表于 2019-4-3 20:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
100黑幣
我想以主機作為母體,每加入一個新的從機,主機都能掃描到并賦予一個新的地址,然后在主機上可以控制新的從機(一號)。在一號從機上能夠繼續加入新的從機,無論是串聯狀還是發散狀,都能由主機來控制,而不是直接連接到主機。請問大佬該怎么編寫代碼?或者提示一下思路。謝謝了!

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

使用道具 舉報

沙發
ID:123289 發表于 2019-4-4 12:58 | 只看該作者
先做好通訊主從之的通訊協議,協議說得通就行,不難。
回復

使用道具 舉報

板凳
ID:504761 發表于 2019-4-4 13:56 | 只看該作者
用IIC總線來搞
回復

使用道具 舉報

地板
ID:494868 發表于 2019-4-4 14:40 | 只看該作者
yzwzfyz 發表于 2019-4-4 12:58
先做好通訊主從之的通訊協議,協議說得通就行,不難。

謝謝提點
回復

使用道具 舉報

5#
ID:494868 發表于 2019-4-4 14:41 | 只看該作者

謝謝提點
回復

使用道具 舉報

6#
ID:387856 發表于 2019-4-4 18:28 | 只看該作者
起始碼+地址碼+數據碼+結束碼,這些碼的位數和高低電平的脈沖時間可以自己定義
回復

使用道具 舉報

7#
ID:366559 發表于 2019-4-5 10:40 | 只看該作者
USB接口不就是這樣的嗎,去看一下USB2.0協議(全速,簡化版,完整版太長了),學習一下
I2C總線的話,大部分單片機只有一個接口,難以實現級聯
回復

使用道具 舉報

8#
ID:471632 發表于 2019-4-5 11:23 | 只看該作者
如果通過以太網進行主從通信呢?比如pc服務器控制幾十臺或上百臺51進行工作,這樣的環境有做過的嗎?
回復

使用道具 舉報

9#
ID:476644 發表于 2019-4-5 15:03 | 只看該作者
/******************************************************************************************* *  標題:                  RS485通信試驗(接收與發送)                                         * *                                                                                                                                                                        * *  1.通過本例程了解串口的基本原理及使用 ,理解并掌握對串口進行初始化                                        * *                                                                                                                                                                            * *  2.Baud 19200、數據位8、停止位1、效驗位無 兩臺485設備  a機發 b機收                                        * *                                                                                                                                                                               * *  說明:                                                                                                                                                             * *    使用兩個帶有485功能硬件設備(例如:兩個帶485的開發箱等) 每個設備都有信號端A和B,通過導線        * *         分別連接兩臺設備 A 連 A  B 連 B  排線連接參考圖片                                                                                * *  現象:按A機的獨立按鈕 在B機的LED等顯示其狀態 對應位的LED燈亮                                                            * *  注意:18B20 請卸下,否則會影響RS485                                                             * * 請學員認真消化本例程,學會用C語言操作串口和485的實現簡單收發功能                                 * *********************************************************************************************/  #include <REG52.H> #include <stdio.h>  sbit RS485E=P3^7;   //定義485的使能腳  /**************************************             延時程序 **************************************/ void delay(unsigned char i) {         unsigned char j;         for(i; i > 0; i--)                 for(j = 200; j > 0; j--); }   void main (void) {           SCON = 0x50;      //REN=1允許串行接受狀態,串口工作模式1                                           TMOD|= 0x20;      //定時器工作方式2                                     PCON|= 0x80;                                                                                            TH1  = 0xFD;     //baud*2  /* reload value 19200、數據位8、停止位1。效驗位無                                            TR1  = 1;                                                                              ES   = 1;        //開串口中斷                                   EA   = 1;        // 開總中斷                     while(1)     {                     if (P0 != 0XFF)    // max485(半雙工通信) RE/DE定義 RE=0為接受狀態  DE=1為發送狀態(參考MAX485芯片管腳)              {                  RS485E=1;           //                    RS5485E=0為接收狀態  RS5485E=1為發送狀態               SBUF=P0;           //發送數據                   delay(40);        }   }   }
回復

使用道具 舉報

10#
ID:476644 發表于 2019-4-5 15:04 | 只看該作者
/*******************************************************************************************
*  標題:                  RS485通信試驗(接收與發送)                                         *
*                                                                                                                                                                        *
*  1.通過本例程了解串口的基本原理及使用 ,理解并掌握對串口進行初始化                                        *
*                                                                                                                                                                            *
*  2.Baud 19200、數據位8、停止位1、效驗位無 兩臺485設備  a機發 b機收                                        *
*                                                                                                                                                                               *
*  說明:                                                                                                                                                             *
*    使用兩個帶有485功能硬件設備(例如:兩個帶485的開發箱等) 每個設備都有信號端A和B,通過導線        *
*         分別連接兩臺設備 A 連 A  B 連 B  排線連接參考圖片                                                                                *
*  現象:按A機的獨立按鈕 在B機的LED等顯示其狀態 對應位的LED燈亮                                                            *
*  注意:18B20 請卸下,否則會影響RS485                                                             *
* 請學員認真消化本例程,學會用C語言操作串口和485的實現簡單收發功能                                 *
*********************************************************************************************/

#include <REG52.H>
#include <stdio.h>

sbit RS485E=P3^7;   //定義485的使能腳

/**************************************
            延時程序
**************************************/
void delay(unsigned char i)
{
        unsigned char j;
        for(i; i > 0; i--)
                for(j = 200; j > 0; j--);
}


void main (void) {


        SCON = 0x50;      //REN=1允許串行接受狀態,串口工作模式1                             
            TMOD|= 0x20;      //定時器工作方式2                    
                PCON|= 0x80;                                                         
               
                TH1  = 0xFD;     //baud*2  /* reload value 19200、數據位8、停止位1。效驗位無         
               
                TR1  = 1;                                                            
                ES   = 1;        //開串口中斷                  
                EA   = 1;        // 開總中斷
       

        while(1)
    {
       
          if (P0 != 0XFF)    // max485(半雙工通信) RE/DE定義 RE=0為接受狀態  DE=1為發送狀態(參考MAX485芯片管腳)
             {   
              RS485E=1;           //                    RS5485E=0為接收狀態  RS5485E=1為發送狀態
              SBUF=P0;           //發送數據
                  delay(40);
       }

}

}













/*******************************************************************************************
*  標題:                  RS485通信試驗(接收與發送)                                         *
*                                                                                                                                                                        *
*  1.通過本例程了解串口的基本原理及使用 ,理解并掌握對串口進行初始化                                        *
*                                                                                                                                                                            *
*  2.Baud 19200、數據位8、停止位1、效驗位無 兩臺485設備  a機發 b機收                                        *
*                                                                                                                                                                               *
*  說明:                                                                                                                                                             *
*    使用兩個帶有485功能硬件設備(例如:兩個帶485的開發箱等) 每個設備都有信號端A和B,通過導線        *
*         分別連接兩臺設備 A 連 A  B 連 B  排線連接參考圖片                                                                            *
*  現象:按A機的獨立按鈕 在B機的LED等顯示其狀態 對應位的LED燈亮                                                            *
*  注意:18B20 請卸下,否則會影響RS485                                                          *
* 請學員認真消化本例程,學會用C語言操作串口和485的實現簡單收發功能                                 *
*********************************************************************************************/

#include <REG52.H>
#include <stdio.h>

sbit RS485E=P3^7;   //定義485的使能腳
unsigned int ReData;

/**************************************
            延時程序
**************************************/
void delay(unsigned char i)
{
        unsigned char j;
        for(i; i > 0; i--)
                for(j = 200; j > 0; j--);
}


void main (void) {


        SCON = 0x50;      //REN=1允許串行接受狀態,串口工作模式1                             
            TMOD|= 0x20;      //定時器工作方式2                    
                PCON|= 0x80;                                                         
               
                TH1  = 0xFD;     //baud*2  /* reload value 19200、數據位8、停止位1。效驗位無         
               
                TR1  = 1;                                                            
                ES   = 1;        //開串口中斷                  
                EA   = 1;        // 開總中斷
   
        while(1)
    { P0 = 0xff;
          P0 = ReData;                  // max485(半雙工通信) RE/DE定義 RE=0為接受狀態  DE=1為發送狀態(參考MAX485芯片管腳)
          RS485E=0;                    // RS5485E=0為接收狀態  RS5485E=1為發送狀態
          delay(20);
    }

}

/****************************************************
               串口中斷程序
******************************************************/
void ser_int (void) interrupt 4 using 1
{

if(RI == 1)        //RI接受中斷標志
{
        RI = 0;                    //清除RI接受中斷標志
        ReData = SBUF;  //SUBF接受/發送緩沖器
       
   
}
}
回復

使用道具 舉報

11#
ID:481641 發表于 2019-4-5 16:30 | 只看該作者
用I2C總線
回復

使用道具 舉報

12#
ID:481641 發表于 2019-4-5 20:23 | 只看該作者
盡量自己動手
回復

使用道具 舉報

13#
ID:73118 發表于 2019-4-5 21:03 | 只看該作者
我做過,你參考一下

多機通信.zip

134.19 KB, 下載次數: 15

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品国产一区二区三区不卡 | 久久成人免费 | 韩国久久 | 中文一级片 | 日韩精品在线观看网站 | 夜夜夜夜草 | 欧美日韩一区在线 | 国产精品a级 | 欧美 日韩 国产 成人 | 午夜免费网站 | 我想看一级黄色毛片 | 亚洲精品日韩视频 | 精品日韩在线 | 中文字幕一区二区三区四区五区 | 黄色片在线看 | 亚洲综合在线网 | 韩日精品一区 | 日本特黄a级高清免费大片 特黄色一级毛片 | 久久精品视频一区二区三区 | 男女污污网站 | 精品一区精品二区 | 激情91 | 日韩在线中文字幕 | 粉嫩粉嫩芽的虎白女18在线视频 | 一区二区三区在线 | 久久婷婷国产香蕉 | 久久久人成影片免费观看 | 久久亚洲国产 | 国产精品色一区二区三区 | 久久高清| 激情a| 亚洲最新在线视频 | 91国内外精品自在线播放 | 免费视频久久 | 日韩不卡一区二区三区 | 男人的天堂视频网站 | 国产三级精品视频 | 精品国产精品国产偷麻豆 | 亚洲精品一区二区三区在线 | 国产免费一区二区三区 | 亚洲国产精品99久久久久久久久 |