精品毕业论文--基于51单片机的主从通信系统的设计与实现内容摘要:
字节,这时接收器件可以将 SCL 线拉成低电平,从而使主机处于等待状态。 直到接收器件准备好接收下一个字节时,再释放 SCL 线使之为高电平,从而使数据传送可以继续进行。 数据传送格式 : (1)字节传送与应答 每一个字节必须保证是 8位长度。 数据传送时,先传送最高位( MSB),每一个被传送的字节后面都必须跟随一位应答位(即一帧共有 9位)。 原理图如图 33所示。 如果一段时间内没有收到从机的应答信号,则自动认为从机已正确接收到SCL SDA 要求数据稳定 允许数据变化 要求数据稳定 起始信号 S 终止信号 P 10 数据。 由于某种原因从机不对主机寻址信号应答时(如从机正在进行实时性的处理工作而无法接收总线上的数据),它必须将数据线置于高电平,而由主机产生一个终止信号以结束总线的数据传送。 如果从机对主机进行了应答,但在数据传送一段时间后无法继续接收更多的数据时,从机可以通过对无法接收的第一个数据字节的 “ 非应答 ” 通知主机,主机则应发出终止信号以结束数据的继续传送。 当主机接收数据时,它收到最后一个数据字节后,必须向从机发出一个结束传 送的信号。 这个信号是由对从机的 “ 非应答 ” 来实现的。 然后,从机释放 SDA 线,以允许主机产生终止信号。 图 33 IIC 字符传送格式 (2)数据帧格式 IIC 总线上传送的数据信号是广义的,既包括地址信号,又包括真正的数据信号。 在起始信号后必须传送一个从机的地址 (7 位 ),第 8位是数据的传送方向位 (R/T),用 “ 0” 表示主机发送数据 (T), “ 1” 表示主机接收数据 (R)。 每次数据传送总是由主机产生的终止信号结束。 但是,若主机希望继续占用总线进行新的数据传送, 则可以不产生终止信号,马上再次发出起始信号对另一从机进行寻址。 在总线的一次数据传送过程中,可以有 三 种组合方式: 第一是 主机向从机发送数据,数据传送方向在整个传送过程中不变。 第二是 主机在第一个字节后,立即从从机读数据。 第三种刚是 在传送过程中,当需要改变传送方向时,起始信号和从机地址都被重复产生一次,但两次读 /写方向位正好反相。 IIC 总线的寻址 是 采用 7 位的寻址字节 (寻址字节是起始信号后的第一个字节 )。 SDA (从机 ) SDA (从机 ) 起始信号 非应答 应答 SCL (主机 ) 11 SPI 总线传输协议 SPI 的通信原理非常简单, 它以主从方式工作,这种模式通常有一个主设备和多个从设备。 其中 CS 信号是控制从机的芯片是否被选中的。 如图 34所示,系统内有一个主设备 M1 和两个从设备 S1 与 S2。 当 S1 的片选信号 CS 为低电平时, S1 被选中, M1 通过 MOSI 引脚发送数据, S1 通过 MOSI 引脚接收数据,或者 S1 通过 MISO 引脚发送数据,而 M1 通过 MISO 引脚接收数据。 同样的,当 S2 的片选信号 CS 为低电平时, S2 被选中, M1 通过 MOSI 引脚发送数据,S2 通过 MOSI 引脚接收数据,或者 S2 通过 MISO 引脚发送数据,而 M1 通过MISO 引脚接收数据。 从机只有通过 CS 信号选中之后,对此从机的操作才会有效,可见, 片选信号的存在使得允许在同一总线上连接多个 SPI 设备成为可能。 当从机芯片被选中,和主机建立连接之后,接下来就是负责通讯的 3 根线了。 通讯是通过数据交换完成的,这里首先要知道 SPI 是串行通讯协议,也就是说数据是一位一位进行传输的。 这就是 SCK 时钟线存在的原因,传输时,由 SCK提供时钟脉冲, MOSI, MISO 则基于此脉冲完成数据传输。 如图 34 所示,当M1 给 S1 发送数据时,数据从 M1 输出通过 MOSI线,数据在时钟脉冲的上升沿或下降沿时输出,在紧接着的下降沿或上升沿通过 S1 的 MOSI线被读取。 当S1 给 M1 发送数 据时,原理是一样的,只不过通过的是 MISO 线来完成 [10]。 图 34 SPI 传输原理图 要注意的是, SCK 信号线只由主设备控制,从设备不能控制时钟信号线。 因此,在一个基于 SPI的系统中,必须至少有一个主控设备。 在点对点的通信中,SCK MISO MOSI CS M1 SCK MISO MOSI CS SCK MISO MOSI CS S1 S2 12 SPI接口不需要进行寻址操作,且为全双工通信,显得简单高效。 在多个从设备的系统中,每个从设备需要独立的使能信号,硬件上比 IIC 系统要稍微复杂一些。 SPI 是一个环形总线结构,其时序其实比较简单,主要是在时钟脉冲 SCK 的控制下 ,两个双向移位寄存器 SPIDATA 进行数据交换。 我们假设主机的 8 位寄存器 SPIDATA1 内的数据是 10101010,而从机的 8 位寄存器 SPIDATA2 内的数据是 01010101,在上升沿的时候发送数据,在下降沿的时候接收数据,最高位的数据先发送,主机和从机之间全双工通信,也就是说两个 SPI 接口同时发送和接收数据,如图 35 所示。 从图中我们也可以看到, SPIDATA 移位寄存器总是将最高位的数据移出,接着将剩余的数据分别左移一位,然后将接收到得数据移入其最低位 [11]。 S C KM I S OM O S IC SS C KM I S OM O S IC SM 11 0 1 0 1 0 1 00 1 0 1 0 1 0 1M S B S P I D A T A I L S BM S B S P I D A T A I L S B 图 35 SPI 主从工作模式示意图 如图 36 所示,当第一个上升沿来的时候, SPIDATA1 将最高位 1 移除,并将所有数据左移 1 位,这时 MOSI线为高电平,而 SPIDATA2 将最高位 0 移出,并将所有数据左移 1 位,这样 MISO 线为低电平。 然后当下降沿到来的时候,SPIDATA1 将锁存 MISO 线上的电平,并将其移入其最低位,同样的, SPIDATA2将锁存 MOSI 线上的电平,并将其移入最低位。 经过 8 个脉冲后,两个移位寄存器就实现了数据的交换,也就是完成了一次 SPI的时序 [11]。 1 0 1 1 10 0 00 1 0 0 01 1 X0 1 0 0 01 1 00 1 0 0 01 1 11 0 1 1 10 0 X1 0 1 1 10 0 110 01第 一 个 脉 冲上 升 沿第 一 个 脉 冲下 降 沿 图 36 数据传输示例 13 串口通信传输协议 由于本次设计的题目是基于 8051 单片机的主从式通信系统的设计,因此有关串口通信的原理的介绍都是围绕 51 单片机讲解的。 80C51 单片机的串行口的结构 MCS51 单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接发送器,既可以接收数据也可以发送数据。 但接收缓冲器只能读出不能写入,而发送缓冲器刚只能写入不能读出。 这个通信口既可以用于网络通信,亦可以实现串行 异步通信,还可以构成同步移位寄存器使用。 如果在传行口的输入输出引脚上加上电平转换器,就可以方便地构成标准的 RS232 接口 [7][12]。 80C51 单片机的串行口的结构如图 37 所示。 ≥ 1S B U F发 送 控 制 器接 收 控 制 器移 位 寄 存 器控 制 门T IR IAT X DR X D去 串 口 中 断S M O D01T H 1 T L 1247。 2247。 1 6S B U FT 1 溢 出 率 图 37 80C51 单片机的串行口的结构 串行口 有两个物理上独立的接收、发送缓冲器 SBUF,它们占用同一地址99H ;接收器是双缓冲结构;发送缓冲器,因为发送时 CPU 是主动的,不会产生重叠错误。 80C51 串行口的控制寄存器 1. 特殊功能寄存器 SCON SCON 是一个特殊功能寄存器,用以设定串行口的工作 方式、接收 /发送控制以及设置状态标志 ,字节地址为 98H。 SCON 寄存器 的各位定义如 表 31 所示。 位 7 6 5 4 3 2 1 0 字节地址: 98H SM0 SM1 SM2 REN TB8 RB8 TI RI SCON 14 表 31 SCON 寄存器 SM0 和 SM1 为工作方式选择位,可选择四种工作方式 ,如 表 32 所示。 SM0 SM1 方式 说明 波特率 0 0 0 移位寄存器 fosc/12 0 1 1 10 位异步收发器 (8位数据 ) 可变 1 0 2 11 位异步收发器 (9位数据 ) fosc/64 或 fosc/32 1 1 3 11 位异步收发器 (9位数据 ) 可变 表 32 串口通信 4 种工作方式 SM2 为 多机通信控制位,主要用于方式 2 和方式 3。 当接收机的 SM2=1 时可以利用收到的 RB8 来控制是否激活 RI( RB8= 0 时不激活 RI,收到的信息丢弃; RB8= 1 时收到的数据进入 SBUF,并激活 RI,进而在中断服务中将数据从 SBUF 读走)。 当 SM2=0 时,不论收到的 RB8 为 0 和 1,均可以使收到的数据进入 SBUF,并激活RI(即此时 RB8 不具有控制 RI 激活的功能)。 通过控制 SM2,可以实现多机通信。 在方式 0 时, SM2 必须是 0。 在方式 1 时,若 SM2=1,则只有接收到有效停止位时, RI 才置 1。 REN 为允许串行接收位。 由软件置 REN=1,则启动串行口接收数据;若软件置REN=0,则禁止接收。 TB8 用 在方式 2 或方式 3中,是发送数据的第九位,可以用软件规定其作用。 可以用作数据的奇偶校验位,或在多机通信中,作为地址帧 /数据帧的标志位 (在方式 0 和方式 1中,该位未用 )。 RB8 用 在方式 2 或方式 3中,是接收到数据的第九位,作为奇偶校验位或地址帧/数据帧的标志位。 在方式 1时,若 SM2=0,则 RB8 是接收到的停止位。 TI,发送中断标志位。 在方式 0时,当串行发送第 8 位数据结束时,或在其它方式,串行发送停止位的开始时,由内部硬件使 TI 置 1,向 CPU 发中断申请。 在中断服务程序中,必须用软件将其清 0,取消此中断申请。 RI,接收中断标志位。 在方式 0时,当串行接收第 8 位数据结束时,或在其它方式,串行接收停止位的中间时,由内部硬件使 RI 置 1,向 CPU 发中断申请。 也必须在中断服务程序中,用软件将其清 0,取消此中断申请 [7]。 2.特殊功能寄存器 PCON PCON 的字节地址为 87H,它的第 7 位 SMOD 是与串口通信波特率的设置有关的选 择位。 SMOD()为 波特率倍增位。 在串行口方式 方式 方式 3时,波特率与 SMOD 有关,当 SMOD=1 时,波特率提高一倍。 复位时, SMOD=0。 15 80C51 单片机串行口的工作方式 0 设置 SCON 寄存器的 SM0、 SM1= 0 0 时,串行口工作于方式 0。 此 时,串行口为同步移位寄存器的输入输出方式。 主要用于扩展并行输入或输出口。 数据由 RXD()引脚输入或输出,同步移位脉冲由 TXD()引脚输出。 发送和接收均为 8 位数据,低位在先,高位在后。 波特率固定为 fosc/12。 其中 fosc 为时钟频率。 2.方式 1 设置 SCON 寄存器的 SM0、 SM1= 0 1 时,串行口工作于方式 1。 方式 1是10位数据的异步通信口。 TXD 为数据发送引脚, RXD 为数据接收引脚,传送一帧数据的格式如图所示。 其中 1 位起始位, 8位数据位, 1 位停止位。 用软件置REN 为 1 时,接收器以所选择波特率的 16 倍速率采样 RXD 引脚电平,检测到 RXD引脚输入电平发生负跳变时,则说明起始位有效,将其移入输入移位寄存器,并开始接收这一帧信息的其余位。 接收过程中,数据从输入移位寄存器右边移入,起始位移至输入移位寄存器最 左边时,控制电路进行最后一次移位。 当 RI=0,且 SM2=0(或接收到的停止位为 1)时,将接收到的 9位数据的前 8 位数据装入接收 SBUF,第 9 位(停止位)进入 RB8,并置 RI=1,向 CPU 请求中断。 方式一的输入输出图如图 3 39所示。 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7写 入 S B U F停 止 位T X DT I ( 中 断 标 志 )起 始 图 38 方式 1 输入 D 0 D 1 D 2 D 3 D 4 D 5 D 6 D 7停 止 位R X DR I ( 中 断 标 志 )起 始位 采 样 脉 冲 图 39 方式 1 输出 2. 方式 2和方式 3 设置 SCON 寄存器的 SM0、 SM1= 1 0 时,串行口工作于方式 2,当 SM0、SM1。精品毕业论文--基于51单片机的主从通信系统的设计与实现
相关推荐
硬件电路设计 11 由于 液晶显示数字温度使用方便 、 功耗低 、 显示直观 、寿命长 且便于实现小型化设计, 另 外 该模块显示字符数量比以前的七段数码管 LED( Light Emitting Diode)显示器要多得多。 因此选用通用 1602LCD 显示模块 [10]。 图 LCD1602 与单片机接口电路 查看温度报警值 查看所设置的上下报警值。 LCD 1602 此时显示: LOOK
加入并超过复位门限电压 ) 引起系统正常复位。 11 图 复位电路图 在微型计算机控制系统中,为了安全生产,对于 一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。 其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示和控制。
7) 驱动方式: 1/32DUTY, 1/5BIAS 8) 视角方向: 6 点 9) 背光方式:侧部高亮白色 LED,功耗仅为普通 LED 的 1/5— 1/10 10)通讯方式:串行、并口可选 11)内置 DCDC 转换电路,无需外加负压 12)无需片选信号,简化软件设计 13)工作温度 : 0℃ +55℃ ,存储温度 : 20℃ +60℃ 为了使本系统更加具有市场,采用了液晶屏显示工作状态
这个电信号可以使用模数转换的电路即 A/D 转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者 PC 机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可 以显 示出 来的 温度 数值 ,如 氏度 ,然 后通 过显 示单 元,如LED,LCD 或者电脑屏幕等显示出来给人观察。 这样就完成了数字温度计的基本测温功能。 本文是基于 AT89S51 单片机
凋 系统总电路图 ............................ 46 单片机课程设计 基于单片机的数字音乐盒设计湖南铁路科技职业技术学院单片机课程设计题 目:基于单片机的数字音乐盒设计 专 业:机电一体化系 部:机械工程系姓 名: 班 级: 3092班湖南铁路科技职业技术学院单片机课程设计说明书 4基于单片机的数字音乐盒设计任
TL1 SBUF SCON PCON 00H 00H 00H 不定 00H 0********B 注: 表 41 中符号 *为随机状态。 PSW= 00H,表明选寄存器 0 组为工作寄存器组; SP= 07H,表明堆栈指针指向片内 RAM 07H 字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到 08H 单元中; P0P3= FFH,表明已向各端口线写入 1,此时