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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

單片機之間主從通訊程序 485總線

查看數: 6324 | 評論數: 7 | 收藏 2
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2015-6-5 00:21

正文摘要:

單片機之間主從通訊實例

回復

ID:159139 發表于 2017-4-24 00:21
謝謝樓主,下來學習一下,非常感謝。
ID:128463 發表于 2017-4-8 10:31
謝謝分享!!!!!!
ID:128463 發表于 2017-4-8 10:28
謝謝分享!!!
ID:47286 發表于 2016-2-27 00:52
請教樓主

TB8是多機通訊位 這個位只開業0/1還是0~255都可以 從機地址是怎么確定的 一直沒有看到比較好的教程
ID:67573 發表于 2016-2-25 14:53
值得學習
ID:1 發表于 2015-6-5 00:38
從機程序:
  1. /*********************主機程序**************************/
  2. #include <reg52.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit t0 = P3^7;//發送、接收使能
  6. /***********延時函數**************************/
  7. void delay(uint x)
  8. {
  9.         uchar i;
  10.         while(x--)
  11.         {        for(i=0;i<110;i++);        }
  12. }
  13. /***********串口初始化函數**************************/
  14. void init_UART()
  15. {
  16.         SCON = 0xd0; //工作方式3 允許串口接收
  17.         TMOD = 0x20; //定時器T/C1工作方式2
  18.         PCON = 0x00; //波特率倍頻
  19.         TH1 = 0xfd;
  20.         TL1 = 0xfd;
  21.         TR1 = 1;
  22. }
  23. /*****************主函數************************/
  24. void main()
  25. {   
  26.     uchar ADDR=0x01,num=0,tmp;//ADDR地址碼,num地址個數
  27.         init_UART();//串口初始
  28. //        P1=0xc0;//初始時顯示0
  29.         while(1)
  30.             {

  31.                         /*********接受從機地址**********/
  32.                                 t0=0;        //接受使能
  33.                                 delay(20);
  34.                                 while(!RI);//等待接收從機發回的握手信號
  35.                                 tmp=SBUF;         //接收回來的值賦值給顯示變量
  36.                                 RI=0;        //接收成功
  37.                                 delay(20);
  38.                                 tmp++;

  39.                 /*********發送從機地址**********/
  40.                                   TI=0;
  41.                                   TB8=1;//發送地址信號
  42.                                       t0=1;        //發送使能
  43.                                       delay(20);
  44.                                        SBUF=tmp;//發送地址信號加1
  45.                                       while(!TI);//等待發送
  46.                                       TI=0;//發送成功
  47.                                       delay(1000);
  48.                          }
  49. }
  50. /*
  51. 本程序為從機程序
  52. 11.0592M晶振 波特率9600
  53. 從機:STC12C4052AD  主機:STC12C5A60S2
  54. 從機數據接加1后發送回主機
  55. 2014年9月4日 23時50分
  56. 實驗成功
  57. */
復制代碼
ID:1 發表于 2015-6-5 00:37
485主機通訊:
  1. /*********************主機程序**************************/
  2. #include <reg52.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit t0 = P0^0;//發送、接收使能
  6. sbit key = P0^1; //控制開關
  7. /***********延時函數**************************/
  8. void delay(uint x)
  9. {
  10.         uchar i;
  11.         while(x--)
  12.         {        for(i=0;i<110;i++);        }
  13. }
  14. /***********串口初始化函數**************************/
  15. void init_UART()
  16. {
  17.         SCON = 0xd0; //工作方式3 允許串口接收
  18.         TMOD = 0x20; //定時器T/C1工作方式2
  19.         PCON = 0x00; //波特率倍頻
  20.         TH1 = 0xfd;
  21.         TL1 = 0xfd;
  22.         TR1 = 1;
  23. }
  24. /*****************主函數************************/
  25. void main()
  26. {   
  27.     uchar ADDR=0x01,num=0,tmp;//ADDR地址碼,num地址個數
  28.         init_UART();//串口初始
  29.         while(1)
  30.             {
  31.             if(key==0)//判斷開關是否被按下
  32.             {
  33.                              delay(50);
  34.                  while(key==0);
  35.                 /*********發送從機地址**********/
  36.                                   TI=0;
  37.                                   TB8=1;//發送地址信號
  38.                                       t0=1;        //發送使能
  39.                                       delay(20);
  40.                                        SBUF=ADDR;//發送地址信號
  41.                                       while(!TI);//等待發送
  42.                                       TI=0;//發送成功
  43.                                       ADDR++;
  44.                                       if(ADDR==6) ADDR=1;


  45.                         /*********接受從機地址**********/
  46.                                 t0=0;        //接受使能
  47.                                 delay(20);
  48.                                 while(!RI);//等待接收從機發回的握手信號
  49.                                 P1=SBUF;         //接收回來的值賦值給顯示變量
  50.                                 RI=0;        //接收成功
  51.                                 delay(1000);

  52.                  
  53.              }
  54.                  }
  55. }
  56. /*
  57. 主機:STC12C5A60S2    從機:STC12C4052AD
  58. MAX485通訊
  59. 波特率為9600
  60. 晶振為110592MHZ
  61. 接通第一次按鍵主機發送01給從機 從機收到后加1返回給主機 發送值最大為5
  62. 圓滿成功  2014.9.4 23:41
  63. */
復制代碼

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本国产欧美 | 久久久久久久久久久久久9999 | 99re视频这里只有精品 | 亚洲精品乱码 | 亚洲午夜精品 | 国产日韩欧美一区二区在线播放 | 国产成人黄色 | 91精品久久久久久久久久入口 | 一级a毛片 | 一区二区三区中文字幕 | a免费视频 | 国产午夜在线 | 亚洲精品91 | 黄色大片观看 | 国产欧美一区二区三区久久 | 伊人久麻豆社区 | 亚洲国产成人久久综合一区,久久久国产99 | 综合天天久久 | 国产精品日韩欧美一区二区三区 | 激情五月激情综合网 | 狠狠操天天操 | 日本免费在线观看视频 | 二区久久 | 四虎影院免费在线播放 | 欧美久久久久久久 | 国产亚洲一区二区三区在线观看 | 久久精品国产一区二区三区不卡 | 国产精品视频一区二区三区 | 嫩草视频在线免费观看 | 在线观看精品 | 精品国产一级 | 综合色在线 | 91在线观看 | 一区二区在线免费观看视频 | 免费h在线| 国产福利91精品 | 久久a久久 | 国产精品成人一区二区三区吃奶 | 久久天天躁狠狠躁夜夜躁2014 | 91精品在线播放 | 337p日本欧洲亚洲大胆鲁鲁 |