单片机学习记录(四)

第8章

1.在异步串行通信中,接收方是如何知道发送方开始发送数据的?

答:当接收方检测到RXD引脚上有负跳变时,即可知道发送方开始发送数据;

2.AT89S51单片机的串行口有几种工作方式?有几种帧格式?各种工作方式的波特率如何确定?

答:有四种工作方式:方式0、方式1、方式2、方式3;

有三种帧格式:方式2和方式3具有相同的帧格式,方式0的接收和发送都是fosc/12为固定波特率;

波特率:

方式0的波特率=fosc/12

方式1的波特率=2SMOD/32×定时器的T1的溢出率;

方式2的波特率=2SMOD/64×fosc;

方式3的波特率=2SMOD/32×定时器T1的溢出率;

3.假定串行口串行发送的字符格式为1个起始位、8个数据位、1个奇校验位、1个停止位,请画出传送字符"B"的帧格式。

答:首先B为48H,因此:

起始位:0

数据位:0100 0010 (发送时低位在前)

奇校验:1

停止位:1

那么就是:0 0 1 0 0 0 0 1 0 1 1

例如:

一帧共11位,传输了一个字符。

56kbps,就是每秒传送56000位。

56000 / 11 = 帧数,即字符数

扩展资料:

字符是可使用多种不同字符方案或代码页来表示的抽象实体。例如,Unicode UTF-16 编码将字符表示为 16 位整数序列,而 Unicode UTF-8 编码则将相同的字符表示为 8 位字节序列。微软的公共语言运行库使用 Unicode UTF-16(Unicode 转换格式,16 位编码形式)表示字符。

4.为什么定时器/计数器T1用作串行口波特率发生器时,常采用方式2?若已知时钟频率、串行通信的波特率,如何计算装入T1的初值?

答:因为在T1在方式2下,初值可自动重装,这就避免了重装参数的指令带来的时间误差;

设定时器/计数器T1在方式2下初值为X,计算初值X可采用如下公式:

波特率=(2SMOD32)×(fosc/12)/(256-X)

5.某AT89S51单片机串行口,传送数据的帧格式由1个起始位(0)、7个数据位、1个偶校验和1个停止位(1)组成。当该串行口每分钟传送1800个字符时,计算出它的波特率。

答:串行口每秒传送字符数为:1800/60=30bit/s

所以波特率=30bit/s×10位=300bit/s

相关推荐
飞凌嵌入式11 分钟前
千次静电放电试炼,守住飞凌嵌入式硬件可靠底线
嵌入式硬件
蹊黎9 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
视觉小萌新10 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
yyyang8813 小时前
蓝牙系统整体架构详解
学习·信息与通信
无敌贵点大王13 小时前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何13 小时前
二进制和十六进制
stm32·单片机
Linux-lucky13 小时前
46-Linux学习之旅之LVS负载均衡与keepalived高可用
linux·运维·学习·ubuntu·负载均衡·lvs
国科安芯14 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
金色光环15 小时前
【DSP学习】C2000_ADC中断_笔记
笔记·学习
Дерек的学习记录15 小时前
Unreal Engine 5:第三人称运动系统和人物动画
开发语言·学习·ue5