原理:

这里需要解释一下,串口通信是需要占用定时器1的,所以使用了串口通信就不能使用定时器1,除非是代码优化。

这个需要配置几个寄存器,都比较简单,TMOD寄存器设置定时器计数器的工作方式,SCON则是设置串口通信的工作方式,PCON则是波特率加倍操作,都是比较简单的。

计时器初始值的设置有专门的工具

链接:https://pan.baidu.com/s/1BSi8YCaRWtBGLaV2gslpSw 
提取码:1234

使用方法:

设置定时器工作方式,单片机晶振,所需波特率,是否开启倍频,最好让误差为零。

代码:

#include <reg51.h>typedef unsigned int u16;    //对系统默认数据类型进行重定义
typedef unsigned char u8;void uart_init(u8 baud)
{TMOD|=0X20;   //设置计数器工作方式2SCON=0X50; //设置为工作方式1PCON=0X80;   //波特率加倍TH1=baud;   //计数器初始值设置TL1=baud;ES=1;      //打开接收中断EA=1;      //打开总中断TR1=1;      //打开计数器
}void main()
{   uart_init(0XFA);//波特率为9600while(1){         }
}void uart() interrupt 4 //串口通信中断函数
{u8 rec_data;RI = 0;           //清除接收中断标志位rec_data=SBUF;  //存储接收到的数据SBUF=rec_data;   //将接收到的数据放入到发送寄存器while(!TI);        //等待发送数据完成TI=0;            //清除发送完成标志位
}

运行结果:

发给单片机什么,单片机就回复你什么。

51单片机基础之串口通信相关推荐

  1. 基于51单片机的双机串口通信排队叫号系统(LCD显示)设计

    基于51单片机的双机串口通信排队叫号系统(LCD显示)设计 1 开发环境 视频讲解 2 功能说明介绍 3 仿真图 4 程序 5 原理图 6 视频讲解 7 设计报告 7.1 设计目的 7.2 设计要求及 ...

  2. 51单片机入门——UART串口通信

    文章目录 前言 1.什么是串行通信 2. USB转串口通信 3. IO 口模拟 UART 串口通信 4 UART串口通信的基本应用 4.1 通信的三种类型 4.2 UART模块 4.3 UART 串口 ...

  3. 【51单片机STC89C52】串口通信(蓝牙)

    目录 一.串口 1.串口基本认知 2.串口通信 3.串口编程寄存器 串行口相关寄存器 串行口控制寄存器SCON和PCON STC-ISP工具波特率计算器 串口初始化编程实现 二.发送一个字符'a'给P ...

  4. 51单片机c语言串口通信,51单片机串口通信系列例程

    2.将接收的数据发送出去 #include "reg51.h" #define uchar unsigned char #define uint  unsigned int //延 ...

  5. 单片机 多机通讯c语言,单片机多机串口通信.doc

    单片机多机串口通信 摘要 本文详细介绍了基于RS-485总线的单片机与多台单片机间的串行通信原理.实现方法和相应的通信硬件.软件设计.该设计是由单片机与单片机组成的主从控制系统,其中单片 关键词: 单 ...

  6. 单片机与PC机一样都是计算机,51单片机与PC机通信资料

    <51单片机与PC机通信资料>由会员分享,可在线阅读,更多相关<51单片机与PC机通信资料(14页珍藏版)>请在人人文库网上搜索. 1.专业综合实习报告专 业: 电子信息工程 ...

  7. 单片机红外通信c语言,基于C语言的计算机与多单片机红外无线串口通信的实现.doc...

    基于C语言的计算机与多单片机红外无线串口通信的实现 基于C语言的计算机与多单片机红外无线 串口通信的实现 黄文亮 信息学院 电子信息工程专业 指导教师 刘传菊 摘要:计算机与一台或多台单片机的通信系统 ...

  8. 51单片机 ENC28J60 TCP/IP通信

    51单片机 ENC28J60 TCP/IP通信 单片机:STC90C516RD+ ENC28J60模块:mini(3.3V供电) 设备:PC.开发板.两个网线.路由器 首先先介绍一下本文的移植针对于单 ...

  9. Matlab 与stm32单片机之间的串口通信

    Matlab 与stm32单片机之间的串口通信 在我们用stm32做信号处理时,我时常需要用到Matlab对我们采集的数据进行分析,拟合.按照传统的方法,我们一般都会先将数据通过串口助手打印出来,再导 ...

最新文章

  1. Linux的追逐,Windows的穷途恼指日可待
  2. 一份来自28岁.NET老程序员的自白
  3. cuba 平台_CUBA 7的新功能
  4. 深圳敏捷云计算机科技,敏捷云 | 关于我们 | 敏捷云
  5. 5G基站功耗,到底有多大?
  6. 【Python】如何获取Numpy三维数组中目标值的位置
  7. 百度网盘空间调整:这类用户2TB变100GB!
  8. python权限管理系统_Django 自定义权限管理系统详解(通过中间件认证)
  9. Mysql 8.0 遇到用遇到的几个问题及解决办法
  10. 真北方向、坐标北向以及磁北向
  11. qqxml图片代码_分享三款高级qqxml消息卡片代码
  12. 如何用photoshop给图片添加水印?
  13. 平安智慧企业大规模离职_中国平安人事再变动,28年老将任汇川离职,影响几何...
  14. 抖音云控系统领先品牌
  15. Unix Domain Sockets
  16. 宝石塔防:如果还有人过不去1337,俺来发个详细点儿的攻略吧
  17. 2018高二计算机会考,2018高二会考时间及考试科目
  18. 雅虎财经股票数据API获取
  19. 蓝桥牌型种数 C语言解法
  20. javax.swing的基本组成

热门文章

  1. Java中的线程池如何实现,一文彻底搞懂
  2. 基于java的医院门诊查询系统代码
  3. 软件安装管家——pr2019安装包及教程
  4. 极限内卷丨让我们偷偷的卷起来
  5. 缩进text-indent标签造成图片也缩进解决方案
  6. UE4光源、体积雾、IES
  7. cad打印本计算机未配置,cad无法打印怎么设置_cad图纸无法打印的处理方法
  8. 密码锁 java接口_指纹门锁的USB接口怎么用 USB应急充电接口使用方法
  9. ROS摄像机的标定(这里很好的一点就是给出了标定结果的各个参数的含义,这个很多都没讲)
  10. linux定时at,Linux定时任务之at