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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6410|回復: 1
收起左側

單片機多機通信仿真及源程序

[復制鏈接]
ID:137190 發表于 2016-9-26 12:52 | 顯示全部樓層 |閱讀模式
0.png
下面是單片機多機通信的主機程序:
  1. #include<reg51.h>
  2. #include<string.h>

  3. #define _SUCC_   0x0f//數據傳送成功
  4. #define _ERR_    0xf0//數據傳送失敗
  5. unsigned char Table[9]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
  6. //unsigned char Table[]="123456789";
  7. unsigned char Buff[20];  //數據緩沖區
  8. unsigned char temp=0xff;
  9. sbit KEY1=P1^0;
  10. sbit KEY2=P1^1;
  11. //unsigned char addr;

  12. //延時1ms函數
  13. void delay_1ms(unsigned int t)
  14. {
  15. unsigned int x,y;
  16. for(x=t;x>0;x--)
  17.   for(y=110;y>0;y--);
  18. }
  19. //緩沖區初始化
  20. void Buff_init()
  21. {
  22. unsigned char i;    //將Table里的數據放到緩沖區里
  23. for(i=0;i<20;i++)  
  24. {
  25.   Buff[i]= Table[i];
  26.   delay_1ms(100);
  27. }
  28. }
  29. //串口初始化函數
  30. void serial_init()
  31. {
  32. TMOD=0x20; //定時器1工作于方式2
  33. TH1=0xfd;  
  34. TL1=0xfd; //波特率為9600
  35. PCON=0;
  36. SCON=0xd0;  //串口工作于方式3
  37. TR1=1;  //開啟定時器
  38. TI=0;
  39. RI=0;
  40. }
  41. //發送數據函數
  42. void SEND_data(unsigned char *Buff)
  43. {
  44. unsigned char i;
  45. unsigned char lenth;
  46. unsigned char check;
  47. lenth=strlen(Buff);      //計算數據長度
  48. check=lenth;

  49. TI=0;         //發送數據長度
  50. TB8=0;      //發送數據幀
  51. SBUF=lenth;
  52. while(!TI);
  53. TI=0;
  54.          
  55. for(i=0;i<lenth;i++)  //發送數據
  56. {
  57.   check=check^Buff[i];
  58.   TB8=0;
  59.   SBUF=Buff[i];   
  60.   while(!TI);
  61.   TI=0;
  62. }

  63. TB8=0;      //發送校驗字節
  64. SBUF=check;   
  65. while(!TI);
  66. TI=0;     
  67. }
  68. //向指定從機地址發送數據
  69. void ADDR_data(unsigned addr)
  70. {
  71. while(temp!=addr) //主機等待從機返回其地址作為應答信號
  72. {
  73.   TI=0;    //發送從機地址
  74.   TB8=1;    //發送地址幀
  75.   SBUF=addr;
  76.   while(!TI);
  77.   TI=0;
  78.   
  79.   RI=0;
  80.   while(!RI);
  81.   temp=SBUF;
  82.   RI=0;
  83. }

  84. temp=_ERR_;   //主機等待從機數據接收成功信號
  85. while(temp!=_SUCC_)
  86. {
  87.   SEND_data(Buff);
  88.   RI=0;
  89.   while(!RI);
  90.   temp=SBUF;
  91.   RI=0;
  92. }
  93. }      
  94. void main()
  95. {
  96. Buff_init();
  97. serial_init();
  98. while(1)
  99. {
  100.   if(KEY1==0)
  101.   {
  102.    delay_1ms(5);
  103.    if(KEY1==0)
  104.    {
  105.     while(!KEY1);
  106.     ADDR_data(0x01);
  107.    }
  108.   }
  109.   if(KEY2==0)
  110.   {
  111.    delay_1ms(5);
  112.    if(KEY2==0)
  113.    {
  114.     while(!KEY2);
  115.     ADDR_data(0x02);
  116.    }
  117.   }

  118. }
  119. }
復制代碼
0.png
多機通信的所有資料下載: 多機通信.rar (69.63 KB, 下載次數: 106)
回復

使用道具 舉報

ID:461260 發表于 2020-12-17 16:19 | 顯示全部樓層
很好,學習了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线免费国产视频 | 可以在线看的黄色网址 | 日本在线播放一区二区 | 狠狠爱综合网 | 国产毛片久久久久久久久春天 | 日韩在线一区二区三区 | 久久伊人免费视频 | 国产成人免费视频网站高清观看视频 | 日韩精品一区二区三区四区 | 久久久久久91 | 国产免费av网 | 黄a网| 一区二区免费在线观看 | 欧美精品在线免费观看 | 久久国产欧美日韩精品 | 国产精品不卡 | 日韩一区二区三区精品 | 欧美日韩在线一区二区 | 欧美日韩亚洲成人 | 亚洲自拍偷拍av | 精品亚洲一区二区三区 | 国产精品日产欧美久久久久 | 中文字幕一区在线观看视频 | 亚洲精品视频在线 | 一区二区三区四区免费在线观看 | 国产成人久久精品 | 中文字幕 视频一区 | 黄a在线观看| 亚洲乱码一区二区三区在线观看 | 狠狠干2020| 青青草中文字幕 | 亚洲综合在线视频 | 日韩精品在线播放 | 日韩欧美一区二区三区 | 国产一区二区三区久久久久久久久 | www.久久| av在线亚洲天堂 | 成人免费大片黄在线播放 | 精品中文字幕久久 | 99爱视频| 午夜一区 |