51单片机串行口的使用与串行通信

发布者:真瓷堂最新更新时间:2022-04-20 来源: eefocus关键字:51单片机  串行口  串行通信 手机看文章 扫描二维码
随时随地手机看文章

串行通信

俩个概念:

1、串行异步通信

双方按照各自约定好的时钟周期作为各自的时钟周期;原理上来说,双方各用各的时钟周期且约定相等,但是在实际的使用中由于各种因素的影响,会产生时钟偏差。这种方式为串行异步通信。

2、串行同步通信:

只有一方提供时钟周期信号,另一方只做接收,这样的化就只有一个时钟周期为基准。这样就会大大提高通信可靠性,这种方式为串行同步通信。


RS232接口标准:

用于短距离或带调制解调器的串行通信接口协议

在这里插入图片描述

1、RXD:接收数据

2、TXD:发送数据

3、GND:接地


采用负逻辑电平:

-15V~3V:逻辑1

+15V~+3V:逻辑0


串行口的使用:

串行口的结构:

在这里插入图片描述

1、发送 :数据总线将数据传输到发送寄存器SBUF中,通过发送控制器将数据逐位发送给TXD引脚,当一个字节发送完成后,触发TI中断。

2、接收 :RXD引脚实时监测电平变化,并输入到移位寄存器,当移位寄存器满足8位接收后,触发RI中断。


串行口相关寄存器:

PS:详见51单片机之特殊功能寄存器SFR篇

在这里插入图片描述
在这里插入图片描述

串行口的工作方式:

方式0:同步移位寄存器方式

在这里插入图片描述

通常用于外接移位寄存器用作扩展I/O口 ,波特率固定为一个机器周期,串行数据通过RXD输入输出,同步时钟通过TXD输出

发送:

在这里插入图片描述

接收:

在这里插入图片描述

利用方式0扩展并行I/O口:

1、当外接串入并出的移位寄存器时,就可以扩展并行输出口

2、当外接并入串出的移位寄存器时,就可以扩展并行输入口

在这里插入图片描述在这里插入图片描述

方式1:8位异步通信方式

在这里插入图片描述

传输一帧信息为10位:1位起始位(0),8位数据位,一位停止位(1)

发送:

在这里插入图片描述

接收:

在这里插入图片描述

此种方式下波特率是可变的,有关波特率的计算:

在这里插入图片描述

例:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关键字:51单片机  串行口  串行通信 引用地址:51单片机串行口的使用与串行通信

上一篇:51单片机并行I/O口工作原理
下一篇:51单片机之特殊功能寄存器SFR

推荐阅读最新更新时间:2024-11-07 11:34

51单片机UART通信[发送接收数字字母中文,控制LED亮灭]
1、发送什么就接收什么 /* 工程创建MCU选取,Atmel 89C55 单片机:STC12C5A60S2 晶振:12M 功能:串口的应用 波特率:4800 8 无 1 无 */ #include REG51.h // 可以使用通用的头文件 //串口中断初始化程序 void UART_init(void){ EA=1; //打开总中断【定时器,ADC,串口,比较,计数,外部】等中断类型 ES=1;//允许串口的中断 TMOD=0x20; // 定时器1 T/C1工作方式,用来产生串口工作频率 SCON=0x50; // 串口工作方式1 TH1=0xF3; // 定时器初始值高8位的设置,查表得频率 TL1=0xF3; //
[单片机]
<font color='red'>51单片机</font>UART通信[发送接收数字字母中文,控制LED亮灭]
51单片机驱动超声波测距模块C51程序
#include reg52.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //******************* 函数声明************************** void init_Total(); //总初始化 void init_T0(); //初始化定时器T0 void init_T1(); //初始化定时器T1 void init_inter0();//初始化外部中断1 void send_T(); void delay(uint z);//延时一段时间 void delay_
[单片机]
stc89C51单片机将mpu6050一些参数用1602显示
单片机源程序如下: #include REG52.H #include math.h //Keil library #include stdio.h //Keil library #include INTRINS.H #include lcd1602.h typedef unsigned short ushort; typedef unsigned int uint; //**************************************** #define DataPort P0 //LCD1602数据端口 sbit SCL=P2^1; //IIC
[单片机]
51单片机汇编语言实验(三)-----定时/计数器实验
一、实验目的:    学习定时/计数器的工作方式,掌握程序设计方法。 二、实验设备:    PC计算机一台,Dais-52PRO+实验系统一套。 三、实验内容:    1. 定时器实验    2. 计数器实验 四、 定时器实验    1、实验原理:    使用T0进行定时,编写程序,使P1.0控制的发光二极管L0每隔2秒交替点亮或熄灭。    2、实验步骤:   ① 将试验箱IO区的P1.0与LED区的L0按图下图连线;   ② 编写程序,经编译、链接无语法错误后装载到实验系统;   ③ 运行程序,观察发光二极管L0,应每隔2秒交替点亮或熄灭;   ④ 实验完毕后,应使用暂停命令中止程序的运行。    3、参考代码: //实验
[单片机]
<font color='red'>51单片机</font>汇编语言实验(三)-----定时/计数器实验
51单片机-1602液晶显示的时钟代码
基本功能:时钟显示,利用按键调时,分 #include reg52.h #define uint unsigned int #define uchar unsigned char sbit en=P3^4; sbit rs=P3^5; sbit rw=P3^6; sbit s2=P3^0; sbit s3=P3^1; sbit s4=P3^2; sbit s5=P3^3; uchar shi,fen,miao,num,num1=0,num2=0,num3=0,flag; void delay(uint z) { uint x,y; for(x=z;x 0;x--) for(y=11
[单片机]
基于智能通信控制器的串行通信系统的抗干扰设计
电力系统运行的安全与否与系统当时的运行状态有密切的关系,对于电力调度部门来说,如果能实时地全面掌握电力系统各部分的运行状态,进行远程监测,对保证系统的安全、稳定、经济运行无疑具有十分重要的意义。电力远程监测一般采用串行方式进行通信,保证数据的可靠传输是其最重要的技术指标之一。由于工业现场的恶劣环境以及配电系统的远距离传输,干扰是产生偶然性错误和影响整个系统可靠运行的主要原因。提高系统的抗干扰能力是电力远程监控的一个重要的研究方向。 系统概述 本系统是一个上下位机形式的工业配电测控系统,根据功能需要,下位机选用了控制功能比较强大的研华IPC-610工业控制计算机(IPC: Industrial Personal Computer
[工业控制]
C51单片机学习手记之1:一盏闪烁
最近开始学习C51单片机,可谓磕磕绊绊,因为本人比较笨笨啦...(听听Michael Jackson的《Heal The World》就坚持下来了),不知道对大家是否有用... 闲言碎语不要讲,下面我就来说说这迈出的第一步,我从2010年才接触到单片机,想想比别人晚了10多年,不过没关系,只要有心学习,从0-1很难,但从1到100、1000、...可能就没有那么麻烦了。主要要自学单片机原理、电子线路、汇编语言,C语言,如果你刚好学过,那就恭喜啦。 本文旨在介绍单片机入门的基础知识,为和我一样的新手提供一个交流的平台。仿真所使用单片机为 ATMEL公司的AT89C52,软件为PROTEUS和KEIL;只提供原理图和KEIL环境
[单片机]
C<font color='red'>51单片机</font>学习手记之1:一盏闪烁
51单片机定时器、串口、中断
MCS-51功能单元 一、定时器&计数器 数量:两个可编程的16位的定时器/计数器T0和T1;都是16位加法计数结构;分为高8位和低8位;TH0、TL0,TH1、TL1; 定时器/计数器T0、T1是80C51的中断源之一,当数据寄存器溢出,则向CPU申请中断。数据寄存器的复位状态为0。为使计数值或定时值满足自己的要求,需预先将数据寄存器赋值,称为初值设定,中断中也要重新设定初值。 定时器和计数器本质:都是计数器,对下降沿进行计数,计数达到溢出后置为标志位或者进入中断; 两者的区别: 定时器是对内部的机械周期脉冲进行计数,每个脉冲都是一个机械周期;定时时间=机器周期*(2^L-初值) (L=13,16,8) 计数器则是通过外
[单片机]
<font color='red'>51单片机</font>定时器、串口、中断

推荐帖子

各种软核处理器比较
一下内容摘自步步惊芯——软核处理器内部设计分析1、OR1200OR1200来自于OpenRISC项目,OpenRISC项目的目标是建立一个免费、开源的计算平台,这个计算平台提供一个带DSP功能的RISC处理器架构,提供一些基于该架构的RISC处理器,以及免费、开源的开发工具、库、操作系统、应用程序。OpenRISC包括OpenRISC1000和OpenRISC2000两个子项目,OR1200是OpenRISC1000项目的一个主要实现,最初发布于
白丁 FPGA/CPLD
谁给我一个可用的dm9000的16-bit模式的程序?
包括初始化和发送、接收3个部分谢谢了,我寄存器不知道有没有没设置对,芯片一直跑不起来,所以想看看正确的是怎么弄的,我的email是sherlock_lai@163.com谁给我一个可用的dm9000的16-bit模式的程序?谁知道啊发一份程序就给20分不知道解了没,您的问题具体我不太清楚,不过我们公司是DIVACOM在中国区域的总代理,多年来一直专注于做DM9000及DIVACOM全线产品,通过我们可以的到原厂的工程师做技术支持,当然,是免费提供的,我的联系方式您如果有需要的话可
amote 嵌入式系统
中断对SXM标志的影响
像下面的汇编:SETCSXMNOPLACC#8000h...如果在NOP指令时进入中断,中断退出前CLRCSXM,那后面LACC#8000h是不是当做正数来处理了?\0\0\0eeworldpostqq中断对SXM标志的影响
kane 微控制器 MCU
不能同时安装Keil C51和keil MDK吗?
我的电脑中安装了keilC51,现在想安装keilMDK,以便编辑stm32程序,今天安装后,原来的keilC51不见了,keilMDK又启动不了,仔细检查发现原来的keil运行程序被替换了,后来只好删除了keilMDK,重新安装了keilC51。请问这两个程序能不能同时安装在一台电脑中?该如何安装才能避免相互干扰?先谢谢大家!不能同时安装KeilC51和keilMDK吗?keil第四版可以和c51一起安装,个人实践过。第五版好像有些问题,没实际操作过。:time:可以,装
hujj stm32/stm8
51 ADPCM编解码
有谁做过51单片机的ADPCM编解码请指教51ADPCM编解码原帖由382583272于2013-3-1816:35发表有谁做过51单片机的ADPCM编解码请指教 没做过,不过感觉有意思。关注一下。ADPCM不知道是不是RAW格式的数据,也就是AD转换后的原始数据。你用AD采样出来,注意采样的位数,采样速度。得到的数据后存起来,不过数据量应该很大,然后通过DA用同样的位数和采样率放出来,看能不能基本还原到原来的效果。之前一个同学做过类似的毕设。没弄过
382583272 51单片机
汽车信息化:ITS成为新产业链形成导火索
ITS(IntelligentTransportSystem)是通过汽车和道路的IT化(装备信息系统),使道路交通的安全性和运输效率大幅提高的系统。有的汽车已经实现了通过车载电脑对引擎系统加以控制的汽车本身的信息化。  ITS是超越单体汽车本身、通过与外部交换信息而对汽车加以控制的系统。ITS对中国的意义重大。首先,通过ITS可以提高道路的有效利用,缓解堵塞,并有助于缓解由汽车带来的环境污染问题。另外还可以减少驾驶员的认知错误和操作上的失误,提高道路交通的安全性,使驾驶成为一件
frozenviolet 汽车电子
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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