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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

[復制鏈接]
跳轉到指定樓層
樓主
485通訊仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  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)


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

使用道具 舉報

沙發
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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本午夜精品 | 三级成人片 | 国产精品久久久久永久免费观看 | 91精品一区二区三区久久久久久 | 夜夜艹天天干 | 久久久久久国产 | 日韩中文字幕av | 中文字幕在线看人 | 国产真实精品久久二三区 | 中文字幕 在线观看 | 久久精品国产99国产精品 | 日日夜精品视频 | 久久久久免费 | 成人av免费播放 | 国产9999精品 | 2018天天干天天操 | 久久婷婷av | 亚洲视频在线观看免费 | 久久国产一区二区三区 | 欧美精品一区二区三区四区五区 | 黄色片a级 | 国产在线精品一区二区三区 | 狠狠操狠狠操 | 亚洲自拍偷拍av | 国产精品99久久久久久动医院 | 久久精品黄色 | 在线免费观看成人 | 中文字幕在线观看一区 | 亚洲欧洲精品在线 | 亚洲一区二区久久 | 国产精品乱码一二三区的特点 | 国产成人午夜电影网 | 日韩视频在线观看中文字幕 | 精品影院 | 在线一区| 国产精品亚洲综合 | 国产精品久久久免费 | 国产欧美一区二区三区在线播放 | 国产免费一区 | 精品九九 | 欧美日韩不卡合集视频 |