找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3968|回复: 0
打印 上一主题 下一主题
收起左侧

使用C51单片机设置串口通讯的方法

[复制链接]
跳转到指定楼层
楼主
ID:445546 发表于 2018-12-13 12:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  这里介绍一种不需要使用中断的串口通讯方法,直接在main中的while循环里面查询串口标志,当标志发生变化的时候就进行相应的操作。
#include "STC12C5A60S2.h"

typedef unsigned char uint8;//定义uint8为无符号8位数据类型

void Uart1_Init();      //初始化串口函数
   
void main()   
{   
  uint8 Uart_Tmp;       //收发缓存器
  Uart1_Init();         //初始化串口
   
  while(1)   
  {   
    while(RI == 0)      //循环等待接收到字符
    {   
         
    }   
    RI = 0;             //将标志位清零
    Uart_Tmp = SBUF;    //接收串口接收到的数据
    SBUF = Uart_Tmp + 5;//将数据加上5后再次发送
   
    while(TI == 0)      //等待发送结束
    {
      
    }
    TI = 0;             //将标志位清零
  }
}

void Uart1_Init()
{
    REN = 1;    //允许接收控制位置1
    SM0 = 0;    //设置UART工作方式
    SM1 = 1;
    TR1 = 1;    //启动定时器
    TMOD = 0x20;//设置定时器方式
    TH1 = 0xfd; //设置波特率
    TL1 = 0xfd;
}


RS232.zip

22.79 KB, 下载次数: 16, 下载积分: 黑币 -5

串口通讯

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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