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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4253|回復: 3
收起左側

單片機485全雙工通信仿真+源程序案例

[復制鏈接]
ID:269536 發表于 2017-12-31 17:37 | 顯示全部樓層 |閱讀模式
485通訊仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
QQ圖片20171231173511.png QQ圖片20171231173421.png

單片機源程序如下:
  1. #include <reg51.h>
  2. #include <absacc.h>
  3. #define TR 1
  4. #define uchar unsigned char
  5. #define uint  unsigned int

  6. uchar idata buf[10]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};
  7. uchar idata buf1[10]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x09};
  8. uchar data1,data2,data3;
  9. uchar pf,addr,TRR;
  10. uchar flag,flag1,flag2=3;

  11. sbit key1=P1^0;
  12. sbit key2=P1^1;
  13. sbit key3=P2^0;
  14. /************延時程序************/
  15. void delay(uchar k)
  16.     {
  17.         uchar j;
  18.         while((k--)!=0)           
  19.                 {
  20.                 for(j=0;j<125;j++)
  21.                         {;}
  22.                 }
  23.     }

  24. void init(void)
  25. {
  26.     TMOD=0x20;
  27.     TH1=0xfd;
  28.     TL1=0xfd;
  29.     PCON=0x00;
  30.     TR1=1;
  31.     SCON=0xd0;
  32. }


  33. void keyscan(void)
  34. {
  35.    if(key1==0)
  36.     {
  37.       delay(50);
  38.         if(key1==0)
  39.           {
  40.             while(key1==0)
  41.               {
  42.                ;
  43.               }
  44.            flag2=0;
  45.            TRR=0x01;
  46.            addr=0x03;
  47.           }
  48.     }
  49.    if(key2==0)
  50.     {
  51.       delay(50);
  52.         if(key2==0)
  53.           {
  54.             while(key2==0)
  55.               {
  56.                ;
  57.               }
  58.            flag2=1;
  59.            TRR=0x01;
  60.            addr=0x04;
  61.          }
  62.     }
  63. }

  64. void send(void)
  65. { uchar i;

  66.   if(flag2==0)
  67.     {
  68.       TB8=1;
  69.       key3=1;
  70.       SBUF=addr;
  71.        while(TI==0)
  72.          {
  73.            ;
  74.          }
  75.        TI=0;
  76.        key3=0;
  77.       while(RI==0)
  78.        {
  79.         ;
  80.        }
  81.         data1=SBUF;
  82.         RI=0;
  83.        if(data1!=addr)
  84.          {
  85.           flag2=0;
  86.            
  87.          }
  88.      else{
  89.              TB8=0;
  90.              key3=1;
  91.              SBUF=TRR;
  92.              while(TI==0)
  93.              {
  94.                 ;
  95.              }
  96.              TI=0;
  97.              key3=0;
  98.              while(RI==0)
  99.              {
  100.                 ;
  101.              }
  102.              data3=SBUF;
  103.              RI=0;
  104.              if(data3!=TRR)
  105.                {
  106.                 flag2=0;
  107.                }
  108.              else{
  109.                      pf=0;
  110.                      key3=1;
  111.                     for(i=0;i<=9;i++)
  112.                       {
  113.                         TB8=0;
  114.                         SBUF=buf[i];
  115.                         pf+=buf[i];
  116.                         
  117.                         while(TI==0)
  118.                              {
  119.                                ;
  120.                              }
  121.                         TI=0;
  122.                        }
  123.                      TB8=0;
  124.                      SBUF=pf;
  125.                      while(TI==0)
  126.                             {
  127.                               ;
  128.                             }
  129.                      TI=0;
  130.                      key3=0;
  131.                      while(RI==0)
  132.                             {
  133.                               ;
  134.                             }
  135.                      data2=SBUF;
  136.                      RI=0;
  137.                      if(data2==0xcc)
  138.                           {
  139.                             flag2=3;
  140.                           }
  141.                      else{
  142.                             flag2=0;
  143.                          }
  144.                   }
  145.            }
  146.       }
  147. }


  148. void send1(void)
  149. { uchar i;
  150.   if(flag2==1)
  151.     {
  152.       TB8=1;
  153.       SBUF=addr;
  154.        while(TI==0)
  155.          {
  156.            ;
  157.          }
  158.        TI=0;
  159.       while(RI==0)
  160.        {
  161.         ;
  162.        }
  163.         data1=SBUF;
  164.         RI=0;
  165.        if(data1!=addr)
  166.          {
  167.           flag2=1;
  168.            
  169.          }
  170.        else{
  171.              TB8=0;
  172.              SBUF=TRR;
  173.              while(TI==0)
  174.              {
  175.                 ;
  176.              }
  177.              TI=0;
  178.              while(RI==0)
  179.              {
  180.                 ;
  181.              }
  182.              data3=SBUF;
  183.              RI=0;
  184.              if(data3!=TRR)
  185.                 {
  186.                  flag2=1;
  187.                 }
  188.             else
  189.                 {  
  190.                    pf=0;
  191.                    for(i=0;i<=9;i++)
  192.                       {  
  193.                         TB8=0;
  194.                         SBUF=buf1[i];
  195.                         pf+=buf1[i];
  196.                         while(TI==0)
  197.                              {
  198.                                ;
  199.                              }
  200.                         TI=0;
  201.                       }
  202.                     TB8=0;
  203.                     SBUF=pf;
  204.                     while(TI==0)
  205.                        {
  206.                         ;
  207.                        }
  208.                     TI=0;
  209.                     while(RI==0)
  210.                         {
  211. ……………………

  212. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
485全雙工通信.zip (162.11 KB, 下載次數: 79)


回復

使用道具 舉報

ID:157257 發表于 2018-4-30 15:45 | 顯示全部樓層
謝謝分享啊~~~~~
回復

使用道具 舉報

ID:325957 發表于 2018-5-9 15:36 來自觸屏版 | 顯示全部樓層
謝謝你的分享  但是我沒錢  我很尷尬
回復

使用道具 舉報

ID:331575 發表于 2018-5-26 20:11 | 顯示全部樓層
之前一直都在寫485的通訊代碼,對比一下樓主的,看看能不能找出新思路
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: a免费视频 | 在线观看三级av | 午夜日韩 | 97超碰成人| 亚洲 欧美 日韩 在线 | 久草.com | av在线影院 | 不卡视频一区二区三区 | 国产在线中文字幕 | 91久久电影 | 欧美高清一级片 | 在线观看av网站永久 | 亚洲一二三在线观看 | 亚洲福利在线观看 | 成人亚洲精品久久久久软件 | 久久国产一区二区 | 在线精品一区 | 国产乱码精品1区2区3区 | 久久久久久亚洲精品 | 国产精品视频久久 | 久久久一区二区三区 | 中文字幕第三页 | 一区二区三区视频在线 | 免费的日批视频 | 中文字幕亚洲欧美日韩在线不卡 | 欧美福利精品 | 免费看国产片在线观看 | 欧美日韩视频在线第一区 | 日本韩国电影免费观看 | 日韩视频―中文字幕 | 国产成人免费视频网站高清观看视频 | 欧美一区二区三区一在线观看 | 一二三区av | 999久久久 | 色综合久久88色综合天天 | 欧美在线视频网 | 久久久久久久久久久丰满 | 91精品久久久久久久99 | 欧美日本韩国一区二区三区 | 激情久久网 | 自拍偷拍精品 |