C51单片机串口工作的四种方式总结

发布者:清晨微风最新更新时间:2021-10-19 来源: eefocus关键字:C51单片机  四种方式 手机看文章 扫描二维码
随时随地手机看文章

方式0:同步移位寄存器输入输出方式

1. 利用移位寄存器实现串行/并行的转换(功能)

2. 波特率:fosc/12

3. RXD(P3.0)----用于串行数据的输入和输出 TXD(P3.1)----充当输出的移位时钟

4. 数据大小:8位

5. 方式0发送:

○ 串口接口移位寄存器(74HC164),主要用于扩展并行输出口

○ 用单片机本身的3根线换取了8根线的作用

串行接口将8位数据从SBUF中取出

○ TXD引脚上输出同步移位脉冲

○ 以fosc/12的波特率从RXD端串行输出到移位寄存器

○ 发完后TI置1,向CPU请求中断


6.在这里插入图片描述


7.在这里插入图片描述


8. 方式0接收:

○ 串口接口移位寄存器(74HC165),主要用于扩展并行输入口

○ CE非为移位脉冲使能端,0有效

○ SH/LD非为控制端:SH/LD非为低电平时:并行进开,串行出关

                                       SH/LD非为高电平时:并行入关,串行出开

○ CPU产生一个正脉冲,串行接口开始接收数据

○ RXD作为串行数据的输入端

○ TXD作为串行同步移位脉冲输出端

○ CPU以fosc/12的波特率采样RXD引脚的串行数据

○ 当接受到第8位数据时,将数据统一装入SBUF,并将RI置1,向CPU请求中断


9.在这里插入图片描述


10.在这里插入图片描述


方式1:用于串行发送/接收的10位通用异步接口

1. TXD用于发送数据、RXD用于接收数据

2. 帧格式:1位起始位(0)+8位数据位+1位停止位(1)

3. 波特率可调

4. 方式1发送:

○ 执行向SBUF中写入数据的指令时启动发送

○ 一个TX时钟周期产生一个移位脉冲

○ 数据的发送就按照TX时钟脉冲一个一个在TXD端发送

○ 8位数据发送完后,中断标志位TI置1,向CPU请求中断

○ 通过置TXD为1,再送出一个停止位(1)


5.在这里插入图片描述


6. 方式1接收:

○ SCON寄存器中的REN=1,表示允许接收

○ 数据从RXD端口输入

○ 当检测到R XD上的从1跳变到0时(也即起始位)启动位检测器

○ 位检测器连续在7、8、9等份对RXD进行采样以确认是真正的起始位

○ 开始正式接收数据,且每一位数据都进行3次的连续采样以确保正确

○ 满足RI=0;SM2=0或者收到停止位1;以上两个条件时

§ RI=0表示SBUF中的数据以及被取走了,有了一个向SBUF中存数据的机会;SM2=0则表示,本机处于通信状态,对方发过来的数据这边都会如数接收;停止位为1则表示,这是一个地址数据,同样也需要把接收到的数据存入到SBUF中)

○ 可将接收到的数据装入SBUF,停止位送入RB8,并将中断标志位RI置1

  1. 在这里插入图片描述

方式2和方式3:11位异步通信接口(接/发过程与方式1类似)

1. TXD用于发送数据、RXD用于接收数据

2. 帧格式:1位起始位(0)+8位数据位+1位可编程的第9位数据位+1位停止位(1)

3. 发送时:第9位可由TB8编程为0或者1;或将奇偶校验位塞入TB8进而实现奇偶校验

4. 接收时:第9位数据进入RB8

5. 波特率:方式2  B=(2的SMOD次方/64)*fosc(由晶振频率决定)

                  方式3  B=(2的SMOD次方/32)*T1溢出率(由T1进行设置)

波特率也是方式2/方式3之间最大的差别,在进行编程时差别亦在于此。

6. 方式2和方式3发送:

○ 执行数据写入SBUF时启动发送

○ 一个TX时钟周期产生一个移位脉冲

○ 第9位数据来自于SCON中的TB8

○ 发送完毕后,中断标志位TI置1

○ 通过置1TXD再发送一个停止位1


7.

  1. 在这里插入图片描述


8. 方式2和方式3接收:(同方式1)

○ SCON寄存器中的REN=1,表示允许接收

○ 数据从RXD端口输入

○ 当检测RXD上的从1跳变到0时(也即起始位)启动位检测器

○ 位检测器连续在7、8、9等份对RXD进行采样以确认是真正的起始位

○ 开始正式接收数据,且每一位数据都进行3次的连续采样以确保正确

○ 接收完9位数据之后,若RI=0;SM2=0或第9位数据为1时

○ 前8位数据可以送入SBUF中,第9位数据送入RB8中,并置中断标志位为1

9.在这里插入图片描述

关键字:C51单片机  四种方式 引用地址:C51单片机串口工作的四种方式总结

上一篇:51单片机的串口通信(一)
下一篇:如何驱动51单片机串口(uart通信)

推荐阅读最新更新时间:2024-11-09 18:13

分析C51单片机的一些误区和注意事项
简介:常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。 1) C忌讳绝对定位。常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。比如unsigned char data x;后,x的地址就是&x, 你只要查看这个参数,就可以在程序中知道具体的地址了。所以俺一看见要使用绝对定位的人,第一印象就是:这大概是个初学者。 2) 设
[单片机]
80C51单片机串行通信
一、串行通信基础知识 异步通信和同步通信计算机的数据传输共有两种方式:并行数据传输和串行数据传输。并行数据传输的特点:是各数据位同时传输,传输速度快,效率高。但并行数据传输时有多少数据位就需要有多少根数据线,因此,传送成本高。串行数据传输的特点:是数据传输按位顺序进行,只需一根传输线即可完成,成本低但速度慢,适用于远距离数据传输。常用的Internet网采用的就是串行数据传输。 串行通信又分为异步传输(Asynchronous Transmission)和同步传输(Synchronous Transmission)两种方式,一般称为异步串行通信和同步串行通信。 异步串行通信异步串行通信是以字符为单位的间歇传输形式。传送
[单片机]
AT89C51单片机扩展高速串行同步移位输出口的方法
AT89C51(与MCS-51兼容)单片机的串行口在方式0工作状态下,使用移位寄存器芯片可以扩展多个8位并行I/O口。在LED点阵显示屏应用系统中,一般都采用数据同步移位输出方式,并使用移位寄存器芯片(如74LS595)扩展并行I/O口驱动LED点阵显示。LED 点阵显示采用扫描方式,为不产生闪烁感,每秒需要传送50屏点阵显示数据,因此有大量的数据要通过同步移位的方式送到显示驱动电路部分,这就要求单片机能够快速地输出数据。AT89C51单片机的串行口在方式0工作状态下,数据以fosc/12的波特率输出,1个字节数据写入SBUF后,需检查中断标志位 TI是否为“1”并清“0”TI或延时几个机器周期后才能继续写入了一个数据,输出速度慢
[单片机]
AT89<font color='red'>C51单片机</font>扩展高速串行同步移位输出口的方法
大神教你快速上手:标准80C51单片机模拟I2C总线的主机程序
I2C总线协议程序 在做程序是我在网上找的是周立功的程序,感觉还不错顺便转载;在使用的过程中一定要注意时序、时间的问题。 “i2c.h文件” //I2C总线综合发送函数,向从机发送多个字节的数据 I2C读写EEPROM流程图 bit I2C_Puts( unsigned char SlaveAddr, unsigned int SubAddr, unsigned char SubMod, char *dat, unsigned int Size ); //I2C总线综合接收函数,从从机接收多个字节的数据 bit I2C_Gets ( unsigned char SlaveAddr, unsigned int SubAddr
[单片机]
大神教你快速上手:标准80<font color='red'>C51单片机</font>模拟I2C总线的主机程序
c51单片机中断详解--适合初学者
工程图 第一题 **每次亮一个灯的流水灯,定义P1为led1。 外部中断0允许中断:EX0=1;下降沿触发:IT0=1;总开关:EA=1; 中断要执行的是P0引脚的4个二极管闪六次。 其实这里还有个想说的是,IE在中断请求的时候,会置位为1,然后CPU同意并执行中断程序后,IE自动清零。为什么说这个,这个可以在以后的一些情况,作为中断条件。 第二题 每次亮一个灯的流水灯和第一题的一样; 中断0下降沿触发也和第二题一样; 中断0程序是:P1引脚每次亮两个二极管的流水灯 讨论一下:每次亮两个二极管,如果低电平亮,那就要11111100B→11110011B。 个人觉得在中断中使用while造成的后果是很致命的,
[单片机]
<font color='red'>c51单片机</font>中断详解--适合初学者
89C51单片机的结构框图及原理解析
89C51单片机结构框图 1、一个8位 的微处理器CPU。 2、片内数据存储器(RAM128B/256B):用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等。 3、片内4kB程序存储器Flash ROM(4KB):用以存放程序、一些原始数据和表格。 4、四个8位并行I/O(输入/输出)接口 P0~P3:每个口可以用作输入,也可以用作输出。 5、两个或三个定时/计数器: 每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果 实现计算机控制 6、一个全双工UART的串行I/O口:可实现单片机与单片机或其它微机之间串行通信。 7、片内振荡器和时钟产生电路
[单片机]
89<font color='red'>C51单片机</font>的结构框图及原理解析
单片机汇编 设晶振频率为11.0592M,串口工作方式1
单片机汇编 设晶振频率为11.0592M,串口工作方式1,波特率为4800bit/s(倍频后) 1.设晶振频率为11.0592M,串口工作方式1,波特率为4800bit/s(倍频后),T1采用方式2,编写采用代码和校验的方式发送16个字节(不需要联络信号)的程序。 ORG 0000H MOV R0,#40H ; 初始化16个字节的数据区,该部分可以不要 MOV R7,#10H MOV 60H,#10H ALOOP0: MOV @R0,60H INC R0 INC 60H JNC R7,ALOOP0 ASTART
[单片机]
89C51单片机的中断基础
INT0表示interrupt 0即外部中断0 INT1表示interrupt 1即外部中断1 这是对应的锁存器控制,因为包含在头文件中所以不需要单独定义。 INT0位于TCON锁存器中的最后一位 EX0位于IE锁存器的最后一位 ET0位于IE锁存器的倒数第二位 #include reg52.h sbit led=P3^0; void main() { IT0=1; //设置外部中断0的触发方式为下降沿 EX0=1; //开启外部中断0 //中断的设置,首先设置中断的触发方式,再设置开启终端,最后开启总中断。 IT1=1; //设置外部中断1的触发方式为下降沿
[单片机]
89<font color='red'>C51单片机</font>的中断基础
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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