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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2770|回復: 12
收起左側

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

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

回復

使用道具 舉報

ID:123289 發(fā)表于 2019-4-4 12:58 | 顯示全部樓層
先做好通訊主從之的通訊協(xié)議,協(xié)議說得通就行,不難。
回復

使用道具 舉報

ID:504761 發(fā)表于 2019-4-4 13:56 | 顯示全部樓層
用IIC總線來搞
回復

使用道具 舉報

ID:494868 發(fā)表于 2019-4-4 14:40 | 顯示全部樓層
yzwzfyz 發(fā)表于 2019-4-4 12:58
先做好通訊主從之的通訊協(xié)議,協(xié)議說得通就行,不難。

謝謝提點
回復

使用道具 舉報

ID:494868 發(fā)表于 2019-4-4 14:41 | 顯示全部樓層

謝謝提點
回復

使用道具 舉報

ID:387856 發(fā)表于 2019-4-4 18:28 | 顯示全部樓層
起始碼+地址碼+數(shù)據(jù)碼+結束碼,這些碼的位數(shù)和高低電平的脈沖時間可以自己定義
回復

使用道具 舉報

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

使用道具 舉報

ID:471632 發(fā)表于 2019-4-5 11:23 | 顯示全部樓層
如果通過以太網(wǎng)進行主從通信呢?比如pc服務器控制幾十臺或上百臺51進行工作,這樣的環(huán)境有做過的嗎?
回復

使用道具 舉報

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

使用道具 舉報

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

#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允許串行接受狀態(tài),串口工作模式1                             
            TMOD|= 0x20;      //定時器工作方式2                    
                PCON|= 0x80;                                                         
               
                TH1  = 0xFD;     //baud*2  /* reload value 19200、數(shù)據(jù)位8、停止位1。效驗位無         
               
                TR1  = 1;                                                            
                ES   = 1;        //開串口中斷                  
                EA   = 1;        // 開總中斷
       

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

}

}













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

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

}

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

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

使用道具 舉報

ID:481641 發(fā)表于 2019-4-5 16:30 | 顯示全部樓層
用I2C總線
回復

使用道具 舉報

ID:481641 發(fā)表于 2019-4-5 20:23 | 顯示全部樓層
盡量自己動手
回復

使用道具 舉報

ID:73118 發(fā)表于 2019-4-5 21:03 | 顯示全部樓層
我做過,你參考一下

多機通信.zip

134.19 KB, 下載次數(shù): 15

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久久久久亚洲精品 | 亚洲午夜一区二区 | 亚洲天堂男人的天堂 | 日本在线免费 | 欧美日韩视频在线 | www.亚洲精品 | 精品区| 欧美色综合一区二区三区 | 日韩精品久久一区二区三区 | 久久999| 黄色大片免费网站 | 中文字幕第一页在线 | 97超碰站 | 国产精品久久久久久久久久久久久久 | 国产精品久久视频 | 久久精品欧美一区二区三区不卡 | 久久综合伊人一区二区三 | 国产精品精品久久久 | 欧美在线看片 | 中文字幕亚洲一区二区三区 | 国产一级毛片视频 | 激情欧美日韩一区二区 | 亚洲精品一区二区在线观看 | 亚洲69p| 国产在线视频在线观看 | 国产福利资源在线 | 免费污视频 | 毛片.com | 国产成人精品网站 | h片在线看 | 成人午夜免费视频 | 国产精品无码专区在线观看 | 成人在线免费观看av | 黑人精品欧美一区二区蜜桃 | 国产粉嫩尤物极品99综合精品 | 欧美一区二区三区,视频 | 人人鲁人人莫人人爱精品 | 成人在线免费网站 | 国产日韩免费视频 | 国产亚洲一区二区在线观看 | 精品免费视频一区二区 |