单片机串行通信双机通信_第1页
单片机串行通信双机通信_第2页
单片机串行通信双机通信_第3页
单片机串行通信双机通信_第4页
单片机串行通信双机通信_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 在多机控制系统中,双机通信是常见的应用形式。 对讲机 组装at89c51单片机控制一个88 点阵字符显示器的系统,逐字显示“电子设计”四个字。 1、通信双方硬件如何连接? 2、通信双方如何协调收发过程?9.1 串行通讯的基础知识串行通讯的基础知识9.2 at89c51的串行接口的串行接口1、并行与串行 并行:按照信息数据的基本单位,多位同时传送的方式。 串行:按照信息数据的最小单位顺序传送的方式。2、同步与异步 同步通信:同步字符邀请并应答进入同步传输过程, 信息的各位二进制码之间都没有间隔。 其基本特征是发送与接收时钟始终保持严格同步。3、 波特率 4、串行通信的制式:单工,半双工,全双工

2、5、校验:奇偶校验,和校验,crc校验 异步通信是按帧传送数据, 它利用每一帧的起0、止信号1来建立发送与接收之间的同步。每帧内部各位均采用固定的时间间隔, 但帧与帧之间的时间间隔是随机的。其基本特征是每个字符必须用起始位和停止位作为字符开始和结束的标志, 它是以字符为单位一个个地发送和接收的。 9.2.1 串行口的控制串行口的控制9.2.2 串行口的工作方式串行口的工作方式9.2.3 多机通信多机通信 1、发送器和接收器、发送器和接收器sbuf 串行口缓冲器sbuf其内部ram字节地址是99h。 在物理上, 它对应着两个独立的寄存器, 一个发送寄存器, 一个接收寄存器。发送时, 就是cpu写

3、入sbuf;接收时, 就是读取sbuf的过程。 2、串行口控制寄存器、串行口控制寄存器sconsconsm0 sm1 sm2rentb8rb8tiri位地址9fh9eh9dh9ch9bh9ah99h98h scon用于控制和监视串行口的工作状态, 相应的各位功能介绍如下: sm0、sm1: 用于定义串行口的操作模式, 两个选择位对应 4 种模式。 sm2:多机通信时的接收允许标志位。 在模式 2 和 3 中, 若sm2 = 1, 且接收到的第 9 位数据(rb8)是 0, 则接收中断标志(ri)不会被激活。在模式1中, 若sm2=1 且没有接收到有效的停止位, 则 ri不会被激活。 在模式 0

4、 中, sm2 必须是 0。 串行口操作模式选择串行口操作模式选择 sm0 sm1 模式模式 功功 能能 波特率波特率 0 00 11 01 10123同步移位寄存器 8位uart 9位uart 9位uart fosc/12 可变fosc/64 或 fosc/32 可变 ren:串行接收允许位。由软件置位或清零,1 :允许接收;0:禁止接收。 tb8:在方式2或方式3中,是将要发送的第九位数据,由软件置位或清零,它可作为数据奇偶校验位,也可在多机通信中作为地址帧或数据帧的标志位使用。 rb8:在方式2或方式3中,是己接收到的第九位数据,可作为奇偶校验位。在多机通信中也可作为地址帧或数据帧的标志

5、位。在方式1中,若sm2=0,则rb8是接收到的停止位。在方式0中,该位没有用。 特殊功能寄存器pcon中, 只有一位(最高位)smod与串行口的工作有关, 该位是串行口波特率系数的控制位: smod=1 时, 波特率加倍, 否则不加倍。 pcon的地址为 87h, 不可位寻址, 因此初始化时需要字节传送。 3、电源控制寄存器、电源控制寄存器pcon(1) 方式方式 0 输出状态。输出状态。 图 9.11 外接移位寄存器输出 1、方式、方式 0 同步移位寄存器,rxd 输入输出,先低位后高位,txd输出移位时钟。(2) 方式方式 0 输入状态。输入状态。 图9.12 外接移位寄存器输入 10位

6、异步通信接口。数据位由 p3.0 (rxd)端接收, 由p3.1(txd)端发送。波特率是可变的, 它取决于定时器 t1 的溢出速率及smod的状态。 一位起始位0, 8位数据位(低位在前)和一位停止位1。 (1)方式方式1 发送过程。 用软件清除 ti后, cpu执行任何一条以 sbuf为目标寄存器的指令, 就启动发送过程。数据由 txd引脚输出, 此时的发送移位脉冲是由定时器 /计数器 t1 送来的溢出信号经过 16 或 32 分频而取得的。一帧信号发送完时, 将置位发送中断标志ti=1, 向cpu申请中断, 完成一次发送过程。 2、方式、方式1 (2)方式方式1 接收过程。 用软件清除

7、ri后, 当允许接收位 ren被置位 1 时, 接收器以选定波特率的 16 倍的速率采样 rxd引脚上的电平, 即在一个数据位期间有 16 个检测脉冲, 并在第 7、 8、9 个脉冲期间采样接收信号, 然后用三中取二的原则确定检测值, 以抑制干扰。 并且采样是在每个数据位的中间, 避免了信号边沿的波形失真造成的采样错误。当检测到有从“1”到“0”的负跳变时, 则启动接收过程, 在接收移位脉冲的控制下, 接收完一帧信息。 当最后一次移位脉冲产生时能满足下列两个条件: ri=0; 接收到的停止位为 1 或 sm2=0。 3.方式方式2 和方式和方式3。 串行口工作于方式方式2 和方式方式3 时,

8、被定义为 9 位异步通信接口。 它们的每帧数据结构是 11 位的: 最低位是起始位(0), 其后是 8 位数据位(低位在先), 第 10 位是用户定义位(scon中的 tb8或 rb8), 最后一位是停止位(1)。方方式式2 和方式方式3 工作原理相似, 唯一的差别是方式方式2 的波特率是固定的, 即为 f / 32或 fosc / 64; 而方式方式3的波特率是可变的, 与定时器 t1的溢出率有关。 9.2.4 波特率波特率 串行口每秒钟发送或接收的数据位数称为波特率。 假设发送一位数据所需时间为t, 则波特率为 1/t。 (1) 模式 0 的波特率等于单片机晶振频率的 1/12, 即每个机

9、器周期接收或发送一位数据。 (2) 模式 2 的波特率与电源控制器pcon的最高位smod的写入值有关: 即smod=0, 波特率为(1/64) fosc; smod=1, 波特率为(1/32)fosc。 6422smod晶振频率的波特率模式 (3) 模式 1 和模式 3 的波特率除了与smod位有关之外, 还与定时器 t1 的溢出率有关。 定时器 t1 作为波特率发生器, 常选用定时方式 2( 8 位重装载初值方式), 并且禁止 t1 中断。此时 th1 从初值计数到产生溢出, 它每秒钟溢出的次数称为溢出率。 于是 ) 1256(12322322131thftoscsmodsmod的溢出率的波特率或模式表表 9.2 定时器定时器t1产生的常用波特率产生的常用波特率 假设某mcs - 51 单片机系统, 串行口工作于方式方式3, 要求传送波特率为1200 hz, 作为波特率发生器的定时器t1工作在方式 2 时, 请求出计数初值为多少? 设单片机的振荡频率为6 mhz。 因为串行口工作于方式方式3 时的波特率为 ) 1256(123223thfoscsmod的波特率模式所以 )2/32(122561smodoscfth波特率当smod=0 时, 初值th1=256-6106/(1 2001232/1) =243=0f3h当smod=1 时, 初值th1=256-6106/

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论