1、5.1 5.1 中断中断5.1.1 5.1.1 概述概述一、中断的概念一、中断的概念CPU暂停现行程序的运行而转为意外事件或特殊请求服务的过程叫做中断。暂停现行程序的运行而转为意外事件或特殊请求服务的过程叫做中断。CPU中止当前程序的执行,而去执行相应的处理程序,待处理结束后,再回来继续执行被中止当前程序的执行,而去执行相应的处理程序,待处理结束后,再回来继续执行被中止了的原程序。中止了的原程序。中断之后所执行的处理程序通常称之为中断服务程序或中断处理子程序,原来运中断之后所执行的处理程序通常称之为中断服务程序或中断处理子程序,原来运行的程序称为主程序。主程序被断开的存储器位置称为断点地址,它
2、是行的程序称为主程序。主程序被断开的存储器位置称为断点地址,它是PC的当前值。的当前值。调用中断服务程序的过程类似于调用子程序,主要区别在于:调用子程序指令在调用中断服务程序的过程类似于调用子程序,主要区别在于:调用子程序指令在程序中是事先安排好的,可以确定调用时间;而何时调用中断服务程序事先却不知道。程序中是事先安排好的,可以确定调用时间;而何时调用中断服务程序事先却不知道。因为中断的发生是由外部或内部随机事件决定的,其时刻是在程序设计时是无法预知因为中断的发生是由外部或内部随机事件决定的,其时刻是在程序设计时是无法预知的。另外子程序的存放位置由用户设定,而每个中断服务程序的存放位置是固定的
3、,的。另外子程序的存放位置由用户设定,而每个中断服务程序的存放位置是固定的,称中断矢量,中断时自动转入中断服务程序的执行,相当由硬件调用子程序。称中断矢量,中断时自动转入中断服务程序的执行,相当由硬件调用子程序。二、引入中断的优点二、引入中断的优点1、分时操作、分时操作2、实现实时处理、实现实时处理3、故障处理、故障处理5.1 5.1 中断中断5.1.1 5.1.1 概述概述三、中断源三、中断源引发中断的原因或向引发中断的原因或向CPU发出中断请求的来源称为中断源。通常的中断源有:外发出中断请求的来源称为中断源。通常的中断源有:外设、定时时钟、故障源等。设、定时时钟、故障源等。8051有有3类
4、共类共5个中断源:个中断源:外部中断源外部中断源2个:外部中断个:外部中断0、外部中断、外部中断1,它们的中断请求信号分别由引脚,它们的中断请求信号分别由引脚(P3.2)和()和(P3.3)从外部引入。中断矢量表中存储器位置为)从外部引入。中断矢量表中存储器位置为0003H和和0013H;定时定时/计数中断源计数中断源2个:定时器个:定时器T0和定时器和定时器T1的中断请求的中断请求TF0(TCON.5)、)、TF1(TCON.7)。计数器发生计数溢出时从内部产生。在中断向量表中固定存放在)。计数器发生计数溢出时从内部产生。在中断向量表中固定存放在000BH和和001BH;串行中断源串行中断源
5、1个。发送或接收中断请求个。发送或接收中断请求TI(SCON.1)或)或RI(SCON.0)。当串行)。当串行口发送或接收一帧数据时,内部产生中断请求。这一中断在中断矢量表中的口发送或接收一帧数据时,内部产生中断请求。这一中断在中断矢量表中的0023H。5.1.2 80515.1.2 8051中断处理步骤中断处理步骤 CPU须在执行完当前指令后,将程序计数器须在执行完当前指令后,将程序计数器PC的内容压入堆栈,保护断点地址;的内容压入堆栈,保护断点地址;根据不同的中断源,程序转向相应中断矢量表;根据不同的中断源,程序转向相应中断矢量表;CPU从中断中断矢量表得到中断服务程序的入口地址,去执行中
6、断服务程序,直从中断中断矢量表得到中断服务程序的入口地址,去执行中断服务程序,直到返回指令到返回指令“RETI”为止;为止;中断返回指令从堆栈把断点地址弹出,送回到程序计数器中断返回指令从堆栈把断点地址弹出,送回到程序计数器PC中去,继续执行原来中去,继续执行原来的程序。的程序。5.1 5.1 中断中断5.1.3 80515.1.3 8051中断控制中断控制用户通过向控制寄存器写入不同的内容可以对各中断进行控制。向控制寄存器写用户通过向控制寄存器写入不同的内容可以对各中断进行控制。向控制寄存器写入的内容称控制字。写入控制字的过程称初始化。那些可以通过初始化写入控制字的入的内容称控制字。写入控制
7、字的过程称初始化。那些可以通过初始化写入控制字的端口称控制寄存器。端口称控制寄存器。一、中断请求标志与请求方式控制一、中断请求标志与请求方式控制8051单片机的单片机的5个中断源发出中断时产生的中断标志,分别存放在定时控制寄存器个中断源发出中断时产生的中断标志,分别存放在定时控制寄存器TCON和串行口控制寄存器和串行口控制寄存器SCON的各位中,作为有中断申请尚未处理或正在处理的记的各位中,作为有中断申请尚未处理或正在处理的记录,处理完毕自动或通过软件清除。录,处理完毕自动或通过软件清除。1、定时器、定时器/计数器控制寄存器计数器控制寄存器TCON(Timer Control)5.1 5.1
8、中断中断5.1.3 80515.1.3 8051中断控制中断控制一、中断请求标志与请求方式控制一、中断请求标志与请求方式控制2、串行口控制寄存器、串行口控制寄存器SCON(Serial Control)寄存器地址为寄存器地址为98H,可位寻址,位地址为,可位寻址,位地址为9FH98H。其中与中断有关的标志位共有两位:其中与中断有关的标志位共有两位:TI串行口发送中断请求标志位。在方式串行口发送中断请求标志位。在方式1下,当发送完一帧数据后,在停止位下,当发送完一帧数据后,在停止位发送前由硬件置发送前由硬件置1;在转向中断服务程序后,用软件清;在转向中断服务程序后,用软件清0。串行口发送查询状态
9、位。当发送完一帧数据后,在停止位发送前由硬件置串行口发送查询状态位。当发送完一帧数据后,在停止位发送前由硬件置1;软件;软件清清0。RI串行口接收中断请求标志位。在方式串行口接收中断请求标志位。在方式1下,当接收完一帧数据后,在停止位下,当接收完一帧数据后,在停止位接收后由硬件置接收后由硬件置1;在转向中断服务程序后,用软件清;在转向中断服务程序后,用软件清0。串行口接收查询状态位,当接收完一帧数据后,在停止位接收后由硬件置串行口接收查询状态位,当接收完一帧数据后,在停止位接收后由硬件置1;软件;软件清清0。串行中断请求由串行中断请求由TI和和RI的逻辑或得到。就是说,无论是发送标志还是接收标
10、志,都的逻辑或得到。就是说,无论是发送标志还是接收标志,都会产生串行中断请求。会产生串行中断请求。5.1 5.1 中断中断5.1.3 80515.1.3 8051中断控制中断控制二、中断允许控制寄存器二、中断允许控制寄存器IEIE(Interrupt EnableInterrupt Enable)寄存器地址寄存器地址A8H,可位寻址,位地址,可位寻址,位地址A8HAFH。功能:中断请求允许或禁止。其中与中断有关的控制位共功能:中断请求允许或禁止。其中与中断有关的控制位共6位位8051单片机通过单片机通过IE对中断的开放和关闭实行两级控制,就是以对中断的开放和关闭实行两级控制,就是以EA位为总控
11、制位,位为总控制位,各中断源的中断允许为分控制位。它们为串联控制,即只有当总控制位和分控制位都各中断源的中断允许为分控制位。它们为串联控制,即只有当总控制位和分控制位都为为“1”时,对应中断源才被开放。时,对应中断源才被开放。5.1 5.1 中断中断5.1.3 80515.1.3 8051中断控制中断控制三、中断优先级控制寄存器三、中断优先级控制寄存器IPIP(Interrupt PriorityInterrupt Priority)1、中断优先级、中断优先级多个中断源排队,多个中断源排队,CPU按照其要求的轻重缓急处理,称中断优先级。按照其要求的轻重缓急处理,称中断优先级。2、中断优先级控制
12、原则、中断优先级控制原则(1)不同级的中断源同时申请中断时不同级的中断源同时申请中断时先高后低;先高后低;(2)同级的中断源同时申请中断时同级的中断源同时申请中断时事先规定;事先规定;(3)处理低级中断又收到高级中断请求时处理低级中断又收到高级中断请求时停低转高;停低转高;(4)处理高级中断又收到低级中断请求时处理高级中断又收到低级中断请求时高不理低。高不理低。3、中断优先级寄存器、中断优先级寄存器IP(Interrupt Priority)8051单片机中断系统具有高、低两个优先级别,只允许两层中断嵌套。单片机中断系统具有高、低两个优先级别,只允许两层中断嵌套。5个中断源个中断源的优先级别由
13、中断优先级控制寄存器的优先级别由中断优先级控制寄存器IP控制。控制。IP寄存器地址为寄存器地址为B8H,可位寻址,位地址,可位寻址,位地址为为B8HBFH。5.1 5.1 中断中断5.1.3 80515.1.3 8051中断控制中断控制三、中断优先级控制寄存器三、中断优先级控制寄存器IPIP(Interrupt PriorityInterrupt Priority)当该位为当该位为0时,其优先级为低;当该位为时,其优先级为低;当该位为1时,其优先级为高。系统复位后,时,其优先级为高。系统复位后,IP000000B,将所有中断源设置为低优先级中断。此时,将所有中断源设置为低优先级中断。此时,CP
14、U对对5个中断源的查询次个中断源的查询次序为:序为:例如,如果将例如,如果将IP中设置为中设置为12H,则,则PS和和PT0均为高优先级中断,但当这两个中断源均为高优先级中断,但当这两个中断源同时发出中断申请时,同时发出中断申请时,CPU仍然先响应自然优先级高的仍然先响应自然优先级高的PT0的中断申请。的中断申请。5.1.3 80515.1.3 8051中断控制中断控制例例5-1 要使用外部中断要使用外部中断0,脉冲触发,高优先级,初始化程序如下:,脉冲触发,高优先级,初始化程序如下:ORG 0000H AJMP MAIN;转至主程序执行;转至主程序执行 ORG 0003H AJMP EINT
15、0;转至中断服务程序执行;转至中断服务程序执行 ORG 0030HMAIN:MOVSP,#60H;建立堆栈指针;建立堆栈指针 SETBIT0;设外中断;设外中断0为脉冲触发方式为脉冲触发方式 SETBPX0 ;设外中断;设外中断0为高优先级为高优先级 SETBEA;开中断;开中断 SETBEX0;允许外中断;允许外中断0中断中断 ORG 0100HEINT0:RETI END5.1.4 80515.1.4 8051中断程序的设计及应用中断程序的设计及应用一、中断初始化程序设计一、中断初始化程序设计用户在使用中断前需要先通过程序设置以上寄存器以确定:中断触发方式、中断用户在使用中断前需要先通过程
16、序设置以上寄存器以确定:中断触发方式、中断开放、中断允许、中断优先级等,这被称为中断初始化。同时要对中断矢量表进行开放、中断允许、中断优先级等,这被称为中断初始化。同时要对中断矢量表进行安排。并设置堆栈指针安排。并设置堆栈指针SP的初值。的初值。二、中断服务程序设计二、中断服务程序设计1、中断矢量的第一句常为一跳转指令,转移到中断处理程序执行;、中断矢量的第一句常为一跳转指令,转移到中断处理程序执行;2、现场保护在中断处理程序的前面,现场恢复必须在中断服务程序的最后段,、现场保护在中断处理程序的前面,现场恢复必须在中断服务程序的最后段,常使用堆栈操作进行,注意先进后出的顺序。因为中断发生的时刻
17、是随机的,中断常使用堆栈操作进行,注意先进后出的顺序。因为中断发生的时刻是随机的,中断处理程序中使用到的寄存器或存储器都应尽量进行保护;处理程序中使用到的寄存器或存储器都应尽量进行保护;3、中断处理程序最后一条指令必须是中断返回指令、中断处理程序最后一条指令必须是中断返回指令RETI。例例5-3 采用外部中断实现。按奇数次按钮发光二极管亮,按偶数次按钮发光二极管灭,采用外部中断实现。按奇数次按钮发光二极管亮,按偶数次按钮发光二极管灭,如此反复。如此反复。解:解:选择脉冲触发方式:选择脉冲触发方式:ORG0000H LJMPMAIN ORG0003H LJMPISR_X0 ORG0200HMAI
18、N:SETBIT0;脉冲触发方式;脉冲触发方式 SETBEA;开中断;开中断 SETBEX0;允许外部中断;允许外部中断0中断中断 SJMP$;等待中断;等待中断 ORG0300HISR_X0:CPLP1.0;控制发光二极管开闭;控制发光二极管开闭 RETI END5.2 5.2 定时器定时器/计数器计数器 5.2.1 5.2.1 概述概述一、定时器一、定时器/计数器的基本功能计数器的基本功能1、定时功能、定时功能利用计算机定时可分软件和硬件两类。利用计算机定时可分软件和硬件两类。软件定时是靠执行一个循环程序以获得时间的延迟。软件定时的特点是时间精确,软件定时是靠执行一个循环程序以获得时间的延
19、迟。软件定时的特点是时间精确,且不需外加硬件电路。但软件定时要占用且不需外加硬件电路。但软件定时要占用CPU,增加了,增加了CPU的开销。硬件定时可采用的开销。硬件定时可采用专门的定时器芯片完成。软件编程的方法是利用系统时钟构成时间基准,对其计数就专门的定时器芯片完成。软件编程的方法是利用系统时钟构成时间基准,对其计数就构成一段延时。计数值通过程序设定,改变计数值也就改变了定时时间。构成一段延时。计数值通过程序设定,改变计数值也就改变了定时时间。2、计数功能、计数功能由于采用计数方法实现定时,一般可编程定时器都兼有计数功能,可对外部脉冲进由于采用计数方法实现定时,一般可编程定时器都兼有计数功能
20、,可对外部脉冲进行计数。行计数。二、定时器二、定时器/计数器的工作原理计数器的工作原理定时器定时器/计数器实质上是一个计数器。计数器实质上是一个计数器。8051是加是加1计数,对计数器设置计数初值,发计数,对计数器设置计数初值,发启动计数命令,计数器对计数脉冲计数,每来一个计数脉冲,其内容加启动计数命令,计数器对计数脉冲计数,每来一个计数脉冲,其内容加1,当二进制计,当二进制计数值达到全数值达到全1后,再来一个计数脉冲溢出,表示计数工作完成。后,再来一个计数脉冲溢出,表示计数工作完成。如加如加1计数器的位数是计数器的位数是8位,最大计数值是位,最大计数值是28256,每次计数到,每次计数到25
21、6就会产生溢出。就会产生溢出。如灌装生产线中需要包装一打如灌装生产线中需要包装一打12瓶饮料,要求每计数到瓶饮料,要求每计数到12产生溢出。因此加产生溢出。因此加1计数值需计数值需要预置,即计数不是从要预置,即计数不是从0开始,而是从一个固定值开始。如果要计数开始,而是从一个固定值开始。如果要计数12,预先在加,预先在加1计计数器里放进数器里放进244,加,加12个脉冲就到了个脉冲就到了256溢出,这个溢出,这个244被称为预置值。被称为预置值。三、三、80518051定时器定时器/计数器的结构计数器的结构定时器定时器/计数器的核心是两个计数器的核心是两个16位的加位的加1计数器计数器T0和和
22、T1,分别由两个,分别由两个8位专用寄存器位专用寄存器构成,即:构成,即:T0由由TH0和和TL0构成;构成;T1由由TH1和和TL1构成。加构成。加1计数器的工作方式是可编程计数器的工作方式是可编程的,其工作方式由一个的,其工作方式由一个8位的定时器方式寄存器位的定时器方式寄存器TMOD和一个和一个8位的定时器控制寄存器位的定时器控制寄存器TCON的内容确定。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。加的内容确定。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。加1计计数器的初值和工作方式控制字是由数器的初值和工作方式控制字是由CPU通过指令经数据总线送达的。当定时器通过指
23、令经数据总线送达的。当定时器/计数器工计数器工作在计数方式时,外部事件通过引脚作在计数方式时,外部事件通过引脚T0(P3.4)和)和T1(P3.5)输入。两个定时器)输入。两个定时器/计数计数器都具有定时和计数功能。器都具有定时和计数功能。5.2.1 5.2.1 概述概述一、工作方式一、工作方式1 15.2.2 5.2.2 定时器定时器/计数器的工作方式计数器的工作方式二、工作方式二、工作方式2 25.2.2 5.2.2 定时器定时器/计数器的工作方式计数器的工作方式工作方式工作方式2具有自动加载功能,即自动加载计数初值,因此也可以说方式具有自动加载功能,即自动加载计数初值,因此也可以说方式2
24、是自动是自动重装工作方式。在这种方式下,把重装工作方式。在这种方式下,把16为计数器分为两部分,即为计数器分为两部分,即TL1用作用作8位计数器,位计数器,TH1用以保持初值。在程序初始化时,用以保持初值。在程序初始化时,TL1和和TH1由软件赋予相同的初值。一旦由软件赋予相同的初值。一旦TL1计计数溢出,则置位数溢出,则置位TF1,并将,并将TH1中的初值再装入中的初值再装入TL1,继续计数,循环重复不止。,继续计数,循环重复不止。这种工作方式可省去用户软件中重装常数的程序,并可产生相当精度的定时时间,这种工作方式可省去用户软件中重装常数的程序,并可产生相当精度的定时时间,特别适用于作串行口
25、波特率发生器。但这种工作方式是特别适用于作串行口波特率发生器。但这种工作方式是8位计数结构,计数值有限,最位计数结构,计数值有限,最大只能到大只能到256次。次。5.2.3 5.2.3 定时器定时器/计数器的控制寄存器计数器的控制寄存器 定时器定时器/计数器是一种可编程器件,所以开始工作之前,计数器是一种可编程器件,所以开始工作之前,CPU必须将一些命令必须将一些命令(称为控制字)写入定时器(称为控制字)写入定时器/计数器。将控制字写入定时器计数器。将控制字写入定时器/计数器的过程叫定时器计数器的过程叫定时器/计计数器的初始化。在初始化程序中,要将工作方式控制字写入方式寄存器数器的初始化。在初
26、始化程序中,要将工作方式控制字写入方式寄存器TMOD,工作,工作状态控制字(或相关位)写入控制寄存器状态控制字(或相关位)写入控制寄存器TCON,并在需要时通过中断优先级控制寄,并在需要时通过中断优先级控制寄存器存器IP确定中断优先级。确定中断优先级。一、定时器一、定时器/计数器工作方式控制寄存器计数器工作方式控制寄存器TMODTMOD(Timer ModeTimer Mode)T0和和T1使用同一寄存器使用同一寄存器TMOD来设定不同的操作方式。来设定不同的操作方式。TMOD是是8位的寄存器,其位的寄存器,其低低4位供位供T0使用,其高使用,其高4位留作位留作T1使用。字节地址为使用。字节地
27、址为89H。5.2.3 5.2.3 定时器定时器/计数器的控制寄存器计数器的控制寄存器5.2.4 5.2.4 定时器定时器/计数器初始化计数器初始化(1)确定工作方式:对)确定工作方式:对TMOD进行赋值;进行赋值;(2)预置定时或计数的初值:直接将初始值写入)预置定时或计数的初值:直接将初始值写入TH0、TL0或或TH1、TL1;(3)根据需要允许定时器)根据需要允许定时器/计数器的中断:直接对计数器的中断:直接对IE对应位赋值;对应位赋值;(4)启动定时器)启动定时器/计数器:若规定用软件启动,则可把计数器:若规定用软件启动,则可把TR0或或TR1置置1;若规定由;若规定由外中断引脚电平启
28、动,则需给外引脚加启动电平。当实现了启动要求之后,定时器外中断引脚电平启动,则需给外引脚加启动电平。当实现了启动要求之后,定时器/计计数器即按规定的工作方式和初值开始计数或定时。数器即按规定的工作方式和初值开始计数或定时。5.2.5 5.2.5 应用举例应用举例5.2.5 5.2.5 应用举例应用举例指令“JBC TF1,LOOP”的作用等价于“JB TF1,LOOP”、“LOOP:CLR TF1”5.2.5 5.2.5 应用举例应用举例P3.3启动 T1停止 T1TR15.2.5 5.2.5 应用举例应用举例5.3 5.3 串行接口串行接口5.3.1 5.3.1 串行通信基础知识串行通信基础
29、知识一、串行通信与并行通信一、串行通信与并行通信计算机与外界的信息交换称为数据通信。数据通信方式有两种:串行通信与并行通计算机与外界的信息交换称为数据通信。数据通信方式有两种:串行通信与并行通信。信。并行通信中,一个并行数据占多少位二进制数,就要多少根传输线,即信息传输线并行通信中,一个并行数据占多少位二进制数,就要多少根传输线,即信息传输线的根数和传送的数据位数相等,数据所有位的传输同时进行,通信速度快。的根数和传送的数据位数相等,数据所有位的传输同时进行,通信速度快。串行通信的仅需一到两根传输线,逐位按顺序传送,故在长距离传输数据时比较经串行通信的仅需一到两根传输线,逐位按顺序传送,故在长
30、距离传输数据时比较经济,但由于它每次只能传送一位,所以传输速度较慢,适合于远距离传送。济,但由于它每次只能传送一位,所以传输速度较慢,适合于远距离传送。8051单片机既有并行通信又有串行通信,它的并行通信是由并行口实现的,同一单片机既有并行通信又有串行通信,它的并行通信是由并行口实现的,同一时刻输入或输出时刻输入或输出8位数据,串行通信是由串行口实现的,通过两机位数据,串行通信是由串行口实现的,通过两机RXD、TXD的对接实的对接实现。因为数据在主机内部是并行的,所以必须通过串行口的并行输入串行输出移位寄现。因为数据在主机内部是并行的,所以必须通过串行口的并行输入串行输出移位寄存器转化为串行数
31、据,然后才可能被发送;在接收端的串行口有一个串行输入并行输存器转化为串行数据,然后才可能被发送;在接收端的串行口有一个串行输入并行输出的移位寄存器,来接收串行数据且将其压缩成一个字节。出的移位寄存器,来接收串行数据且将其压缩成一个字节。5.3.1 5.3.1 串行通信基础知识串行通信基础知识二、串行通信传送方式二、串行通信传送方式串行通信中,数据自通信线上的传送方式有串行通信中,数据自通信线上的传送方式有3种:单工方式、半双工方式和全双工种:单工方式、半双工方式和全双工方式:方式:(1)单工方式()单工方式(Simplex):这种方式只允许数据按一个固定的方向传送;):这种方式只允许数据按一个
32、固定的方向传送;(2)半双工方式()半双工方式(Half-doplex):数据可以从):数据可以从A发送到发送到B,也可以由,也可以由B发送到发送到A。但但A、B之间只有一根传输线。因此同一时刻只能作一个方向的传送。其传送方向由收之间只有一根传输线。因此同一时刻只能作一个方向的传送。其传送方向由收发控制开关切换。平时一般让发控制开关切换。平时一般让A、B方都处于接收状态,以便能够随时响应对方的呼叫;方都处于接收状态,以便能够随时响应对方的呼叫;(3)全双工方式()全双工方式(Full-doplex):数据可同时在两个方向上传送。):数据可同时在两个方向上传送。8051单片机的串行通信是全双工方
33、式,可随时发送或接收数据。不管哪种形式的单片机的串行通信是全双工方式,可随时发送或接收数据。不管哪种形式的串行通信,在串行通信,在A、B之间均应有共地线。之间均应有共地线。5.3.1 5.3.1 串行通信基础知识串行通信基础知识5.3.2 80515.3.2 8051串行接口结构串行接口结构5.3.3 5.3.3 串行口控制寄存器串行口控制寄存器5.3.4 5.3.4 波特率的设计波特率的设计5.3.5 5.3.5 串行工作方式串行工作方式一、串行口工作方式一、串行口工作方式0 0把串行接口作为移位寄存器使用。其波特率是固定的,即一个机器周期移位一次,把串行接口作为移位寄存器使用。其波特率是固
34、定的,即一个机器周期移位一次,数据由数据由RXD端输出或输入,同时由端输出或输入,同时由TXD端输出同步移位脉冲信号。移位数据的发送和端输出同步移位脉冲信号。移位数据的发送和接收以一个字符的接收以一个字符的8位为一组,低位在前,高位在后。位为一组,低位在前,高位在后。1 1、方式、方式0 0发送发送串行口必须与串行口必须与“串入并出串入并出”的串并移位寄存器,如的串并移位寄存器,如74HC164,配合使用才能将,配合使用才能将串行输出转化为并行输出。在移位时钟串行输出转化为并行输出。在移位时钟CK的控制下,的控制下,SBUF内数据逐位由内数据逐位由RXD端输出,端输出,完成据传输并锁存在移位寄
35、存器中。数据传输结束完成据传输并锁存在移位寄存器中。数据传输结束SCON寄存器的寄存器的TI位自动置位自动置1。2 2、方式、方式0 0接收接收串行口须与串行口须与“并入串出并入串出”的并串移位寄存器配合使用。将并行输入的字节数据锁的并串移位寄存器配合使用。将并行输入的字节数据锁存在移位寄存器中。存在移位寄存器中。5.3.5 5.3.5 串行工作方式串行工作方式二、串行工作方式二、串行工作方式1 1串行工作方式串行工作方式1下,串行口为一个下,串行口为一个8位异步串行通信口,位异步串行通信口,TXD为数据输出线,为数据输出线,RXD数据输入线,传输的数据格式如下:一帧数据输入线,传输的数据格式
36、如下:一帧10位,包括位,包括1个起始位,个起始位,8个数据位和个数据位和1个停止个停止位。位。1 1、方式、方式1 1发送发送CPU向串行发送缓冲器向串行发送缓冲器SBUF写入一个数据开始,就启动了串行口发送,在串行口写入一个数据开始,就启动了串行口发送,在串行口由硬件加入起始位和停止位,构成一个完整帧。然后在移位脉冲的作用下,由由硬件加入起始位和停止位,构成一个完整帧。然后在移位脉冲的作用下,由TXD端串端串行输出。一帧发送完后,行输出。一帧发送完后,TXD端维持空闲端维持空闲1状态,状态,SCON寄存器的寄存器的TI置位,产生串行中置位,产生串行中断申请。断申请。2 2、方式、方式1 1接收接收SCON的的REN位置位置1后就允许接收串行数据。当串行口采样到后就允许接收串行数据。当串行口采样到RXD端状态由端状态由1向向0跳跳变时,认定这就是起始位,随后在移位脉冲的控制下,把变时,认定这就是起始位,随后在移位脉冲的控制下,把8位数据依次移位,存入接收位数据依次移位,存入接收缓冲器缓冲器SBUF中,置中断标志位中,置中断标志位RI,产生串行中断申请。,产生串行中断申请。3 3、方式、方式1 1波特率的设定波特率的设定5.3.5 5.3.5 串行工作方式串行工作方式二、串行工作方式二、串行工作方式1 1
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。