当前位置:首页 > 嵌入式 > 嵌入式分享
[导读]51单片机是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了许多品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。

51单片机是指由美国INTEL公司生产的一系列单片机的总称,这一系列单片机包括了许多品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。

MCS-51单片机是一种集成的电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。MCS-51单片机的内核是8051CPU,CPU的内部集成有运算器和控制器,运算器完成运算操作(包括数据运算、逻辑运算等),控制器完成取指令、对指令译码以及执行指令。

51单片机串行通信的设计原理主要包括以下几个方面:

串行接口设计:51单片机内部具有一个全双工串行接口,可以同时进行数据的发送和接收。在设计时,需要选择合适的串行接口模式,并根据需要配置相应的寄存器。

波特率设置:串行通信的速率由波特率决定。在设计时,需要根据通信速率的要求,选择合适的波特率。在51单片机中,可以通过配置波特率选择位来设置波特率。

数据帧格式设计:在串行通信中,需要设计合适的数据帧格式,包括起始位、数据位、校验位和停止位等。在设计时,需要根据通信协议的要求,选择合适的数据帧格式。

错误检测和处理:在串行通信中,可能会出现各种错误,如数据传输错误、帧格式错误等。在设计时,需要考虑如何进行错误检测和处理,以确保通信的稳定性和可靠性。

通信协议设计:在串行通信中,需要设计合适的通信协议,包括数据传输格式、数据传输速率、数据校验方式等。在设计时,需要根据实际应用场景的要求,选择合适的通信协议。

51系列单片机的通用异步收发器内部结构如上图所示,UART与单片机内部8位数据总线相连,SBUF是收发缓冲器,由接收缓冲器和发送缓冲器两部分构成,二者具有同一地址(99H),但他们之间是相互独立的,即发送缓冲器只能写入而不能读出数据,而接收缓冲器则只能读出而不能写入数据。实际使用时通过不同的读缓冲器和写缓冲器指令来区分对哪个缓冲器操作。所以51系列单片机的串行数据通信的启动方法很简单,只要将数据写入发送缓冲器就能启动数据的发送,而在接收数据时,只要读取保存在接收缓冲器中的内容即可。单片机会按照读或写的方式不同,自动分配要访问的目标寄存器是发送SBUF还是接收SBUF。

UART工作时,定时器用于产生通信需要的时钟,控制寄存器用于对串行口的工作状态进行相应的监控和设置。当数据写入发送SBUF后,数据在发送控制器的控制下,按位从TXD引脚移出;外部数据在接收控制器的控制下,从RXD引脚移入移位寄存器并对串行数据进行恢复,恢复后的数据保存至接收SBUF中供软件读取。

当接收SBUF中的数据没有被软件读取时,移位寄存器还可以暂时接收并保存下一个新数据,从而避免发生数据溢出,这种结构也是串行口特有的接收双缓冲结构。发送器则没有类似的数据缓冲结构,因为在发送数据时单片机是主动的,不存在数据过载的问题。

51单片机串口通信相关的寄存器主要有SCON、SBUF、PCON、TMOD等。

1. SCON:这是串口控制寄存器,用来设定串行口的工作方式、接受/发送控制以及设置状态指示。

2. SBUF:这是串口缓冲寄存器,用于存储待发送的数据和接收到的数据。

3. PCON:这是电源控制寄存器,用于设置电源控制位。

4. TMOD:这是定时器模式寄存器,用于设定定时器的工作模式。

这些寄存器在串口通信中起着重要的作用,通过配置这些寄存器的值,可以实现对串口通信的控制和数据的传输。

程序举例:

/**

* @brief 串口初始化,9600bps@11.0592MHz

* @param 无

* @retval 无

*/

void Uart_Init(void) //9600bps@11.0592MHz

{

PCON &= 0x7F; //波特率不倍速

SCON = 0x50; //8位数据,可变波特率

TMOD &= 0x0F; //清除定时器1模式位(可有可无)

TMOD |= 0x20; //设定定时器1为8位自动重装方式(位或也是一样的)

TL1 = 0xFD; //设定定时初值

TH1 = 0xFD; //设定定时器重装值

TR1 = 1; //启动定时器1

ET1 = 0; //禁止定时器1中断

ES=1; //串口中断允许控制位

EA=1; //中断允许总控制位

//IE=0x90; //也可这样代替倒数的三个,分别是ET1=0;ES=1;EA=1;

}


声明:该篇文章为本站原创,未经授权不予转载,侵权必究。
换一批
延伸阅读

STM32与51单片机之间有什么差异呢?两者可以说是一场科技与性能的较量了。在科技飞速发展的今天,微控制器(MCU)已广泛应用于各类电子设备和系统中,发挥着举足轻重的作用。其中,STM32和51单片机作为两种常见的微控制...

关键字: STM32 51单片机 MCU

51单片机将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对51单片机的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 单片机 51单片机

串行通信是一种通信方式,数据在通信线上按位进行传输。每位数据占据固定的时间长度,使用少数几条通信线路就可以完成系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信。

关键字: 串行通信 UART

串行通信接口是一种数据传输方式,采用串行通信协议(Serial Communication Protocol)。它通过串行数据线(Serial Data Line)进行数据传输,通常使用标准的RS-232、RS-485或...

关键字: 串行通信 RS-232

串行通信是一种通信方式,其中数据按顺序一位一位地传输。与并行通信不同,串行通信在一条线路上传输数据,因此需要较少的数据线。串行通信主要用于长距离通信,因为它的功耗低、成本低、简单易实现。

关键字: 串行通信 波特率

传输方式不同:一个是并行一个是串行。效率不同:并行传输效率高,一次可传输多个数据;串行传输一次可传输一个数据。

关键字: 并行通信 串行通信 通信

在通信领域,并行通信和串行通信是两种常见的通信方式。它们在数据传输方式、传输速度、传输距离等方面存在明显的区别。本文将详细介绍并行通信和串行通信的区别,并分析各自的优缺点。

关键字: 通信领域 并行通信 串行通信

在嵌入式系统开发中,单片机是不可或缺的重要组成部分。其中,STM32单片机和51单片机是两种常见的单片机芯片。本文将对比分析这两种单片机的区别,并探讨STM32单片机的优势。

关键字: stm32单片 51单片机

同步传输通过某种时钟信号来控制数据的传输速率和保证接收端正确接收数据;异步传输则采用起始/停止位等标志来分离每个字符并进行传输。

关键字: 串行通信 时钟信号 异步传输

串行通信需要传输的数据通过调制器(Modulator)将数据转换为模拟信号,经过信号调制(Modulation)后在传输线上传输,接收端通过解调器(Demodulator)将信号解码还原成原始数据。

关键字: 串口 串行通信 并行通信
关闭