找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 824|回复: 0
收起左侧

PC机与单片机通信程序(RS232 协议)

[复制链接]
ID:1044798 发表于 2022-9-16 07:19 | 显示全部楼层 |阅读模式
单片机串口通信的应用,通过串口,我们的个人电脑和单片机系统进行通信。
个人电脑作为上位机,向下位机单片机系统发送十六进制或者ASCLL码,单片机
系统接收后,用LED显示接收到的数据和向上位机发回原样数据。

程序和原理图见附件。

单片机源程序如下:
  1. #include "reg52.h" //包函8051 内部资源的定义
  2. unsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容
  3. unsigned char fan;
  4. int i,j;
  5. void Delay() //延时程序
  6. {
  7. for(i=0; i<100; i++)
  8. for(j=0; j<100; j++);
  9. }
  10. void delays()
  11. {
  12. int k;
  13. for (k=0;k<1200;k++);
  14. }
  15. ///////功能:串口初始化,波特率9600,方式1/////////
  16. void Init_Com(void)
  17. {
  18. TMOD = 0x20;
  19. PCON = 0x00;
  20. SCON = 0x50;
  21. TH1 = 0xFd;
  22. TL1 = 0xFd;
  23. TR1 = 1;
  24. }
  25. /////主程序功能:实现接收数据并把接收到的数据原样发送回去///////
  26. void main()
  27. {
  28. Init_Com();//串口初始化
  29. while(1)
  30. {
  31.                  
  32. if ( RI ) //扫描判断是否接收到数据,
  33. {
  34. dat = SBUF; //接收数据SBUF赋与dat
  35. if(dat==0x30)        //如果PC发送十六进制00,单片机P1口全亮。
  36. {P1=0x00;
  37. Delay();   }
  38. else if(dat==0x31)
  39. {P1=0x01;
  40. Delay();}
  41. else if(dat==0x32)
  42. {P1=0x03;
  43. Delay();}
  44. else if(dat==0x33)
  45. {P1=0x07;
  46. Delay(); }
  47. else if(dat==0x34)
  48. {P1=0x0f;
  49. Delay(); }
  50. else if(dat==0x35)
  51. {P1=0x1f;
  52. Delay();}
  53. else if(dat==0x06)
  54. {P1=0x3f;
  55. Delay(); }
  56. else if(dat==0x07)
  57. {P1=0x7f;
  58. Delay();}
  59. else if(dat==0x08)
  60. {P1=0xff;
  61. Delay(); }
  62. else if(!(P2&0x01))
  63. { delays();
  64. while(!(P2&0x01));
  65. fan = 0x36;}
  66. else if(!(P2&0x02))
  67. { delays();
  68. while(!(P2&0x02));
  69. fan = 0x37;}
  70. else if(!(P2&0x04))
  71. { delays();
  72. while(!(P2&0x04));
  73. fan = 0x38;}
  74. else if(!(P2&0x08))
  75. { delays();
  76. RI=0; //RI 清零。
  77. SBUF =dat; //在原样把数据发送回去(接收数据为发送数据的ASCII码,如发送q显示为113)
  78. }
  79. }
  80. }
复制代码

PC 机与单片机通信(RS232 协议).doc

181 KB, 下载次数: 15, 下载积分: 黑币 -5

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表