uart接口_基于51单片机的UART串口通信

发布者:陈熙琼最新更新时间:2021-11-22 来源: eefocus关键字:uart接口  51单片机  UART  串口通信 手机看文章 扫描二维码
随时随地手机看文章

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。


UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通信,如汽车音响与外接AP之间的通信,与PC机通信包括与监控调试器和其它器件,如EEPROM通信。

10408ff8031650c6ab9446e1f9274bb0.png

计算机内部采用并行数据,不能直接把数据发到Modem,必须经过UART整理才能进行异步传输,其过程为:CPU先把准备写入串行设备的数据放到UART的寄存器(临时内存块)中,再通过FIFO(First Input First Output,先入先出队列)传送到串行设备,若是没有FIFO,信息将变得杂乱无章,不可能传送到Modem。它是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。

5706b2fab2c8a006af6babd7571dfd79.png

作为接口的一部分,UART还提供以下功能:将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字节,供计算机内部并行数据的器件使用。在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。在输出数据流中加入启停标记,并从接收数据流中删除启停标记。处理由键盘或鼠标发出的中断信号(键盘和鼠标也是串行设备)。

3819041304c856baf3ab51b938265850.png

可以处理计算机与外部串行设备的同步管理问题。有一些比较高档的UART还提供输入输出数据的缓冲区,比较新的UART是16550,它可以在计算机需要处理数据前在其缓冲区内存储16字节数据,而通常的UART是8250。如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。接下来我们一起了解一下基于51单片机的UART串口通信

6caf2eb44ef996799eaeccfda40ffe8c.png

51单片机的UART串行通信是基于其串行口的可编程硬件结构,只要用正确的程序代码通过初始化串行口对应寄存器的形式将其串行硬件结构初始化,再编写符合此串行口通信的程序代码便能够实现串行通信,其硬件结构决定了编程机制( 当然还要靠51芯片内CPU等机制 )。


此结构具有UART( 通用异步收发器 )的全部功能,能同时进行数据的发送和接收,也可作为同步移位寄存器使用。此结构集成于单片机内部。


关键字:uart接口  51单片机  UART  串口通信 引用地址:uart接口_基于51单片机的UART串口通信

上一篇:51单片机累计中断次数使LED灯闪烁
下一篇:C51键盘检测相关问题总结

推荐阅读最新更新时间:2024-11-04 19:21

msp430单片机之串口通信模块
串口通信 单片机的串口通信模块在单片机中起到重要作用,通过串口它可以与PC机或者其他模块进行通信,传输数据或者控制命令,当然在传输数据的时候我们必须有一定的协议,让通信双方能够知道得到的数据是什么,所以我们必须设置一种格式,让通信双方能够得到正确的数据信息,首先我们从整体上来看看这个模块的结构,下图是msp430单片机中的串口模块: 从上图中我们可以看出串口模块可以分为4部分:控制模块,接收模块,发送模块,波特率控制模块 这些模块有相应的寄存器,我们的主要任务就是对这些寄存器进行相关的配置,接下来就详细介绍这些寄存器的作用。 1.控制寄存器UXCTL (X为数字,不同型号的产品包含的串口模块也不同,有些只有一
[单片机]
msp430单片机之<font color='red'>串口通信</font>模块
51单片机C中.c文件和.h文件
1)h文件作用 1 方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明; 2 提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h)。 2)h文件里应该有什么 常量,结构,类型定义,函数,变量申明。 3)h文件不应该有什么 变量定义, 函数定义。 4)extern问题 对于变量需要extern; 对于函数不需要因为函数的缺省状态是extern的.如果一个函数要改变为只在文件内可见,加static。 5)include包含问题 虽然申明和类型定义可以重复,不过推荐使用条件编译。 #ifndef _FILENAME_H, #define _F
[单片机]
浮点数压栈--MCS-51单片机实用子程序
标号: FPUS 功能:浮点数压栈 入口条件:操作数在 中。 出口信息:操作数压入栈顶。 影响资源:A、R2、R3 堆栈需求: 5字节 FPUS: POP ACC ;将返回地址保存在R2R3中 MOV R2,A POP ACC MOV R3,A MOV A,@R0 ;将操作数压入堆栈 PUSH ACC INC R0 MOV A,@R0 PUSH ACC INC R0 MOV A,@R0 PUSH ACC DEC R0 DEC R0 MOV A,R3 ;将返回地址压入堆栈 PUSH ACC MOV A,R2 PUSH ACC RET ;返回主程序
[单片机]
keil对51单片机变量和函数的编译处理
(1)初始值不是0的全局变量 在程序调到main()函数执行前,除了要进行内存清零、初始化堆栈外,还需要将全局变量的初始值加载到RAM的指定区域(编译过程中为全局变量分配的空间)。 (2)未初始化的局部变量 实际的编译后的反汇编程序也看不到这些局部变量的初始化。这些局部变量占据哪些还未被使用的内存或者其他函数中局部变量释放的空间。倘若是后者,其他函数局部变量释放的空间并没有清零,所以使用这些释放空间的局部变量就一开始被赋值了,这是需要程序员小心的。 void function() { unsigned char k,j; //k,j都未被初始化if(k j) ; else{ } } (3)函数的优化 实验代码 v
[单片机]
自制51单片机常用头文件(中断)
#ifndef __CONFIG_H__ #define __CONFIG_H__ /********************************/ /* 以下为系统配置 */ /********************************/ #include regx51.h #include string.h #include intrins.h /***************************************************** 函 数 名:void Clearmen(void) 功 能:系统初始化 说 明:对系统引脚变量及中断进行初始化 入口参数:无 返 回
[单片机]
51单片机」RS232串口通信代码分析
想来想去不知道要怎么样把232串口通信说清楚,想想还是直接把代码分析一遍吧... 重点是“常用波特率与定时器1的参数关系”这张表格!波特率的设置很重要! 一、串口初始化 void usart_init() { SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1 TMOD = 0x20; //定时器工作方式2 PCON = 0x00; TH1 = 0xFD; //波特率9600、数据位8、停止位1。效验位无 (11.0592M) TL1 = 0x
[单片机]
「<font color='red'>51单片机</font>」RS232<font color='red'>串口通信</font>代码分析
51单片机IO口输入输出方式
传统51单片机IO接口只可以作为标准双向IO接口,如果用其来驱动LED只能用灌电流的方式或是用三极管外扩驱动电路。 灌电流方式:LED正极接VCC,负极接IO口。IO为高电平是LED两极电平相同,没有电流,LED熄灭;IO为低电平时,电流从VCC流入IO,LED点亮。但是当你吧LED正极接在IO接口,负极接GND时,将IO接口置于高电平,LED会亮,但因为IO接口上拉能力不足而使亮度不理想,可以用下面介绍的方式解决这个问题。 推挽工作方式:LED正负极分别接在两个IO口上,然后设置正极IO接口为推挽输出,负极IO接口为标准双向灌电流输入。推挽方式具有强上拉能力,可以实现高电平驱动LED。 IO口的四种使用方法
[单片机]
<font color='red'>51单片机</font>IO口输入输出方式
基于89C2051单片机设计的电冰箱保护节电器原理
本电冰箱保护节电器具有低保护、过压功率控制等功能,经过试用,稳定可靠。本控制器稍加改动,还可用于其他家电控制。 图1为控制器的电原理图。运放LM324组成的电压比较电路中三路用于检测电源电压低于180V,高于230V、240V,并送单片机处理。 V4C组成过零检测电路,在V4C的第{8}脚获得的方波如图2所示。由图2可知,V4C的{8}脚输出方波的上升沿和下降沿处为交流过零点,该信号送单片机P3.7口处理。 U7等组成可控硅触发电路。U7为MOC3041,内部有过零检测和相关电路。这里采用过零触发,主要是为了减少谐波干扰。R25、C5是可控硅保护电路。R24是可控硅触发电阻,其值由公式R=220(根号2)/I(A)Ω决
[单片机]
基于89C20<font color='red'>51单片机</font>设计的电冰箱保护节电器原理
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved