找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2404|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)雙機(jī)串行口主從機(jī)通訊仿真+接受與發(fā)送代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:435699 發(fā)表于 2018-11-29 14:09 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)雙機(jī)通訊,就是直接單片機(jī)的串口RX和TX直接連接,然后通過串口命令完成通訊
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. sbit key0=P1^0;
  4. sbit key1=P1^1;
  5. sbit key2=P1^2;


  6. uchar i;
  7. uchar code tb[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

  8. void delay(int z)                        //延時(shí)子函數(shù)
  9. {
  10.         int i,j;
  11.         for(i=0;i<z;i++)
  12.         for(j=0;j<500;j++);
  13. }
  14. void init()                                        //串口初始化
  15. {
  16.         SCON=0x50;
  17.         TMOD=0x20;
  18.         TH1=0xFD;
  19.         TL1=0xFD;
  20.         TR1=1;
  21. }
  22. void main()
  23. {
  24.         i = 0;

  25.         init();
  26.         P1=0xff;
  27.         P2=0xff;

  28.         while(1)
  29.         {


  30.            if(key0==0)
  31.            {
  32.                 i++;
  33.                 //if(i>=10)
  34.                 //  i=0;                               

  35.                 SBUF=~tb[i%10];                        //送緩沖區(qū)
  36.                 P0=~tb[i%10];                        //數(shù)據(jù)送P0口

  37.                 while(TI==0);                        //判斷是否發(fā)送完成
  38.                 TI=0;       
  39.             delay(200);
  40.            }

  41.            if(key1==0)
  42.            {
  43.                 i--;
  44.         //        if(i<=0)
  45.         //          i=9;                               

  46.                 SBUF=~tb[i%10];                        //送緩沖區(qū)
  47.                 P0=~tb[i%10];                        //數(shù)據(jù)送P0口

  48.                 while(TI==0);                        //判斷是否發(fā)送完成
  49.                 TI=0;       
  50.             delay(200);
  51.            }


  52. /*                for(i=7;i<10;i++)                //連續(xù)發(fā)送數(shù)組數(shù)據(jù)
  53.                 {       
  54.                 SBUF=~tb[i];                        //送緩沖區(qū)
  55.                 P0=~tb[i];                                //數(shù)據(jù)送P0口
  56.                 while(TI==0);                        //判斷是否發(fā)送完成
  57.                 TI=0;                                       
  58.             delay(50);
  59.                 }       
  60. */

  61.         }
  62. }
復(fù)制代碼

所有資料51hei提供下載:
雙機(jī)串行.zip (56.79 KB, 下載次數(shù): 49)


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

使用道具 舉報(bào)

沙發(fā)
ID:435699 發(fā)表于 2018-11-29 14:34 | 只看該作者
可以的
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表