资源预览内容
第1页 / 共86页
第2页 / 共86页
第3页 / 共86页
第4页 / 共86页
第5页 / 共86页
第6页 / 共86页
第7页 / 共86页
第8页 / 共86页
第9页 / 共86页
第10页 / 共86页
亲,该文档总共86页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
6.1 实 训 概 要 MCS-51单片机内部除了4个并行I/O口外,还设置一个全双工串行口。在串行接口电路中,二进制数据一位一位一次传送,串行通信只需要2根传输线即可完成,传送成本低,适合于远距离传输。例如,在单片机之间、单片机与IBM PC机之间以及单片机与外部设备之间的数据传送,就依靠串行通信实现。其缺点是速度较慢。,第6章 串行接口控制,实训内容: 串行数据传送 串行接口扩展输出I/O口 串行接口扩展输入I/O口 串行口点对点通信 双机通信 多机通信,预备知识: 1串行通信基本知识 (1)计算机通信方式 并行通信 并行通信是指在同一时刻,数据字节的各位同时传送。在这种传送方式下,数据有几位,就需要几根数据传输线。该方式数据传输速度很快,它适用于计算机与其外设之间进行信息传递。 串行通信 串行通信是指数据一位一位依此传送。在这种传送方式下,只需要两根线:一根发送数据线,一根接收数据线。 MCS-51单片机与其外部设备之间的通信可以通过并行通信和串行通信两种方式实现。如图6-1所示。,2)串行通信方式 同步传送 同步传送是按数据块传送的。它由若干个需要传送的字符顺序连接起来,形成数据块,前面加上特殊的字符同步字符。同步字符作为数据传送的开始,使接收、发送双方取得同步,同步字符可以由用户定义。在数据块后面加上校验字符,用来检查传送的数据块是否正确。同步传送方式的字符格式如图6-2所示:,异步传送 异步传送是以一个字符为单位传送的。多个字符可以一个接一个连续传送,也可以断续传送,并且同步时钟脉冲不传送到接收方。发送、接收双方各用自己的时钟源来控制发送和接收。 在异步传送中,通过在发送的字符前、后加上若干位,分别叫起始位和停止位,利用每个字符的起止信号建立起收、发双方的同步关系。异步传送的字符格式如图6-3所示:,数据位,起始位 奇偶校验位 停止位,异步传送格式 一个异步传送的字符通常由四部分组成:起始位、数据位、奇偶校验位和停止位。 例如:数据位为6位,起始位和停止位各占1位的异步传送字符如图6-4所示。,(3)波特率 波特率是串行通信中一个重要指标。它定义位每秒传送的二进制数码的位数。单位是:位/秒。波特率反应了串行通信的速率。 (4)串行通信的制式 单工方式:采用这种方式的线路只允许数据按照一个固定的方向传送。 半双工方式:数据能够从一个站传送到另一个站,也能从另一个站传回,但不能同时在两个方向上传送。 全双工方式:数据可以在两个方向上同时发送和接收。三种方式如图6-5所示。,串行接口中的特殊功能寄存器 串行口控制寄存器SCON: SCON是一个8位的特殊功能寄存器,其字节地址为98H。用于控制和管理串行口的工作方式、多机通信以及串口中断标志。具体如下:,SM0、SM1:串行口工作方式选择位。单片机的串行口有4种工作方式,通过SM0和SM1的二进制组合取值选择。具体见表6-1所示。,SM2:多机通信控制位。在方式0时,SM2必须为0;在方式1时,如SM2=1,则只有收到有效的停止位时,才会激活RI;在方式2、3时,SM2=1,表示允许多机通信,然后根据接收到的第9位数据的值来决定从机是否接收主机的信号。 REN:允许串行接收位。当REN=1时,允许串行接收; REN=0时,禁止串行接收。 TB8:方式2或方式3中要发送的第9位数据。需要时可由软件置位或复位。 RB8:方式2或方式3中要接收的第9位数据。需要时可由软件置位或复位。方式0中不使用该位。方式1中,若SM2=0,则RB8是接收到的停止位。 TI:串口发送中断标志位。由硬件在方式0串行发送第8位结束时置“1”,或在其它方式串行发送停止位的开始时置“1”。必须由软件清“0”。,RI:串口接收中断标志位。在方式0串行接收到第8位结束时置“1”,或在其它方式串行接收到停止位的中间时置“1”。必须由软件清“0”。 电源控制寄存器PCON: PCON是一个8位的特殊功能寄存器,其字节地址为 87H。其最高位是串行口波特率系数控制位,用于设置串行通信的波特率。具体如下:,SMOD=1波特率加倍。PCON的其它位为掉电方式控制位。 4串行接口的工作方式 方式0 串口方式0为移位寄存器I/O方式,用于扩展I/O口。 方式0输出 数据从RXD(P3.0)脚串行输出,TXD(P3.1)脚输出同步脉冲。 方式0输入 是否允许串行口接收数据由串行口控制寄存器SCON的REN位控制。当REN=1且RI=0时,串行口开始接收数据。 在方式0下,SCON的TB8和RB8没有使用,多机通信控制位SM2必须为0。,方式1 图6-7中,方式1的数据传送字符格式为:,起始位 停止位 图 6-7 方式1的数据传送格式 串行口以方式1发送数据时,由TXD输出。 在方式1接收数据时,数据通过RXD端输入。 方式2和方式3: 方式2和方式3可用于多机通信。详见教材。,62 实训22 串行数据传送 621 实训目的 通过本节实训,主要学习下面内容: 串行数据传送的工作原理。 通过实例理解串行通信的含义。 理解波特率的概念。,622 实训要求 将片内RAM20H中的并行数据转换成串行数据,送到接在P1.0脚上的发光二极管显示,其波特率为1位/秒。 623 实训器材 MCS-51单片机开发系统、发光二极管 624硬件电路原理图 并行数据转换成串行数据实训电路如图6-8所示。,625 实训步骤 (1)按硬件原理图6-8连接电路,将发光二极管与8031的P1.0脚相连。 (2)理解程序,给每条指令加注释,并画出程序流程图。 (3)将程序机器码送入单片机开发系统中,并检查程序是否正确。 (4)预先为片内RAM 20H单元送入一个数据,如(20H)=55H。连续执行程序,观察发光二极管的亮灭变化,是否与传送的数据相符。 626 实训程序 并行数据转换成串行数据输出实训程序见表6-2所示。,627 分析与思考 (1)将单字节数据传送程序修改成16字节数据传送程序,执行并观察。 (2)修改数据传送时间即波特率,观察数据传送情况。 提示: 当发送“1”时,发光二极管被点亮,但若连续传送多个“1”时,其一直亮。而发送多个连续“0”时,其一直熄灭。 发送10101010B或01010101B时,最便于观察其传送的波特率。,63 实训23 串行接口扩展输出I/O口 631 实训目的 通过本节实训,主要学习下面内容: 串行口扩展输出I/O口的方法。 串行接口编程控制。 串行数据转换成并行数据输出。 并行数据转换成串行数据输出。,632 实训要求 串口方式0输出。用单片机串口通过串入/并出芯片74LS164扩展8位输出口,并将片内RAM 30H单元的数据输出到接在74LS164上的发光二极管显示。 多字节传送。将片内RAM 30H3FH共10个字节单元中的并行数据转换成串行数据,送到接在P1.0脚上的发光二极管显示,其波特率为1位/秒。,633 实训器材 MCS-51单片机开发系统、74LS164、发光二极管 634 硬件电路原理图 串口扩展输出口实训电路如图6-9所示。,635 实训步骤 (1)按硬件电路原理图连接电路。 (2)理解程序,给每条指令加注释,并画出程序流程图。 (3)分别将实训程序机器码送入单片机开发系统中,并检查程序是否正确。 (4)预先为片内RAM 30H单元送入一个数据,如(30H)=AAH。连续执行程序,观察发光二极管的亮灭变化,是否与传送的数据相符。 636 实训程序 串口方式0扩展输出口实训程序见表6-3、表6-4、表6-5所示。,637 分析与思考 表6-3查询方式实训程序中第3行指令CPL A在本程序中是否合适?为什么? 提示: 在使用串行口方式0外接串入并出的移位寄存器扩展并行输出口时,一般要求移位寄存器带有输出允许控制端,避免数据在串行输出时,并行输出端出现不稳定的输出。 输出口最好再连接一个寄存器或锁存器,以免在输出门关闭时(STB=0),输出又发生变化。,64 实训24 串行接口扩展输入I/O口 641 实训目的 通过本节实训,主要学习下面内容: 通过串行口扩展输入I/O口的方法。 串行接口编程控制。 并行数据转换成串行数据存储。,642 实训要求 串行口方式0输入。用单片机串行口通过并入/串出芯片74LS165扩展8位输入口,外接输入设备,并将输入的数据送到片内RAM 20H单元。 643 实训器材 MCS-51单片机开发系统、74LS165、8路开关 644 硬件电路原理图 串行口扩展输入I/O口实训电路如图6-10所示。,645 实训步骤 (1)按硬件电路原理图6-10连接电路。 (2)理解程序,给每条指令加注释,并画出程序流程图。 (3)分别将实训程序机器码送入单片机开发系统中,并检查程序是否正确。 (4)预先拨动开关,然后连续执行程序,检查片内RAM 20H单元内容是否与开关状态相符。 646 实训程序 串口方式0扩展输入I/O口实训程序见表6-6、表6-7所示。,提示: 通过中断方式扩展输入I/O口时,注意串行口中断源入口地址必须为0023H。 CPU响应串行口中断后,必须由用户通过程序清0。,65 实训25 双机通信 651 实训目的 通过本节实训,主要学习下面内容: 单片机串行口的工作原理以及接收/发送控制过程。 单片机串行通信程序设计过程。,652 实训要求 将主单片机片外RAM5000H开始的16个字节单元的内容传送至从机片外RAM5000H开始的单元中。 653 实训器材 MCS-51单片机开发系统2台 、 导线,通信协议 为保证串行通信成功,主机、从机双方必须在软件上约定,称为协议。本通信的协议如下: 双方均采用2400波特的速率传送,采用全双工通信方式。 主机发送,从机接收。 开始时,主机发送一个呼叫信号06H,询问从机是否可以接收。 从机收到呼叫信号后,若同意接收,则发给主机00H信号作为应答;若不同意接收则发回0FH信号。,主机只有收到从机发来的00H后,才能将片外RAM 5000H单元开始的数据发送给从机;否则,继续呼叫,直到从机同意接收为止。 双方约定发送数据的格式为:,从机根据接收到的校验和,判断已接收到的数据是否正确: 若接收正确,则向主机发送0FH。 若接收错误,则向主机发送F0H; 主机只有接收到0FH,才算完成发送任务, 回被调用的程序。否则,继续呼叫,重发据。,655 程序设计思想 1主机发送程序的编制 波特率设置初始化: 设置定时器T1工作在方式2,电源控制寄存器PCON的SMOD位为“1”,则要实现2400波特的波特率传送数据,则定时器T1初始值为: 波特率=2SMODT1的溢出率/32 T1的溢出率=1/(28- T1初始值)2S 即:2400=21/321/(28-T1初始值)2S T1初始值=243=F3H,串行口初始化: 设置串行口方式1,允许发送。 片内RAM和工作寄存器的设置: 规定片内RAM31H、30H存放发送数据块的首地址;2FH存放发送数据块的长度;工作寄存器R6为累加校验和寄存器。 2从机接收程序的编制: 波特率初始化:与主机发送程序相同。 串行口初始化:设置串行口方式1,允许接收。,片内RAM和工作寄存器的设置: 规定片内RAM31H、30H存放接收数据块的首地址;工作寄存器R7存放数据块长度;R6为累加校验和寄存器。 从机应答主机的状态信息: 00H同意接收 0FH接收正常 F0H传送出错,656 硬件电路原理图 双机通信实训硬件电路如图6-11所示。 657 实训步骤 (1)将两台单片机用三条导线如图6-11形式连接 (2)将主机发送实训程序和从机接收程序分别送入两台单片机中。 (3)将主机、从机的片内RAM (2FH)=10H,(30H)=00H
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号