单片机原理与应用-基于汇编、c51及混合编程第8章串行口通信

上传人:简****9 文档编号:98313209 上传时间:2019-09-10 格式:PPT 页数:96 大小:2MB
返回 下载 相关 举报
单片机原理与应用-基于汇编、c51及混合编程第8章串行口通信_第1页
第1页 / 共96页
单片机原理与应用-基于汇编、c51及混合编程第8章串行口通信_第2页
第2页 / 共96页
单片机原理与应用-基于汇编、c51及混合编程第8章串行口通信_第3页
第3页 / 共96页
单片机原理与应用-基于汇编、c51及混合编程第8章串行口通信_第4页
第4页 / 共96页
单片机原理与应用-基于汇编、c51及混合编程第8章串行口通信_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《单片机原理与应用-基于汇编、c51及混合编程第8章串行口通信》由会员分享,可在线阅读,更多相关《单片机原理与应用-基于汇编、c51及混合编程第8章串行口通信(96页珍藏版)》请在金锄头文库上搜索。

1、1,第8章 串行口通信,2,主要内容,8.1 串行通信的概念 8.2 串行口1的相关寄存器 8.3 串行口1的工作方式 8.4串行口1通信中波特率的设置 8.5 串行口2的相关寄存器 8.6串行口2的工作方式 8.7 串行口的应用 8.8 RS-232串行标准 8.9 RS485串行接口 8.10 SPI串行接口概述 8.11 SPI串行数据通信 8.12 SPI接口的应用,3,8.1 串行通信的概念,串行通信是按一位一位的顺序传送数据,串行通信方式又分为同步通信和异步通信两种。,同步通信:发送方和接收方用同一个时钟控制信号,4,8.1 串行通信的概念,异步通信是一种将数据以一个字符为单位进行

2、传送的通信方式,传送一个字符又称为一帧信息,发送与接收之间无时钟信号控制,发送和接收的速率要求相同,起始位:位于一帧数据的开头,逻辑“0”电平信号,用来通知接收设备开始接收一帧信息,数据位:紧跟起始位之后的是数据位,对51内核单片机来说,低位在前,高位在后,第9位:常用于对串行通信数据进行奇偶校验,停止位:逻辑“1”电平信号,应大于或等于一个位数据的时间。在发送完一帧信息后,用于发送的数据线一直处于高电平状态,等待再次发送,5,8.1 串行通信的概念,串行通信可分为单工、半双工和全双工3种方式,单工方式只有一根数据线,数据只能按照一个固定的方向传送,半双工方式的数据可以由甲向乙传送,也可以由乙

3、向甲传送,但是不能在两个方向上同时传送,全双工方式可以在同一时刻实现双向传送。,在串行通信中,用波特率衡量通信速度的快慢。波特率是指每秒钟传送的二进制数的位数,单位:位/秒(bps) 字节/秒(Bps),波特率(bps)=1个字符的二进制位数 Bps,6,8.1 串行通信的概念,STC12C5A60S2单片机具有2个UART工作方式的串行口,接收缓冲器SBUF 地址:99H,发送缓冲器SBUF 地址:99H,串行口1,接收缓冲器S2BUF 地址:9BH,发送缓冲器S2BUF 地址:9BH,串行口2,7,8.2 串行口1的相关寄存器,STC12C5A60S2单片机的串行口1 与8个特殊功能寄存器

4、相关,串行控制寄存器SCON 电源控制寄存器PCON 辅助寄存器AUXR 独立波特率发生器寄存器BRT 唤醒控制寄存器WAKE_CLKO 中断寄存器IE、IP、IPH。,8,8.2 串行口1的相关寄存器,1.串行控制寄存器SCON,地址为98H,可进行位寻址,SM0/FE:寄存器PCON中的SMOD0位为1时,该位用于帧错误检测(FE)。当检测到停止位无效时,硬件会将该位置1,必须由软件清零,SMOD0位为0时,SM0、SM1两位一起确定串行口1的工作方式,SM2:在方式0中,该位必须为0;在方式2和方式3中,该位为1时,只有接收到的第9位数据RB8位为1时,接收才能有效。在方式1中,该位为1

5、时,只有正确接收到停止位时,接收才能有效,REN:允许串行接收控制位。当该位为1时,允许接收信息;当该位为0时,禁止接收信息。,TB8:发送数据的第9位,RB8:接收数据的第9位,TI:串行口1发送中断请求标志位,RI:串行口1接收中断请求标志位,9,8.2 串行口1的相关寄存器,2.电源控制寄存器PCON,地址为87H,SMOD:波特率倍频选择位。该位置1,串行口1工作在方式1、2、3时波特率加倍; 该位为0,各工作方式的波特率不加倍,SMOD0:帧错误检测有效控制位。 该位置1,SCON寄存器中的SM0/FE位用于FE功能; 该位为0,SCON寄存器中的SM0/FE位用于方式选择。,10,

6、8.2 串行口1的相关寄存器,3.辅助寄存器AUXR,地址为8EH,UART_M0x6:串行口1方式0的通信速度控制位。 UART_M0x6=0,方式0的波特率为系统时钟频率的12分频; UART_M0x6=1,方式0的波特率为fosc/2。,BRTR:独立波特率发生器运行控制位。 BRTR=0时,不允许独立波特率发生器工作; BRTR=1时,允许独立波特率发生器工作,BRTx12:独立波特率发生器计数控制位。 BRTx12=0时,独立波特率发生器的计数时钟源为系统时钟频率fosc的12分频; BRTx12=1,独立波特率发生器的计数时钟源为系统时钟频率。,S1BRS:串行口1的波特率发生器选

7、择位。 S1BRS=0时,选择定时/计数器T1作为串行口1的波特率发生器; S1BRS=1时,选择独立波特率发生器作为串行口1的波特率发生器,11,8.2 串行口1的相关寄存器,4.独立波特率发生器寄存器BRT,地址为9CH,独立波特率发生器是专门用于控制串行通信速度的定时器,与定时/计数器T1工作于方式2的情况相似。BRT用于保存重装时间常数的一个8位寄存器,注意: 串行口2:只能使用独立波特率发生器控制发送与接收, 串行口1:既可以选择T1作为波特率发生器,也可以选择独立波特率发生器。 串行口1和串行口2不能同时使用独立波特率发生器,,12,8.2 串行口1的相关寄存器,5. 唤醒控制寄存

8、器WAKE_CLKO,地址为8FH,RXD_PIN_IE=0时,禁止P3.0/RxD引脚的下降沿置位RI,也禁止RxD引脚唤醒掉电模式; RXD_PIN_IE=1时,允许P3.0/RxD引脚的下降沿将RI置1,并且RxD引脚的下降沿能够唤醒掉电模式,13,8.3 串行口1的工作方式,8.3.1方式0,串行口1工作在方式0,作同步移位寄存器使用,UART_M0x6:串行口1方式0的通信速度控制位。 UART_M0x6=0,方式0的波特率为系统时钟频率的12分频; UART_M0x6=1,方式0的波特率为fosc/2。,14,8.3 串行口1的工作方式,8.3.1方式0,串行口数据由RxD引脚输入

9、或输出, 同步移位脉冲通过TxD引脚输出, 发送、接收均为8位数据,发送过程:,在TI=0的条件下, 执行MOV SBUF,A指令,启动发送,注意: 发送顺序:低位在前,高位在后 发送完一帧数据后,由硬件将发送中断标志位TI置1,向CPU发出中断请求。 若要再次发送数据,必须先通过程序将TI位清0。,15,8.3 串行口1的工作方式,8.3.1方式0,串行口数据由RxD引脚输入或输出, 同步移位脉冲通过TxD引脚输出, 发送、接收均为8位数据,接收过程:,在RI=0的条件下, 接收允许控制位REN置1时,处于接收状态 接收完一帧数据后,硬件将接收到的数据存入接收缓冲器SBUF,并将中断标志位R

10、I置1,向CPU发出中断请求,注意: 接收顺序:先收到的是低位,后收到的是高位 若要继续接收数据,必须先通过程序将RI位清0。,16,8.3 串行口1的工作方式,8.3.2方式1,8位数据,低位在前高位在后,发送过程:,在TI为0的条件下,执行将数据写入SBUF的指令时,启动发送过程。在内部移位脉冲的控制下,TxD引脚首先发送起始位、8位数据、停止位,发送完毕后TI置1,向CPU发出中断请求,17,8.3 串行口1的工作方式,8.3.2方式1,接收过程:,在RI为0、接收允许控制位REN被置1的条件下,CPU处于接收状态。当硬件检测到RxD引脚由高电平变为低电平时,开始接收一帧数据,并同步波特

11、率发生器。,18,8.3 串行口1的工作方式,8.3.2方式1,接收过程:,(1)RI=0 (2)SM2=0或接收到的停止位为1时 硬件自动将接收到的数据装入接收缓冲器SBUF,同时将停止位写入RB8,置中断标志位RI为1,向CPU提出中断请求。,若不满足两个条件,接收到的数据无法装入接收缓冲器SBUF,数据丢失。,注意:无论满足这两个条件与否,接收控制器将继续检测RxD引脚,接收下一帧数据,所以在接收的过程中,应及时清接收中断标志位RI,以免数据丢失,19,8.3 串行口1的工作方式,8.3.3方式2 、方式3,方式2 与方式3唯一的区别在于方式2的波特率是固定的,而方式3的波特率与波特率发

12、生器有关,方式1与方式3的区别是:方式1是8位的串行异步通信、 方式3是9位串行异步通信,20,8.3 串行口1的工作方式,8.3.3方式2 、方式3,发送过程:,将发送中断标志位TI清0,并通过位传送指令将第9位数据写入TB8中,然后执行MOV SBUF,A指令,启动发送过程。一帧数据发送完毕,硬件将发送中断标志位TI置1,21,8.3 串行口1的工作方式,8.3.3方式2 、方式3,接收过程:,允许控制位REN被置1后处于接收状态。接收到的第9位(而不是停止位)装入到RB8位中,注意:在方式2和方式3中,SM2为1时,只有接收到的第9位数据RB8位为1时,接收才能有效,22,8.3 串行口

13、1的工作方式,8.3.4 多机通信,在多机通信中方式2和方式3更适合主从通信,主机的SM2位清0,从机的SM2位置1,通信过程举例,(1) 主机向从机发送某一从机的地址,发送前将TB8位置1,然后进入接收状态,(2) 各从机接收到主机送出的地址信息后, 与本机地址相符时,表示被选中,将本机地址回发给主机(TB8位为0),执行CLR SM2指令。 未被选中的从机,SM2位依然为1,接收不到TB8位为0的数据信息。,23,8.3 串行口1的工作方式,8.3.4 多机通信,在多机通信中方式2和方式3更适合主从通信,主机的SM2位清0,从机的SM2位置1,通信过程举例,(3)主机收到从机回发的地址后,

14、检验是否与主机先前发送的地址一致,若不同,说明发送过程出现错误,再回到第(1)步,若相同,可以发出指令或数据信息(TB8位为0)。,(4)从机正确地接收到主机所发送到的指令或数据信息后,回发先前约定好的应答信号给主机,同时将SM2位重新置1,以便从机能够接收主机再次发送地址信息,本次主机与从机通信过程结束。,理论上,一个主机可以与256个从机通信,但由于每个单片机引脚的输入阻抗及总线上阻抗的存在,总线上所允许并联从机的数量要受到限制。如果主机与过多的从机连接时,波特率应设置的低一些以减少通信错误,24,8.4串行口1通信中波特率的设置,(1)方式0,辅助寄存器AUXR,UART_M0x6=0时

15、,波特率是fosc/12,UART_M0x6=1时,波特率是fosc/2,25,8.4串行口1通信中波特率的设置,(2)方式2,电源控制寄存器PCON,波特率=(2SMOD/64) fosc,SMOD=0时, 波特率= fosc/64,当SMOD=1时, 波特率=fosc/32,26,8.4串行口1通信中波特率的设置,(3)方式1和方式3,波特率=2SMOD (定时/计数器T1的溢出率 /32),SMOD=0时, 波特率= T1的溢出率/32,当SMOD=1时, 波特率= T1的溢出率/16,T1x12=0时, T1的溢出率= (fosc/12)/( 256 - THl),T1x12=1时,

16、T1的溢出率= fosc/( 256 - TH1),27,8.4串行口1通信中波特率的设置,(3)方式1和方式3,波特率=2SMOD (独立波特率发生器的溢出率 /32),BRTx12 = 0时,独立波特率发生器的溢出率=(fosc/12)/( 256-BRT ),BRTx12 = 1时,独立波特率发生器的溢出率=fosc/( 256-BRT),28,8.4串行口1通信中波特率的设置,(3)方式1和方式3,T1x12=0,T1工作在方式2时,几种波特率所对应T1的重装初值,29,8.5 串行口2的相关寄存器,与串行口2相关的寄存器有:,1.串行口2的控制寄存器S2CON,地址为9AH,不能位寻址,2.辅助寄存器AUXR波特率加倍控制位S2SMOD,S2SMOD位为0时, 串行口2的波特率不加倍,S2SMOD位为1时, 串行口2的波特率加倍,30,8.5 串行口2的相关寄存器,与串行口2相关的寄存器有:,3.辅助寄存器AUXR1,4.独立波特率发生器寄存器BRT,5.中断寄存器IE、IE2、IP2、IP2H,S2_P4位为0时, TxD2为P1.3,RxD2为P1.

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

当前位置:首页 > 商业/管理/HR > 管理学资料

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