单片机嵌入式系统原理及应用 教学课件 ppt 作者 贾好来ch8

上传人:w****i 文档编号:92490619 上传时间:2019-07-10 格式:PPT 页数:115 大小:2.18MB
返回 下载 相关 举报
单片机嵌入式系统原理及应用 教学课件 ppt 作者 贾好来ch8_第1页
第1页 / 共115页
单片机嵌入式系统原理及应用 教学课件 ppt 作者 贾好来ch8_第2页
第2页 / 共115页
单片机嵌入式系统原理及应用 教学课件 ppt 作者 贾好来ch8_第3页
第3页 / 共115页
单片机嵌入式系统原理及应用 教学课件 ppt 作者 贾好来ch8_第4页
第4页 / 共115页
单片机嵌入式系统原理及应用 教学课件 ppt 作者 贾好来ch8_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《单片机嵌入式系统原理及应用 教学课件 ppt 作者 贾好来ch8》由会员分享,可在线阅读,更多相关《单片机嵌入式系统原理及应用 教学课件 ppt 作者 贾好来ch8(115页珍藏版)》请在金锄头文库上搜索。

1、1,第8章 8051单片机的串行接口及串行总线,2,8051中的串行接口是一个全双工(full duplex)通信接口,即能同时进行发送和接收(若可以发送和接收,但不能同时进行,则称半双工;只能发送或接收的称为单工),它可以作UART通用异步接收和发送器用,也可以作同步移位寄存器用。8051串行口有4种工作方式,帧格式有8位、10位和11位,并能设置各种波特率。 本章首先介绍8051单片机的串行接口,然后介绍了串行总线SPI和I2C通信原理以及单片机对SPI和I2C的模拟。,3,单工、半双工、双工的概念,4,本章内容,8.1 8051单片机的串行通信接口 8.2 8051和RS-232-C标准

2、总线的通信接口 *8.3 SPI总线及8051单片机的模拟 *8.4 I2C串行总线接口及其8051单片机模拟 *8.5单总线1-Wire及其8051的模拟,5,8.1 8051单片机的串行通信接口,8051中的串行接口是一个全双工(full duplex)通信接口,其数据发送端为TXD,接收端为RXD。所谓全双工即能同时进行发送和接收,它可以作UART通用异步接收和发送器用,也可以作同步移位寄存器用。 在8051的串行接口内部有两个独立的接收、发送缓冲器SBUF,SBUF属于特殊功能寄存器。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,二者共用一个字节地址(99H)。,6,8.1.

3、1 串行接口的四种工作方式,串行接口的四种工作模式由串行口控制寄存器SCON控制。采用定时器T1作为波特率发生器,特殊功能寄存器PCON控制波特率的倍率。中断允许寄存器IE控制其中断,中断优先级寄存器IP控制其中断优先级。串行接口的中断入口地址为0023H。,7,模式0(MODE0): 同步移位寄存器方式。8位数据(先为LSB)从引脚RXD接收/移出,引脚TXD输出移位时钟,波特率固定为晶振频率的1/12。模式0通常用来扩展输入输出口。,图8-1串行口工作模式0示意图,模式1(MODE1):10位数据被发送(从引脚TXD)或接收(从引脚RXD):1个启动位,8个数据位,1个停止位。在接收时,停

4、止位被送入特殊功能寄存器的SCON的RB8位。波特率是可变的。,8,图8-2 串口工作模式1示意图,9,模式2(MODE2):11位数据被发送(从引脚TXD)或接收(从引脚RXD):1个启动位,8个数据位,可编程的第9个数据位,1个停止位。发送时,第9位(SCON 的TB8位)可被赋予0或1。例如,可将奇偶校验位送至TB8位。在接收时,停止位被送入特殊功能寄存器SCON的RB8位。模式2的波特率可为1/32或1/64晶振频率。,图8-3 串口工作模式2示意图,10,11,模式3(MODE3):11位数据被发送(从引脚TXD)或接收(从引脚RXD):1个启动位,8个数据位,可编程的第9个数据位,

5、1个停止位。发送时,第9位(SCON 的TB8位)可被赋予0或1。 实际上,除了波特率之外,模式2和模式3是相同的。模式3的波特率是可变的。,图8-4 串口工作模式3示意图,12,13,8.1.2串行口控制寄存器,1.串行口控制寄存器SCON 串行口控制寄存器SCON,字节地址98H,所有位均可位寻址,位地址98H9FH。 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 图8-5 串行口控制寄存器SCON的格式,14,(1)SM0、SM1是串行口4种工作模式选择位,所对应 的工作方式如表8-1 :,表8-1 8051串行口的四种工作方式,15,(2)SM2是多机通信控制位,若S

6、M2=1,则模式2和模式3可用于多机通讯,9个数据位被收到,第9位数据被送入RB8,然后是停止位。仅当RB8=1,单片机在收到停止位后,串行口中断被激活。 若SM2=0,则不论收到的第9位数据是“1”还是“0”,都将前8位数据送入SBUF,并产生中断请求。 在模式1时,如果SM2=1,则只有收到有效的停止位才会激活RI;在模式0,SM2必须为0。,16,(3)REN 允许串行接收位,由软件置“1”或清“0”。 REN = 1,允许串行接收 REN = 0,禁止串行接收 (4)TB8 为要发送的第9位数据,在模式2和3时,TB8是要发送数据的第9位数据。由软件置“1”或清“0”。双机通信时,TB

7、8一般作为奇偶校验位使用;多机通信中用来表示主机发送的数据是地址帧还是数据帧。TB8 = 1,为地址帧,TB8 = 0为数据帧。,17,(5)RB8 为接收到的第9位,在模式2和3时,RB8存放接收到的第9位数据。在模式1,如果SM2 = 0,RB8是收到的停止位。在模式0,不使用RB8。 (6)TI 发送中断标志位,串行口工作在模式0时,串行发送第8位数据结束时由硬件置“1”。在其他工作模式,串行口发送停止位的开始时置“1”。TI = 1,表示一帧数据发送结束,TI的状态可供软件查询,也可申请中断。CPU相应中断后,向SBUF写入要发送的下一帧数据。TI必须由软件清“0”。,18,(7)RI

8、 接收中断标志位,串行口工作在模式0时,接受完第8位数据结束时由硬件置“1”。在其他工作模式,串行口接收到停止位的开始时置“1”。RI = 1,表示一帧数据接收完毕,并申请中断,要求CPU从SBUF取走数据。RI的状态也可供软件查询,RI必须由软件清“0”。,19,2.特殊功能寄存器 PCON 特殊功能寄存器 PCON字节地址为87H,不能位寻址。 D7 D6 D5 D4 D3 D2 D1 D0,SMOD:波特率选择位,也称SMOD位为波特率倍增位,在串行口方式1、方式2、方式3时,波特率与SMOD有关,当SMOD=1时,波特率提高一倍。复位时,SMOD=0。,20,波特率(baud rate

9、),波特率为每秒钟传送二进制数码的位数,也叫比特数,单位为bit/s,即位/秒。波特率用于表征数据传输的速度,波特率越高,数据传输速度越快。但波特率和字符的实际传输速率不同,字符的实际传输速率是每秒内所传字符帧的帧数,和字符帧格式有关。,21,8.1.3波特率的产生,1.模式0的波特率 模式0的波特率是固定的,即:,2.模式2的波特率 模式2的波特率取决于特殊功能寄存器PCON的SMOD位。如SMOD=0,波特率是晶振频率的1/64;如果SMOD=1,则波特率等于晶振频率的1/32。即模式2的波特率按下式计算:,22,23,3.模式1和模式3的波特率 在8051系统中,模式1和模式3的波特率取

10、决于定时器1的溢出率;在8052中,波特率取决于定时器1或定时器2。 (1)利用定时器1产生波特率 模式1和模式3的波特率取决于定时器1的溢出率和SMOD位的值,即:,24,实际上,当定时器T1作为波特率发生器使用时,通常是工作在模式2,即自动重装计数初值的8位定时器,此时TL1作计数用,自动重装的值在TH1内。假设计数的预置值(初始值)为X,那么每过256-X个机器周期,定时器溢出一次。为了避免溢出而产生不必要的中断,此时应禁止T1中断。在这种情况下,串口的波特率由下式决定:,另外,用户只要将定时器1配置为16位定时器方式(TMOD的高4位等于0001B,即定时器T1工作模式MODE=1),

11、且利用定时器1中断实现软件重载,就可得到非常低的波特率。表8-2 列出了用定时器1可能得到的波特率。,25,26,表8-2定时器1产生的波特率,27,串行口工作之前,应对其进行初始化,主要是设置产生波特率的定时器1、串行口控制和中断控制。具体步骤如下: 确定T1的工作方式(编程TMOD寄存器); 计算T1的初值,装载TH1、TL1; 启动T1(编程TCON中的TR1位); 确定串行口控制(编程SCON寄存器); 串行口在中断方式工作时,要进行中断设置(编程IE、IP寄存器)。,28,(2)用定时器2产生波特率 定时器2波特率发生器模式和自动重装模式是类似的。在自动重装模式中,TH2的溢出是由软

12、件预置的在寄存器RCAP2H和RCAP2L的16位值装入定时器2。 模式1和模式3的波特率取决于定时器2的溢出率,如下式所示:,29,定时器2作为定时器运行和波特率发生器略有区别:作为定时器运行时,计时单位为机器周期(一个机器周期=12个时钟周期),而作为波特率发生器的计时单位则是状态周期(一个状态周期=2个振荡周期)。因而模式1和模式3的波特率也可由下式给出:,说明1:在作为波特率发生器时,TH2的溢出并不置位TF2,也不产生中断。因而定时器2作为波特率发生器时不需要禁止定时器2中断。 说明2:如果EXEN2被置位,引脚T2EX上从1到0的跳变将置位EXF2,但不会导致重装。因此,定时器2作

13、为波特率发生器时,T2EX可作为扩展外部中断。 说明3:定时器2在运行中,不要试图读或写TH2(或TL2)。可以读寄存器RCAP,但不能写RCAP,因为这可能导致写操作和重装操作重叠而导致错误,用户应该在对定时器2操作前关闭定时器2。,30,31,8.1.4多个单片机之间的通信,1.多机通讯控制位(SCON中的SM2) 要保证主机与所选择的从机实现可靠地通讯,必须保证串口具有识别功能。SCON中的SM2位就是满足这一条件而设置的多机通讯控制位。 若SM2=1,在串行口以模式2(或模式3)接收时,表示置多机通讯功能位,这时有两种可能情况: 第一种情况:接收到的第9位数据为1时,数据才装入SBUF

14、,并置中断标志RI=1向CPU发出中断请求; 第二种情况:接收到的第9位数据为0时,则不产生中断标志,信息将抛弃。,32,若SM2=0,则接收的第9位数据不论是0还是1,都产生RI=1中断标志,接收到的数据装入SBUF中。,2.多机通讯工作过程 (1)从机串行口编程为模式2或模式3接收,且置“1”SM2和REN位; (2)主机先将从机地址发给各从机, 主机发出的地址信息的第9位为1,各从机接收到的第9位信息RB8为1,且由于SM2=1,则置“1” RI,各从机响应中断,执行中断程序。在中断服务子程序中,判主机送来的地址是否和本机地址相符合,相符则该从机清“0”SM2位,准备接收主机的数据或命令

15、;若不符,则保持SM2=1状态。,33,(3)接着主机发送数据帧,此时各从机串行口接收到的RB8=0,只有地址相符合的从机系统(即已清“0”SM2位的从机)才能激活RI,从而进入中断,在中断程序中接收主机的数据(或命令); 其它的从机因SM21,又RB8=0不激活中断标志RI,不能进入中断,接收的数据丢失。,34,图8-7 多机系统示意图,3.多机通信举例,从机的地址分别为00H,01H和02H,从机系统由初始化程序(或相关处理程序)将串行口编程为模式2或模式3接收,即9位异步通讯方式,且置“1” SM2和REN,允许串行口中断。在主机和某一个从机通讯之前,先将从机地址发送给各个从机系统,接着

16、才传送数据或命令。主机发出的地址信息的第9位为1,数据(包括命令)信息的第9位为0。 图8-7的多机系统是主从式,由主机控制处理器之间的通讯,从机和从机之间的通讯只能经主机才能实现。,35,36,8.2 8051和RS-232-C标准总线的通信接口 8.2.1 RS-232-C接口引脚描述,RS-232-C标准规定接口有25根连线,D型插头和插座,采用25芯引脚或9芯引脚的连接器,RS-232-C标准接口如图8-8所示:,图8-8 RS-232-C标准接口图,虽然RS-232-C标准接口定义了25条连线,但通常只有以下9个信号经常使用,其对应关系如表8-3所示。,37,表8-3 RS-232-C标准接口引脚功能(DB9/DB25),38,8.2.2 RS-232-C接口的具体规定,RS-232-C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(Recommend Standard)代表推荐标准,232是标识号,C代表

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号