蓝桥杯基础技能09+10 PWM脉宽调制信号的发生与控制+串口通信的基本原理与应用

脉宽调制信号的基础知识:

占空比:电平在整个周期中所占的比例

利用定时器来改变占空比

利用stat变量来控制PWM的选择状态

串行通信

1.概述

•微控制器与外部设备的数据通信,根据连接结构传送方式的不同,可以分为两种:并行通信串行通信

        •并行通信:指数据的各位同时发送或接收,每个数据位使用一条导线。

        •串行通信:指数据一位接一位顺序发送或接收。

•串行通信有SPI、IIC、UART等多种,最常见最通用的是指UART,大多数情况下,串口通信指的就是UART

•串行通信的制式有:单工、半双工、全双工三种。

RS485总线是半双工的通信制式。

•串行通信的主要方式有两种:同步异步

        •同步串行通信:需要使用同一个时钟,以数据块为单位传送数据。

        •异步串行通信:每个设备都有自己的时钟信号,通信中双方的波特率要保持一致,以字符为单位进行数据帧传送,一次传送一个帧

2.波特率的计算

•波特率:串口每秒钟传输的位数

•在51单片机的串口通信中,模式1和模式3的波特率是可变的,取决于定时器1的溢出率,也就是说定时器1每溢出一次,串口就发送一次数据。

•通常使用定时器1的工作模式2(8位自动重装)来产生波特率,TL1作为脉冲计数寄存器,TH1作为自动重装寄存器,当计数到最大值溢出时,TH1的值会自动装到TL1中。

•波特率的计算公式:

 

 SMOD=0时:

  SMOD=1时:

12M(误差小可接受)晶振或11.0592M(无误差)晶振的情况下,要产生9600BPS的波特率,

SMOD=0时,参数为0xfdSMOD=1时,参数为0xfa。 

3.UART口的数据发送与接收

•串行口中有两个缓冲寄存器SBUF,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的。它们都是字节寻址的寄存器,字节地址均为99H

•这个重叠的地址靠读/写指令区分

        •串行发送时,CPUSBUF写入数据,此时99H表示发送缓存SBUF

        •串行接收时,CPUSBUF读出数据,此时99H表示接收缓存SBUF

数据发送:把数据扔进SBUF后,内核会自动将数据发送出去,内容发生完成后TI标志位置1.

        •发送数据程序:SBUF = 数据/变量;如:SBUF = 0x58;

数据接收:内核从串口接收到一个完整的数据后,会将RI标志位置1,用户用SBUF直接读取即可。

        •数据接收程序:变量 = SBUF;如:dat = SBUF;

注意:如果利用中断来查询发送或接收,要判断是数据发送完毕产生的中断还是数据被完整接收产生的中断

4.串口控制寄存器SCON

 解释:

        •前三位,设定串口的工作模式,大多数情况下只用01

        •REN位是决定是否允许接收的,大多数情况下都为1

        •TB8和RB8是用于G8检验的,不用则置0

        •TI和RI是中断标志位,不需要操作。

异步8位UART并且允许接收:SCON = 0x50

•对于IAP15F2K61S2单片机,还要对辅助寄存器AUXR(0x8e)进行设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值