[51单片机] 简单串口通信

[复制链接]
732|3
 楼主| 小分子 发表于 2016-9-1 14:54 | 显示全部楼层 |阅读模式
  1. /**********************************
  2. MCU接收到电脑发来的数据加1返回电脑
  3. **********************************/

  4. #include <reg52.h>

  5. void InitUart();                                        //串口通信初始化函数声明

  6. void main()
  7. {
  8.         InitUart();
  9.         while (1);
  10. }

  11. void InitUart()
  12. {
  13.         TMOD &= 0x0F;                                   //清空T1的控制位
  14.         TMOD |= 0x20;                                   //配置T1工作模式为2,即自动重装模式;
  15.         TH1 = 0xFD;                                           //晶振为11.0592MHZ,波特率为9600
  16.         TL1 = TH1;                                           //将TH1中的数据添加到TL1中
  17.         PCON = 0x00;                                   //波特率正常不倍增
  18.         SCON = 0x50;                                   //配置串口工作模式为1,且开启接收功能
  19.         TR1 = 1;                                           //串口的波特率发生器由T1(T2)产生,开启定时器T1;
  20.         ES = 1;                                                   //开启串口中断
  21.         EA = 1;                                                   //开启总中断
  22. }

  23. void UartIRQ() interrupt 4                   //串口中断函数(在中断函数中要分清是接收产生中断,还是发送产生)
  24. {
  25.         if (1 == RI)                                   //接收中断标志为1,表示接收完成
  26.         {
  27.                 SBUF = SBUF +1;                           //"="左边SBUF为发送缓冲器,右边SBUF为接收缓冲器
  28.                 RI = 0;                                           // RI需要软件清零
  29.         }
  30.         if (1 == TI)                                   //发送中断标志为1,表示发送完成
  31.         {
  32.                 TI = 0;                                           // TI需要软件清零
  33.         }
  34. }
416356084 发表于 2016-9-1 16:32 | 显示全部楼层
????
NE5532 发表于 2016-9-1 16:57 | 显示全部楼层
灌水的?
ahui1105 发表于 2016-9-1 17:08 | 显示全部楼层
什么情况?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

68

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部