51单片机内部结构由哪些基本部件组成?各有什么功能?

一、 51单片机串行口工作原理
MCS-51系列单片机片内有一个串行I/O端口,通过引脚RXD(P3.0)和TXD(P3.1)可与外设电路进行全双工的串行异步通信 。
1.串行端口的基本特点
8031单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同应用场合的需要 。其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;方式1多用于双机之间或与外设电路的通信;方式2,3除有方式l的功能外,还可用作多机通信,以构成分布式多微机系统 。
串行端口有两个控制寄存器,用来设置工作方式、发送或接收的状态、特征位、数据传送的波特率(每秒传送的位数)以及作为中断标志等 。
串行端口有一个数据寄存器SBUF(在特殊功能寄存器中的字节地址为99H),该寄存器为发送和接收所共同 。发送时,只写不读;接收时,只读不写 。在一定条件下,向阳UF写入数据就启动了发送过程;读SBUf就启动了接收过程 。
串行通信的波特率可以程控设定 。在不同工作方式中,由时钟振荡频率的分频值或由定时器Tl的定时溢出时间确定,使用十分方便灵活 。
2.串行端口的工作方式
①方式0
8位移位寄存器输入/输出方式 。多用于外接移位寄存器以扩展I/O端口 。波特率固定为fosc/12 。其中,fosc为时钟频率 。
在方式0中,串行端口作为输出时,只要向串行缓冲器SBUF写入一字节数据后,串行端口就把此8位数据以等的波特率,从RXD引脚逐位输出(从低位到高位);此时,TXD输出频率为fosc/12的同步移位脉冲 。数据发送前,仅管不使用中断,中断标志TI还必须清零,8位数据发送完后,TI自动置1 。如要再发送,必须用软件将TI清零 。
串行端口作为输入时,RXD为数据输入端,TXD仍为同步信号输出端,输出频率为fosc/12的同步移位脉冲,使外部数据逐位移入RxD 。当接收到8位数据(一帧)后,中断标志RI自动置 。如果再接收,必须用软件先将RI清零 。
串行方式0发送和接收的时序过程见下图 。

51单片机内部结构由哪些基本部件组成?各有什么功能?

文章插图
②方式1
10位异步通信方式 。其中,1个起始位(0),8个数据位(由低位到高位)和1个停止位(1) 。波特率由定时器T1的溢出率和SMOD位的状态确定 。
一条写SBUF指令就可启动数据发送过程 。在发送移位时钟(由波特率确定)的同步下,从TxD先送出起始位,然后是8位数据位,最后是停止位 。这样的一帧10位数据发送完后,中断标志TI置位 。
在允许接收的条件下(REN=1),当RXD出现由1到O的负跳变时,即被当成是串行发送来的一帧数据的起始位,从而启动一次接收过程 。当8位数据接收完,并检测到高电乎停止位后,即把接收到的8位数据装入SBUF,置位RI,一帧数据的接收过程就完成了 。
方式1的数据传送波特率可以编程设置,使用范围宽,其计算式为:
波特率=2SMOD/32×(定时器T1的溢出率)
其中,SMOD是控制寄存器PCON中的一位程控位,其取值有0和l两种状态 。显然,当SMOD=0时,波特率=1/32(定时器Tl溢出率),而当SMOD=1时,波特率=1/16(定时器T1溢出率) 。所谓定时器的溢出率,就是指定时器一秒钟内的溢出次数 。波特率的算法,以及要求一定波特率时定时器定时初值的求法,后面将详细讨论 。
串行方式1的发送和接收过程的时序见下图 。
51单片机内部结构由哪些基本部件组成?各有什么功能?

文章插图
③方式2,3
11位异步通信方式 。其中,1个起始位(0),8个数据位(由低位到高位),1个附加的第9位和1个停止住(1) 。方式2和方式3除波特率不同外,其它性能完全相同 。方式2,3的发送、接收时序见下图 。

推荐阅读