串行口是单片机与外界进行信息交换的工具,8051单片机的通信方式有两种:
并行通信:数据的各位同时发送或接收。
串行通信:数据一位一位次序发送或接收。
![](http://file.elecfans.com/web1/M00/4E/FE/pIYBAFrO-6aAYqzFAABDOMK2gCo774.gif)
串行通信的方式
异步通信
用一个起始位0表示字符的开始,用停止位1表示字符的结束,中间夹着8个数据位,字符能一个接一个传送
CPU与外设之间必须有字符格式和波特率两项规定
字符格式规定能使双方把0和1串理解成同一种意义,原则上自由制定,通用角度使用标准如ASCII
波特率即数据传输速率,每秒传送的二进制位数,如120字符/s,每个字符10数位,则传送波特率为1200波特
同步通信
去掉了开始结束标志提高速度,但由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。
通信方向
在串行通信中,把通信接口只能发送或接收的单向传送办法叫单工传送;把数据能双向传递称为双工传送。半双工传送两机之间不能同时进行发送和接收,任一时该,只能发或者只能收信息。全双工传送是能同时发送接收。
串行接口结构
8051单片机通过管脚RXD(P3.0,串行数据接收端)和管脚TXD(P3.1,串行数据发送端)与外界通信。SBUF是串行口缓冲寄存器,包括发送寄存器和接收寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能被CPU读出数据,一个只能被CPU写入数据。
串行口的控制与状态寄存器
串行口控制寄存器 SCON
用于定义串行口的工作方式及实施接收和发送控制,字节地址为98H
![](http://file.elecfans.com/web1/M00/4E/FE/pIYBAFrO-6aAJdOnAAAXvtnPRZc759.jpg)
SM0、SM1:串行口工作方式选择位
![](http://file.elecfans.com/web1/M00/4E/FE/pIYBAFrO-6aACYhpAAAyfQQGMUI912.jpg)
串行口的工作方式
方式0
○为移位寄存器输入/输出方式。可外接移位寄存器以扩展I/O口,也能外接同步输入/输出设备。8位串行数据者是从RXD输入或输出,TXD用来输出同步脉冲。○输出:发送完毕后终端标志T1硬件置位。(同其他)○输入:当 RI =0和REN =1同时满足开始接收,接收到第八位后数据移至寄存器,硬件置位RI。
方式1
○为波特率可变的10位异步通信方式。○输出:当执行一条指令将数据写入发送缓冲SBUF时,就启动发送,发送完一帧硬件置位T1○输入:检测1-0跳变,使用前用软件清零RI和SM2
方式2
○为固定波特率的11位UART方式。它比方式1增加了一位可程控为1或0的第9位数据。○输出:11位,附加第九位是SCON的TB8位,可作为多机通信中地址/数据信息标志位、奇偶校正位。别的同其他○输入:123同
方式3
为波特率可变的11位UART方式。除波特率外,其余与方式2相同。
波特率选择
方式0:方式0的波特率固定为主振频率的1/12。
方式2:
波特率由 PCON 中的SMOD位决定
波特率=2SOMD/64*fosc,SMOD=0或1
方式1和3:
波特率= 定时器T1溢出率
T1溢出率= T1计数率/产生溢出所需的周期数
T1计数率取决于它工作在定时器状态还是计数器状态。
○当工作于定时器状态时,T1计数率为fosc/12;○当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于fosc/24。
产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。
○定时器T1工作于方式0:溢出所需周期数=8192-x○定时器T1工作于方式1:溢出所需周期数=65536-x○定时器T1工作于方式2:溢出所需周期数=256-x
因为方式2为自动重装入初值的8位定时器/计数器模式,所以用它来做波特率发生器最恰当。
原文标题:单片机串行口介绍
文章出处:【微信号:mcugeek,微信公众号:MCU开发加油站】欢迎添加关注!文章转载请注明出处。
收藏
人收藏
扫一扫,分享给好友
复制链接分享
评论
发布评论请先 登录
相关推荐
详解定时计数器的工作原理
曾经从零基础学习单片机的我,到找到相应开发工作花了大概三四个月的时间,当时还是11年,学习条件没有现....
发表于 03-25 16:16 •
9次
阅读
OpenHarmony移植系列课程之STM32F407单片机
为了让更多开发者轻松学习OpenHarmony,也为了让更多的开发板能跑上OpenHarmony,电....
HarmonyOS官方合作社区 发表于 03-25 09:23 •
87次
阅读
在hi3861上,移植mqtt,并测试发消息到自己的服务端上,烧录后报错 wifi_service
各位好,在hi3861上,移植mqtt,并测试发消息到自己的服务端上,烧录后报错 是为什么呀?服务端那边也没收到任何信息也没有连接上...
发表于 03-24 18:36 •
1281次
阅读
高压运放:单片机DAC输出的幅值有限
高压运放:单片机DAC输出的幅值有限
1.假如需要几十V的目标电压,是否可以用高压运放将单片机的DAC输出放大到几十伏?...
发表于 03-24 17:30 •
479次
阅读
【合宙Air551G双频定位开发板试用体验】stm32解析定位坐标数据
上一篇说了使用合宙官方调试软件接受模块发来的数据,现在尝试使用stm32获取定位数据并且把数据通过串口发送到电脑。
stm32与模...
发表于 03-24 17:16 •
286次
阅读
详解单片机的定时功能
现代互联网的好处就是什么乱七八糟的资源都能搜集到,但是这个也容易迷惑人,有好处也有坏处,好处是资料很....
发表于 03-24 15:42 •
14次
阅读
【合宙Air551G双频定位开发板试用体验】开机体验
感谢合宙寄来的GPS模块--Air551G定位模块,模块已经很简单了,给我们留出了5个引脚,分别为:VCC,TXD,RXD(这两个...
发表于 03-24 12:08 •
370次
阅读
【汇总】关于40个单片机晶振问题及解决方法
单片机晶振不起振原因分析
遇到单片机晶振不起振是常见现象,那么引起晶振不起振的原因有哪些呢?
(1) PCB板布线错误;
(2...
发表于 03-24 11:13 •
734次
阅读
基于STM32F103智能小车设计
基于STM32F103智能小车设计,包含:硬件、原理图、软件、流程等全套方案,有需要的朋友可以下载。
...
发表于 03-24 10:24 •
968次
阅读
如何解决单片机的抗干扰性问题?
各种C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系统C编译器代码长度和执行时间仅比以汇编语言编写的
...
发表于 03-24 10:20 •
1013次
阅读
请教业余爱好者,如何学单片机?
曾经想学单片机,业余爱好者无从下手,请教高手们。
...
发表于 03-23 23:54 •
915次
阅读
一站式BMS方案(完整硬件+软件算法)上海航芯x博联科技重磅力推
上海航芯携手博联科技,全新打造一站式BMS方案,这是一款高性能的开发平台,集成了博联自研的基于锂离子....
发表于 03-23 18:39 •
1148次
阅读
ARM-Linux应用开发和单片机开发的不同
针对ARM-Linux程序的开发,主要分为三类:应用程序开发、驱动程序开发、系统内核开发。针对不同种....
嵌入式ARM 发表于 03-23 16:01 •
305次
阅读
80C51单片机的定时计数器的结构和工作原理
无论是对于新手还是已经在行内的朋友,学习单片机技术,实战动手能力十分重要,如果只知道从网络上的视频以....
华维单片机林北 发表于 03-23 15:38 •
181次
阅读
函数信号发生器是否与任意波形信号发生器相同
原理上是一样的,但是实现方法不一样吧,函数信号发生器是用数学运算的方法实现的,直接但是对单片机的运算....
发表于 03-23 14:03 •
8次
阅读
浅析stm32单片机无法烧写程序的原因及其解决办法
stm32单片机烧写程序时,有时候会出现无法烧写下载程序的问题。keil报错为 “No Cortex-M sw Device Found” 和 “Error: ...
发表于 03-23 10:45 •
329次
阅读
1个USB接口的芯片如何能与多个USB同时通信?
在日常生活与工作中,经常会碰到这样的困惑现象
办公笔记本只含有2个USB接口,除了连接1个鼠标与1个键盘之外,其他的带USB...
发表于 03-23 10:43 •
480次
阅读
C语言编程中main()函数退出之后程序去哪儿了
对于嵌入式系统,如果没有运行RTOS,那么程序开发中的主函数main()需要通过某种机制使其永远愉快....
电子工程世界 发表于 03-22 17:44 •
683次
阅读
国产单片机DP32G003概述、特性及应用
近两年,因为各种影响,进口的许多物料一直都在缺货与涨价的边缘徘徊。这种发展的趋势,也推动了许多工程更....
发表于 03-22 13:09 •
35次
阅读
为什么很多电器设备都要使用单片机?
指令解码电路是解读从内存中读取的指令的含义。运算电路是根据解码结果操作的。确切地讲,指令解码电路就是....
STM32嵌入式开发 发表于 03-22 09:42 •
129次
阅读
基于瑞芯微RK3568核心板实现的智能网关概述
近年来,“工业互联网”在国家层面被反复提及,已连续5年写入政府工作报告。随着人工智能、5G、大数据和....
琳子吖Nn 发表于 03-22 09:12 •
1031次
阅读
单片机自学笔记 51单片机自学好找工作吗
自学不是说不可以,速成的话还是找一对一的比较好,建议学完51学STM32,51单片机也并不是很难,利....
发表于 03-21 17:54 •
68次
阅读
现在学80C51单片机还有什么前途 单片机自学概述
网上太多喷单片机开发的,其实我想说,都是一个行业的,为啥要内卷,51单片机是否已经过时,这个不是由我....
发表于 03-21 17:52 •
38次
阅读
CS5220 HDMI到VGA转换器的特性及应用
Capstone CS5220是一个HDMI转VGA(内置Flash可更新FW)的高性能、低成本的单....
TEL13670232221 发表于 03-21 15:02 •
230次
阅读
PC机与单片机通信RS232协议
PC 机与单片机通信(RS232 协议设计资料
发表于 03-21 14:39 •
25次
阅读
基于51单片机的电子时钟设计
电子时钟设计
发表于 03-21 14:09 •
26次
阅读
FPGA能做什么?比单片机厉害吗?
FPGA 在通信领域的应用可以说是无所不能,得益于 FPGA 内部结构的特点,它可以很容易地实现分布....
strongerHuang 发表于 03-21 09:58 •
224次
阅读
80C51单片机中断系统的结构及工作原理
刚毕业还是转型学习的黄金年龄,无论你是什么专业,如果对应自己的专业不好找工作的话,可以选择转型到其他....
发表于 03-18 16:28 •
36次
阅读
亮度可变人体感应和坐姿警告灯(含源代码和原理图及仿真)
亮度可变人体感应和坐姿警告灯,含源代码和原理图及仿真
发表于 03-18 11:27 •
37次
阅读
矩阵键盘-单片机入门课件
矩阵键盘-单片机入门课件
发表于 03-18 11:12 •
32次
阅读
分享一些单片机相关的理论知识
无论是初学单片机还是在学校的人来说,如果只是按教科书式的学法,上来就搞一堆名词指令,学了几个月还搞不....
发表于 03-17 12:40 •
91次
阅读
stm32、51单片机和AVR单片机到底选哪一个
这些都是非常好的单片机学习路径,低中高单片机都是有大量的应用范围,只是分为不同的领域,工程、家用、军....
发表于 03-16 10:39 •
75次
阅读
单片机学习都时候需要注意的步骤—依葫芦画瓢
很多朋友无论在学习什么东西的时候喜欢看别人的视频和程序,这些都能看懂然后就觉得自己都会了,等到自己写....
发表于 03-15 17:04 •
53次
阅读
NXP iMX8MP开发板在UUU烧写时卡在99%
来源 | 飞凌嵌入式 题图|OKMX8MP-C开发板 近期查看飞凌嵌入式技术支持部门问题反馈列表时,....
发表于 03-15 16:24 •
22次
阅读
单片机实现24C02存储上次使用中状态的C语言实例
单片机实现24C02存储上次使用中状态的C语言实例
发表于 03-15 14:19 •
31次
阅读
UART通用异步收发器与SPI串行外设接口及I2C总线比较
在单片机开发中,UART、I2C、RS485等普遍在用,对它们的认识可能模棱两可,本文把它们整理了一....
STM32嵌入式开发 发表于 03-15 09:50 •
259次
阅读
七天物联网智能家居实战学习笔记(六)
UDP 连接流程 复位:AT+RST 模式设置:AT+CWMODE_DEF=1 WIFI 连接:AT....
发表于 03-14 21:57 •
31次
阅读
单片机的中断系统是什么,它的作用是什么
这个还用问?答案肯定不是。学习 51单片机好处是,学会51之后自然就会举一反三和融会贯通,市面上单片....
发表于 03-14 17:20 •
55次
阅读
Q-Writer 4.30应用程序
Q-Writer 4.30
发表于 03-14 14:44 •
12次
阅读
FPGA与MCU的程序思路
FPGA以9600的波特率向单片机发送32位数据,然后单片机对数据进行解析,显示在显示屏上面
FPGA之家 发表于 03-14 14:07 •
1266次
阅读
单片机新手近半年的学习感悟分享
我曾经听过一位脱口秀表演者的演说,有一句话我至今印象不减:“人为什么一定要去大学,为什么有的人不去大....
Jonathansin 发表于 03-12 14:58 •
837次
阅读
VK2C23B高抗干扰段码LCD低功耗液晶驱动芯片
VK2C23B LQFP48是一个点阵式存储映射的LCD驱动器,可支持最大280点(35SEGx8C....
发表于 03-12 14:51 •
22次
阅读
51单片机指令快速记忆方法总结
学习单片机,除了搞清单片机内部功能、存储空间分配及I/O接口外,还应掌握其指令系统。MCS-51共有....
嵌入式ARM 发表于 03-12 12:04 •
637次
阅读
编写一个简单的C51程序
对于嵌入式系统,如果没有运行RTOS,那么程序开发中的 主函数(main())需要通过某种机制使其永....
嵌入式ARM 发表于 03-12 11:17 •
435次
阅读
深入介绍三种不同的程序架构
在嵌入式软件开发,包括单片机开发中,软件架构对于开发人员是一个必须认真考虑的问题。软件架构对于系统整....
嵌入式ARM 发表于 03-12 08:36 •
371次
阅读
MOS管驱动的全桥电路原理详解
电路首先,单片机能够输出直流信号,但是它的驱动才能也是有限的,所以单片机普通做驱动信号,驱动大的功率....
电源研发精英圈 发表于 03-12 08:10 •
429次
阅读
基于全志A40i核心板实现的呼吸机解决方案
导读 呼吸机是一种用来替代,控制或者改变患者正常的生理呼吸,增加患者肺活量,改善呼吸功能,维持患者体....
发表于 03-11 16:05 •
24次
阅读
单片机学习:关于P0和P2口的一些知识分享
学校为什么能存在,光靠看一本书就能自学成才,那还要学校有什么用,当然了,除了一些学习能力很强,且有一....
发表于 03-11 13:34 •
104次
阅读
单片机原理I/O口结构:P0口和P2口的结构介绍
实话告诉你,除非学习能力很强,且很有自主学习能力的人,才适合自学这条路,如果不具备以上能力的,或者想....
发表于 03-11 13:31 •
97次
阅读
P3口的相关结构和功能的知识分享
所有人的大道理都懂,但是自己很难控制自己,自学时间上不容易把控,还是跟班学习好点,有人看着不学也得学....
发表于 03-10 17:50 •
51次
阅读
能用C++开发单片机吗
通常来说,在单片机上编程,要么汇编,要么C语言,而用C++进行开发的很少。
strongerHuang 发表于 03-10 17:47 •
889次
阅读
单片机没有串口时如何打印调试信息
输出调试信息是嵌入式开发中必不可少的调试利器,嵌入式开发的一个特点是很多时候没有操作系统,或者没有文....
硬件攻城狮 发表于 03-10 17:19 •
624次
阅读
单片机之裸机程序框架设计
大学导师教导过,学到的知识,时刻去保持分享。分享之前要去加深理解每一句话的含义。第一受益者是自己,第....
发表于 03-10 16:43 •
20次
阅读
单片机应用系统的开发流程
我们学习单片机的目的就是为了进行嵌入式系统的开发,学好单片机首先要有一个整体认识。
strongerHuang 发表于 03-10 16:13 •
390次
阅读
NY8B062D 8位单片机数据手册
NY8B062D 8位单片机数据手册免费下载。
发表于 03-10 14:28 •
63次
阅读
如何快速排查IO异常输出问题
在嵌入式开发过程中,IO 操作是不可避免的,很多时候 IO 操作很正常,但有些时候可能因为某些原因导....
strongerHuang 发表于 03-09 17:55 •
822次
阅读
大资源MCU PY32F030的功能及其参数一览
PY32F030 系列微控制器采用高性能的 32 位 ARM® Cortex®-M0+内核,宽电压工....
发表于 03-09 16:47 •
24次
阅读
单片机学习:P3口的相关结构和功能介绍
之前的文章有分享过P2口,P1口和P0口的相关结构和功能,这一期分享就来说一说P3口的相关结构和功能....
发表于 03-09 14:18 •
69次
阅读
8位单片机九齐NY8A054E的产品概述
NY8A054E是以EPROM作为存储器的 8 位单片机,专为多组PWM的应用而设计。例如灯控,遥控....
发表于 03-08 16:20 •
50次
阅读
单片机IO口结构,P1P2口相关内容讲解
单片机在输入功能的时候除了读引脚之外,还有一个功能叫做读锁存器,先使读锁存器信号有效,内部总线是1的....
发表于 03-08 15:32 •
94次
阅读
|