计算机的数据交换有两种方式,分别是串行通信和并行通信。
并行通信:我们以8位(一个字节)的数据为例,在并行通信下,8位数据是同时传输的,同时发送,同时接受。所以通信的双方需要一个公共的时钟信号。并行传输速度快,效率高。但是传输需要的数据线多,传输距离近。
串行通信:仍然以8位的数据为例,每一位数据都是分时发送的,接收方也是一位一位的接受。串行通信只需要一根数据线就可以,成本低。适用于大规模和远距离的数据传输。
异步传输模式:每个传输的字符都用起始位和终止位包装起来,在字符间允许有长短不一的间隙。
同步传输模式:一个数据块包含着许多连续的字符,在字符之间没有空闲。同步传输可以方便的实现某一通信协议要求的格式。
波特率:在这里定义为串行通信每秒钟传送的“位”的个数。即n波特 = n b/s。在RS-232C标准中,串行通信的波特率规定如下:600,1200,2400,4800,9600等。
串行口的波特率计算:
在方式0下,波特率固定为:F/12 (F为晶振频率)
方式2下,波特率固定为:F/32或者F/64 (取决于PCON寄存器的SMOD位,若SMOD = 1,则是F/32;否则为F/64)。
方式1和方式3:采用了T1定时器的溢出率作为波特率的发生器,因此计算公式为:
K*F/[32*12*(2^n - X)]。
其中若SMOD = 1,则K = 2,否则K = 1,F为晶振频率,n为定时器的位数(即定时器处于哪种工作模式下),X是定时器填充的初值。
在串行通信中要求通信双方拥有一致的波特率,但是有时候我们无法精确的达到那个波特率,此时我们需要考量在SMOD = 1和SMOD = 0这两种情况下哪一个所产生的相对误差较小,我们就去选用哪一个。
相对误差 = (实际值 - 理论值 ) / 理论值 * 100%
关键字:单片机 串行通信
引用地址:
8051单片机的串行通信
推荐阅读最新更新时间:2024-11-13 07:59
51单片机总线与非总线的程序对比
简介:三总线简称ADC,这总是让我想起ADC的芯片,A是地址总线,D是数据总线,C是控制总线,是控制片外ROM、RAM和I/O的。 #include #include #define uchar unsigned char #define uint unsigned int uchar code table = The distance is ; uchar code table1 = 00.0cm ; sbit shuru=P1^0; sbit yidianling=P1^0; sbit yidianyi=P1^3;//延时 void delay(uint z) { uint x,y;
[单片机]
介绍几种单片机打印调试信息的方法
单片机作为一种嵌入式系统,通常需要在开发过程中进行调试和输出调试信息,以便开发者能够及时发现问题并进行解决。本文将介绍几种常用的单片机打印调试信息的方法。 1. 串口输出 串口输出是最常用的单片机打印调试信息的方法。单片机通过串口发送数据到计算机,然后在计算机上进行接收和显示。需要注意的是,单片机和计算机之间需要使用串口线进行连接,同时还需要设置波特率、数据位、停止位等参数。 在单片机的程序中,可以使用printf函数将需要输出的调试信息发送到串口。例如,下面的代码片段可以将一个整数值输出到串口: ```c #include stdio.h #include string.h int main() { int num =
[单片机]
提供远程更新,ST推出全新网联汽车MCU
大容量片上存储器,支持ECU软件安全OTA更新,便于车企简化车辆维护步骤,向客户推广更多产品服务 千兆和百兆以太网端口驱动高速车载网络 完全兼容EVITA的硬件安全模块保障网联汽车和乘客的安全 横跨多重电子应用领域的全球领先的半导体供应商意法半导体 推出最新的高性能多接口多核汽车微控制器,让网联汽车变得更安全,应用开发更灵活,为获得最新的性能升级提供保障。 随着车辆动力总成、车身、底盘和信息娱乐系统等关键功能日益软件化,通过空中下载技术(OTA)安全地提供修复补丁、可选包等更新程序,汽车厂商可以提高成本效益,为用户提供更多便利。意法半导体最新的Chorus汽车微控制器拥有最先进的安全技术和充裕的片上代码存储容量
[汽车电子]
单片机学习笔记————单片机开发产品流程
一、明确任务 分析和了解项目的总体要求,并综合考虑系统使用环境、可靠性要求、可维护性及产品的成本等因素,制定出可行的性能指标。 二、划分软硬件功能 单片机系统由软件和硬件两部分组成。在应用系统中,有些功能既可由硬件来实现,也可以用软件来完成。硬件的使用可以提高系统的实时性和可靠性;使用软件实现,可以降低系统成本,简化硬件结构。因此在总体考虑时,必须综合分析以上因素,合理地制定硬件和软件任务的比例。 三、确定希望使用的单片机及其他关键部件 根据硬件设计任务,选择能够满足系统需求并且性价比高的单片机及其他关键器件,如A/D、D/A转换器、传感器、放大器等,这些器件需要满足系统精度、速度以及可靠性等方面的要求。
[单片机]
STM8系列单片机复用引脚烧写程序注意事项
最近一个项目烧写程序时,烧写成功测试的时候,与程序的功能对不上。找原因折腾半天才搞明白,程序中有用到引脚复用功能。而我在调试的时候没有进行配置,所以导致实现不了功能。 这个配置对所有STM8系列的单片机都适用,具体配置如下。 配置芯片的复用功能,用到st-visual-program工具。 配置完成后就可以烧写程序到单片机。 注意事项: 配置芯片复用功能引脚和烧写程序的用到ST-LINK下载器,需要注意的地方是有的ST-LINK的每个引脚和JTAG下载电路的引脚要对应上,因为公司请购的ST-LINK有的与原理图上JTAG下载模块SIP1的引脚根本没对应上,SWIN和GND引脚是反的(请核对原理图和ST-LINK丝印上的引脚
[单片机]
μC/OS-II 移植笔记 1(FreeScale 68HCS12 核单片机)
C/OS-II 移植笔记 1(移植到FreeScale 68HCS12 核单片机,Small Memory Model) 最近闲暇下来,花了些时间研究了如何将 C/OS-II 移植到 FreeScale 68HCS12 内核的单片机。其实这个工作前年做过一次,当时是在网上找的相近的移植代码(68HC11核,Bank Memory Model,METROWERKS 编译器)自己做了些修改,内核已经跑起来了,但是在跑串口测试程序(ESBB书上的那个串口模块)时,程序运行一段时间就会跑飞。当时调试了许久也没有找到问题。这次就是接着上次的工作继续深入的往下做,消除错误。其实前年调试时就已经隐约的想到了错误可能的地方,只是当年对 68HC
[单片机]
pic单片机调试IIC
1、ADC采样 如果采用DMA,最多只能设置16个通道,多于16个通道时,用中断,在中断中切换通道 2、I2C 采用软件模拟I2C时, IIC总线有个特点就是开漏输出,这是总线竞争的需要,如果要做到开漏输出,有些IO口本来有这样的功能,如果用这样的IO口去仿真就比较方便。但如果IO口没有开漏输出功能,那就只能在输入和输出之间切换。所以还是比较烦的。当在需要输出低电平的时候将IO口设置成输出并输出0,输出高电平时将IO口设置成输入(高阻状态),让外部上拉电阻将电平拉高。
[单片机]
51单片机最小系统的制作
因准备电子设计竞赛的需要重新制作了一套51单片机最小系统,现给出电路图和实物图供大家参考。 系统电路图如下,包括系统电源部分、89S52最小电路、ISP在线下载部分。实物与电路图稍有不同,仅供参考,有问题可在下面留言。 51单片机最小系统实物图: ISP下载线实物图:
[单片机]