简介

串口通信就是单片机和pc之间的一种通信方式。

通信方式:并行,串行,同步,异步(最常用的)

传输方向:单工,半双工(不同时间),全双工

基本结构

相关寄存器

SCON串口控制寄存器(主要用方式1)

D7 D6 D5 D4 D3 D2 D1 D0
符号 SM0 SM1 SM2 REN TB8 RB8 TI RI
多机通信控制位 允许接收位 是要发送的第9位数据位 接收到的第9位数据位 发送中断标志位 接收中断标志位
主要用于方式2,3中 1允许接收
0拒绝接收

TB8——在方式2和方式3中,TB8是要作为数据帧第9位被发送出去的,在多机通信中,可用于判断当前数据帧的数据是地址还是数据,TB8=0为数据,TB8=1为地址

RB8——当单片机已经接收一帧数据帧时,会把数据帧中的第9位放到 RB8中。方式0不使用RB8,在方式2和方式3中,RB8为接收到的数据帧的第9位数据位。

TI——方式1、2、3中。当发送数据完毕,硬件会将其置1,当 TI 被置1,会向CPU发送中断请求。我们记得要在中断服务程序中把 IT 置回0

RI——当接受完一帧数据时,RI  由硬件置1,当RI 被置1,会向CPU请求中断。同样要在中断服务程序中把 RI 置回0。

SM0 SM1 工作方式 功能 波特率
0 0 方式0 8位同步移位寄存器 晶振频率 / 12
0 1 方式1 10位UART 可变
1 0 方式2 11位 晶振频率/32或晶振频率/64
1 1 方式3 11位 可变

PCON功率控制寄存器

D7 D6 D5 D4 D3 D2 D1 D0
PCON SMOD

这个寄存器只有一个位SMOD,在方式1,2.,3时,波特率都与SMOD有关,当SMOD=1时,波特率会增加一倍。复位时,SMOD变回0。

SBUF寄存器:51单片机中的特殊寄存器,串行数据缓冲器(一个接收一个发送),两个其实是共用的一个地址99H,但是两个在物理上面是分开的。
当发送使用时,就采用SBUF=XXX;  (XXX为需要传送的数据)
当接收使用时,采用XXX=SBUF;
记得因为是串行的所以传输都是一位一位进行的。

波特率计算 

代码部分

#include <REGX52.H>
#include "delay.h"
#include "DigitalTube.h"
void init()
{SCON=0x50;//配置寄存器PCON=0;//波特率不加倍TMOD |=0X20;//定时器选择工作模式2TH1=TL1=0xfd;//波特率9600EA=1;//中断打开ES=1;//接受中断ET1=1;//定时器中断关闭TR1=1;//定时器开关打开
}
void UART_SendByte() interrupt 4
{unsigned char date;    //定义一个数据delay();date = SBUF;//pc发送数据RI = 0;   //接收关闭print(date/10,1);//控制数码管print(date%10,2);SBUF = date;//pc接收数据while(!TI);//判断发送是否关闭TI = 0;//发送关闭
}

结论

代码部分我只给了中断配置及串口通信的代码,其余大家自由发挥。本章重点是搞清楚串口通信的寄存器配置,波特率的计算,以及与之前中断、定时器相关知识相结合。——中断——定时器

C51单片机学习笔记之串口通信相关推荐

  1. 51单片机学习笔记-6串口通信

    6 串口通信 [toc] 注:笔记主要参考B站江科大自化协教学视频"51单片机入门教程-2020版 程序全程纯手打 从零开始入门". 注:工程及代码文件放在了本人的Github仓库 ...

  2. 51单片机学习笔记(串口通信 LED点阵屏 DS1302)

    四.串口通信 1.基本概念 通信中最重要的两个方面: 信息表示和解析方法: 信息的传输方法. 通信双方事先需要约定好信息的表示方法和解析方法,做到一致,否则信息不能有效传递. 信号的传输方法是指经过编 ...

  3. 【C51单片机学习笔记--DS1302时钟芯片蜂鸣器I2C总线AT24C02存储器】

    C51单片机学习笔记–DS1302时钟芯片&&蜂鸣器&&I2C总线&&AT24C02存储器 文章目录 一.DS1302时钟芯片介绍 二.DS1302时钟 ...

  4. C51单片机学习笔记之定时器

    简介 "定时器/计数器"说的是一个东西,因为它既能计时也能计数.是存在于单片机内部的一个独立的硬件部分,依赖晶振产生固定的时间间隔,产生了一定量的固定时间间隔后会引发定时器中断从而 ...

  5. c51单片机学习笔记-LED流水灯实验

    目的:实现 LED 流水灯,只需循环让 D1-D8 指示灯逐个点亮. 方法:点亮 D1 且把 D2-D8 熄灭,延时一段时间后再点亮 D2 且把 D1. D3-D8 熄灭,延时一段时间后再点亮 D3 ...

  6. 【K210】K210学习笔记五——串口通信

    [K210]K210学习笔记五--串口通信 前言 K210如何进行串口通信 K210串口配置 K210串口发送相关定义 K210串口接收相关定义 K210串口发送接收测试 完整源码 前言 本人大四学生 ...

  7. 51单片机学习--定时器--中断--串口通信

    51单片机学习–定时器–中断–串口通信 定时器–中断–串口通信 中断分类 定时器中断 外部中断 串口中断 基本概念 对于单片机来讲, 中断是指 CPU 在处理某一事件 A 时, 发生了另一事件 B, ...

  8. C51单片机学习笔记(一)——搭建开发环境及烧写工具

    C51单片机学习笔记(一)--搭建开发环境及烧写工具 文章目录 C51单片机学习笔记(一)--搭建开发环境及烧写工具 1.搭建软件开发环境及使用(Keil uVision) 2.将程序下载到单片机(烧 ...

  9. Arduino学习笔记⑥ 硬件串口通信

    文章目录 1.前言 2.常用串口函数 2.1 begin -- 启用串口 2.2 end -- 停用串口 2.3 print.println.printF -- 打印输出数据 2.4 read -- ...

最新文章

  1. 北京智源大会 | AI + 医疗的下一个十年:从公共卫生预警到人类基因密码破解...
  2. jQuery学习总结之基础知识----持续更新中
  3. 神策数据张涛:微信生态数字化运营解决方案
  4. 饥荒海难机器人怎么用_饥荒开发商又一款神作,难到吐血的生存游戏!
  5. 【C++】异常 Exception
  6. jdk8 mysql安装教程_Linux系统:centos7下安装Jdk8、Tomcat8.5、MySQL5.7环境
  7. LINUX中文件的移动,Linux中文件移动文件的操作命令为 ()
  8. Java项目大合集练手项目经验
  9. win10卓越性能模式
  10. Qt----Qt控制LED
  11. 制作一个html网页的步骤,制作一个完整的网页的步骤
  12. 有效预防xss_预防XSS攻击的一些方法整理
  13. Keil5创建工程(STM32F407)
  14. 图划分(Graph PartitionRe-ordering): METIS(5.x)ParMETIS(4.x)使用实践
  15. 亚马逊国际站通过ASIN获取商品信息
  16. 心血来潮——gitlab-ce汉化版
  17. JQuery-weui city-picker动态加载数据
  18. blackarch linux 的安装(vmware虚拟机)
  19. Windows x64隐藏可执行内存
  20. 《C和指针》学习备忘总结

热门文章

  1. 韩国Naver批量数据采集上传
  2. [Handbook]一键某察者新闻
  3. 基于数字孪生的变电站三维全息研判智慧联动研究
  4. SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers
  5. 计算机USB小型路由器,千万别小看它!U盘神奇用途盘点:能当路由
  6. 基于Bootstrap+html的响应式速递快递物流网页设计
  7. 内容匹配广告投放技术5:品牌展示广告(一)(百度文库课程)
  8. 医院自助机和分诊那个php,一种医院分诊用自助查询分诊机的制作方法
  9. 科目一考试系统服务器奔溃,科目一错误率最高的题 学员都崩溃了
  10. 多思计算机组成原理实验六:程序计数器实验