单片微机原理P4:80C51串口与串行总线拓展

0. 串口通讯



0. 串口通讯的数据传输方式:单工(单向传输数据),半双工(非同时双向传输),全双工(同时,双向传输)

1. 根据通信方式的不同又分为同步通讯和异步通讯。

同步通讯:所有设备都使用同一个时钟,称为同步时钟。在数据传送时,以若干个数据字符(称为数据块)为单位进行传输,每个数据块包括同步字符、数据块和校验字符CRC。

异步通信是指在串行通信中,接收设备和发送设备有各自的时钟信号,异步通信以字符为单位进行数据传送,不过通信中这些时钟频率必须保持一致。

2. 波特率和比特率

波特率是每秒传输的信号量(单位波特B),比特率是每秒传输的信号量(单位bps),在单片机中,这两个东西是一样的。

例如,通信双方每秒钟所传送数据的速率是240字符/秒,每一字符包含10位(1个起始位、8个数据位、1个停止位),则波特率为

240 ×10 =2400b/s=2400B

3. SCON(98H,可位寻址)

  

SM0,SM1是设定串口工作方式的,

SM2是设定在串口工作方式2,3时发送地址or数据。

REN是允许接受位,TB8是在工作方式2,3时的第九位可编程位的数值。

TI是发送标志位。

RI是接收标志位。

4. PCON(87H,不可位寻址)

  

    最高位是可以拿来调整波特率的,低位那些和电源管理相关。

80C51串口工作方式:(P3.0是位移输入RxD((低位在前),P3.1是位移输出TxD)

  工作方式0:(同步)8位数据为一帧,没有停止位和起始位,串行口发送的条件是TI = 0;接受条件是RI = 0且REN = 1(允许接受位)。

波特率固定fosc/12。RB8不用。

  工作方式1:(异步)(用于双机通讯)10位数据为一帧,最低位为起始位(0),最高位为停止位(1)。SM2=0,RB8接收的是停止位。实际上工作方式1在发送时是不断把数据右移到TxD端口(最高位已经置1),然后不断在左边补0,发完TI = 1;接受时恰好反过来,首先接受的时候会在接受端口补1,当一旦发现从1-0的跳变(收到起始位了),就开始接受数据,直到收到的停止位为1,则收到的是正确的信息。然后RI = 1。

  工作方式2,3:(异步)(多机通讯),11位数据一帧,除了起始位和停止位,还包括一个可编程位, 这个位由SCON的TB8提供,可以做奇偶校验,也可以与SM2结合进行多机通讯,发送时设定TB8,接受时为RB8。

  当SM2 = 0时,接受数据和地址;当SM2 = 1时,只接受地址(体现在接收到的信息的RB8位必须是1(表明是地址))

串口波特率计算:

方式0的波特率为晶振频率的1/12。

方式2的波特率为:波特率=(2SMOD/64)×fosc

方式1和方式3的波特率 =(2SMOD /32)×定时器的溢出率(一般选方式2作为方式一和方式三的时钟)

常用波特率(熟悉一下):

串口通讯编程例子(注意要自己手动清除TI和RI)

(发送)

MOV R0,#40H ;设定数据块地址指针初值
MOV R7,#10H ;设定数据块长度初值
ALOOP3:MOV SBUF,@R0 ;发送一个数据字节
JNB TI,$ ;等待发送完
CLR TI ;清发送标志位
INC R0 ;地址单元加1
DJNZ R7,ALOOP3 ;整个数据块是否发送完毕

(接收)

MOV R0,#40H ;设定数据块地址指针初值
MOV R7,#10H ;设定数据块长度初值
BLOOP3:JNZ RI,$ ;等待接收信息
CLR RI ;清接收标志位
MOX A,SBUF ;读取接收缓冲区内容
MOX @R0,A ;接收数据转储
INC R0 ;存储单元加1
DJNZ R7,BLOOP3 ;判断数据块是否接收完毕

  在由MCS-51组成的主从式多机通信系统中,主机只有一台,从机最多有256台。

1. I^2C总线



  编码内容包括:器件标识,引脚电平,方向位。

  两条线:SCL(时钟线),SDA(数据线),9位数据传输形式(最后一个应答位)。

  当SCL为高,SDA下降沿,表明启动。

  当SCL为高,SDA上升沿,表明停止。

时间: 2024-10-14 18:58:10

单片微机原理P4:80C51串口与串行总线拓展的相关文章

单片微机原理P2:80C51外部中断与定时器系统

0. 外部中断 书上的废话当然是很多的了,对于中断我想大家应该早就有一个很直观的认识,就是"设置断点,执行外部外码,然后返回断点"这样的三个过程.中断给系统提供了一个良好的响应模式.当然了,响应中断的时候记得保护现场,这是写汇编的良好习惯. 80C51一共是5个中断源,这五个中断源分别是外部中断0,1定时器中断0,1,串口中断. 1. 我们现在先来看外部中断: 一般开外部中断分为4个步骤(不用查询的方式的话): 1. 设置触发方式(IT0/IT1) 2. 开启外部中断(EX0/EX1)

单片微机原理P3:80C51外部拓展系统

外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC. 0. IO接口电路概念与存储器拓展 1. 为什么需要IO电路?:1. 协调计算机与外设的速度的差异 2. 输入/输出过程中的状态信号 3. 解决计算机信号与外设信号之间不一致 2. IO传送方式三种:1. 无条件传送(灯,DAC),2. 查询,3. 中断(ADC). 3. DMA存储方式(直接传输数据不通过CPU(不需要CPU),这种方式实际上已经

IIC串行总线的组成及其工作原理

------------------最近项目上用到了一款美信的DS1308RTC芯片,由于是挂在了Zynq的PS MIO上,需要软件人员协助才能测试:觉得太麻烦了,想通过飞线,然后在Vivado中调用IIC的IP核,在PL端实现IIC的读写,借此验证此芯片的功能是否正常.因此简单学习一下IIC的协议,顺便借此提升一下对IIC的认识--------------- 常用的串行扩展总线有:IIC总线.SPI总线与UART总线. IIC总线只有两根双向信号线.一根是数据线SDA,另一根是时钟线SCL.

微机原理与接口(1)——基础知识

 微机的基本构成:     硬件设备:         由运算器.控制器.存储器.输入.输出设备: 软件    :         系统软件.程序设计语言.应用软件: CPU:整个计算机硬件的控制指挥中心.     构成:        运算:算术逻辑单元(Arithmetic Logic Unit,ALU).Acc(Accumulator)累加器.状态寄存器(Flag Register,FR)和寄存器组(Register Set,RS).        控制:程序计数器(Program Cou

连载:(二)循序渐进,通过XML配置,实现通用于WinForm(.Net)、WebForm(Asp.Net+JQuery+EasyUI)表单、报表--原理

连载:(二)循序渐进,通过XML配置,实现通用于WinForm(.Net).WebForm(Asp.Net+JQuery+EasyUI)表单.报表 --原理 作者:长江支流 本原理,适用于Window Form的CS,也适用于ASP.Net的BS. 在描述原理之前,先来看个传统的ORM写代码的例子. 实体映射 现在很多架构实现ORM,去动态的生成代码,实现数据增.删.改.查的功能. 实体的映射关系,是通过代码的方式进行映射的,是否可以通过XML文件,来配置实例的映射关系,答案是肯定的. 代码映射

【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例(转载)

(1)GCD实现的同步异步.串行并行. ——同步sync应用场景:用户登录,利用阻塞 ——串行异步应用场景:下载等耗时间的任务 /** * 因为是异步,所以开通了子线程,但是因为是串行队列,所以只需要开通1个子线程(2),它们在子线程中顺序执行.最常用. */ -(void)gcdDemo1{ dispatch_queue_t q1=dispatch_queue_create("com.hellocation.gcdDemo", DISPATCH_QUEUE_SERIAL); for

GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例

转:http://www.tuicool.com/articles/NVVnMn (1)GCD实现的同步异步.串行并行. ——同步sync应用场景:用户登录,利用阻塞 ——串行异步应用场景:下载等耗时间的任务 /** * 因为是异步,所以开通了子线程,但是因为是串行队列,所以只需要开通1个子线程(2),它们在子线程中顺序执行.最常用. */ -(void)gcdDemo1{ dispatch_queue_t q1=dispatch_queue_create("com.hellocation.gc

痞子衡嵌入式:飞思卡尔i.MX RTyyyy系列MCU硬件那些事(2.2)- 在串行NOR Flash XIP调试原理

大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RTyyyy系列EVK在串行NOR Flash调试的原理. 本文是i.MXRT硬件那些事系列第二篇的续集,在第二篇首集中痞子衡给大家详细介绍了EVK板载调试器用法,有了调试器在手,从此调试不用愁.从调试代码所在目标存储器类别上来分,调试一般分为在SRAM调试和在Flash调试.在SRAM调试实现比较简单,程序直接从JTAG/SWD口灌进RAM即可:在Flash调试,则相对复杂一点,因为首先需要有Flash下载算法,

Everspin串口串行mram演示软件分析

Everspin在磁存储器设计,制造和交付给相关应用方面的知识和经验在半导体行业中是独一无二的.在平面内和垂直磁隧道结(MTJ)STT-MRAM位单元的开发方面处于市场领先地位.包括40nm,28nm及更高工艺在内的先进技术节点上进行了全包交钥匙的300mm大批量平面内和垂直MTJ ST-MRAM生产.生产基于180nm,130nm和90nm工艺技术节点的MRAM产品.下面要介绍关于everspin公司MRAM演示软件分析 everspin公司MRAM演示软件分析 MRAM低级驱动程序通过操作系