中断系统、定时器、计数器及串行通信.ppt
第五章第五章 中断系统、定时器、计数器及串行通信中断系统、定时器、计数器及串行通信n5.1 单片机中断系统单片机中断系统n5.2 定时器定时器/计数器计数器n5.3 串行通讯技术串行通讯技术5.1.1 中断的概念中断的概念图5-1 中断流程返回本节5.1.2 中断源中断源1、外部中断源、外部中断源 :由由P3.2端口线引入,低电平或下降沿引起。端口线引入,低电平或下降沿引起。:由由P3.3端口线引入,低电平或下降沿引起。端口线引入,低电平或下降沿引起。2、内部中断源、内部中断源T0:定时:定时/计数器计数器0中断,由中断,由T0回零溢出引起。回零溢出引起。T1:定时:定时/计数器计数器1中断,由中断,由T1回零溢出引起。回零溢出引起。3、串行中断、串行中断TI/RI:串行:串行I/O中断,完成一帧字符发送中断,完成一帧字符发送/接收引起。接收引起。图5-2 中断系统的结构框图返回本节5.1.3 中断的控制中断的控制n1中断允许寄存器中断允许寄存器IE(A8H)nIE在在特特殊殊功功能能寄寄存存器器中中,字字节节地地址址A8H,位位地地址址分分别别是是A8HAFH。IE控控制制CPU对对中中断断源源总总的的开开放放或或禁禁止止以以及及每个中断源是否允许中断。其格式如图每个中断源是否允许中断。其格式如图5-3所示。所示。n2中断优先寄存器中断优先寄存器IP(B8H)nIP在特殊功能寄存器中,字节地址为在特殊功能寄存器中,字节地址为B8H,位地址分别,位地址分别是是B8HBFH,IP用来锁存各中断源优先级的控制位,用来锁存各中断源优先级的控制位,其格式如图其格式如图5-4所示。所示。图5-3 中断允许寄存器IE图5-4 中断优先寄存器IP返回本节5.1.4 中断处理过程中断处理过程n单单片片机机在在每每个个机机器器周周期期的的S5P2期期间间,顺顺序序采采样样每每个个中中断断源源,CPU在在下下一一个个机机器器周周期期S6期期间间按按优优先先级级顺顺序序查查询询中中断断标标志志,如如查查询询到到某某个个中中断断标标志志为为1,将将在在再再下下一一个个机机器器周周期期S1期期间间按按优优先先级级进进行行中中断处理。断处理。n中断得到响应后自动清除中断标志,由硬件将程中断得到响应后自动清除中断标志,由硬件将程序计数器序计数器PC内容压入堆栈保护,然后将对应的中内容压入堆栈保护,然后将对应的中断矢量装入程序计数器断矢量装入程序计数器PC,使程序转向中断矢量,使程序转向中断矢量地址单元中去执行相应的中断服务程序。地址单元中去执行相应的中断服务程序。下列任何一种情况存在中断申请将被封锁:下列任何一种情况存在中断申请将被封锁:n(1)CPU正正在在执执行行一一个个同同级级或或高高一一级级的的中中断断服服务程序。务程序。n(2)当前正在执行的那条指令还未执行完。)当前正在执行的那条指令还未执行完。n(3)当当前前正正在在执执行行的的指指令令是是RETI或或对对IE,IP寄寄存存器器进进行行读读/写写指指令令,执执行行这这些些指指令令后后至至少少再再执执行一条指令才会响应中断。行一条指令才会响应中断。返回本节5.1.5 中断系统的应用中断系统的应用例例 5-1 5-1 若规定外部中断源若规定外部中断源0 0为边沿触发方式,高优先级,为边沿触发方式,高优先级,试写出有关初始化程序。试写出有关初始化程序。STEB EA ;CPU STEB EA ;CPU 开中断开中断SETB EX0 ;SETB EX0 ;允许外部中断允许外部中断0 0申请中断申请中断SETB PX0 ;SETB PX0 ;将外部中断将外部中断0 0定为高优先级中断定为高优先级中断SETB IT0 ;SETB IT0 ;边沿触发边沿触发5.2.1 定时定时/计数器结构计数器结构n定定时时/计计数数器器简简称称定定时时器器,8051单单片片机机有有2个个16位位的的定定时时/计计数数器器:定定时时器器0(T0)和和定定时时器器1(T1)。它它们们都都有有定定时时器器或或事事件件计计数数的的功功能能,可可用用于于定定时时控控制制、延延时时、对对外外部部事事件件计计数数和和检检测测等场合。等场合。nT0由由2个个特特殊殊功功能能寄寄存存器器TH0和和TL0构构成成,T1则则由由TH1和和TL1构构成成。作作计计数数器器时时,通通过过引引脚脚T0(P3.4)和和T1(P3.5)对对外外部部脉脉冲冲信信号号计计数数,当当输输入入脉脉冲冲信信号号从从1到到0的的负负跳跳变变时时,计计数数器器就就自自动动加加1。计数的最高频率一般为振荡频率的。计数的最高频率一般为振荡频率的1/24。返回本节5.2.1 定时定时/计数器结构计数器结构 定定时时器器共共有有2个个控控制制寄寄存存器器TMOD和和TCON,由由软软件件写写入入TMOD和和TCON 两两个个8位位寄寄存存器器,设设置置各各个个定定时时器器的的操操作模式和控制功能。作模式和控制功能。8051 定时、计数器内部结构1工作模式控制寄存器工作模式控制寄存器TMOD(89H)图5-5 定时器工作模式寄存器TMOD2定时器控制寄存器定时器控制寄存器TCON(88H)图5-6 定时器工作模式寄存器TCON 返回本节2定时器控制寄存器定时器控制寄存器TCON(88H)IT0(TCON.0)为外部中断为外部中断0的触发控制位,当的触发控制位,当IT0=0时时采用电平触发方式,低电平有效;当当采用电平触发方式,低电平有效;当当IT0=1时采时采用边沿触发方式,下降沿有效,可由软件置位或用边沿触发方式,下降沿有效,可由软件置位或清零。清零。IE0(TCON.1)为外部中断为外部中断0中断请求标志位,当中断请求标志位,当CPU检检测到中断请求有效时,测到中断请求有效时,IE0由硬件自动置位;由硬件自动置位;CPU响应中断后,响应中断后,IE0由硬件自动复位。由硬件自动复位。IT1、IE1功能相似功能相似5.2.3 定时定时/计数器工作方式计数器工作方式n每每个个定定时时/计计数数器器还还有有4种种工工作作模模式式,也也就就是是每每个个定时器可构成定时器可构成4种电路结构模式。种电路结构模式。n在在模模式式0、1和和2,T0和和T1的的工工作作模模式式相相同同,在在模模式式3,两两个个定定时时器器的的模模式式不不同同。下下面面以以T1为为例例,分述各种工作模式的特点和用法。分述各种工作模式的特点和用法。1模式模式0图5-5 定时/计数器T1(T0)工作模式0 2模式模式1图5-6 定时/计数器T1(T0)工作模式13模式模式2图5-7 定时/计数器T1(T0)工作模式2 4模式模式3图5-8 定时/计数器T1(T0)工作模式3返回本节5.2.4 定时定时/计数器初始化计数器初始化n1计数器初值的计算计数器初值的计算n把把计计数数器器计计满满为为零零所所需需要要的的计计数数值值设设定定为为C,计计数初值设定为数初值设定为TC,由此可得到公式:,由此可得到公式:TC=M-Cn式式中中,M为为计计数数器器模模值值,该该值值和和计计数数器器工工作作方方式式有有关关。在在方方式式0时时M为为213;在在方方式式1时时M为为216;在在方式方式2和方式和方式3时时M为为28。5.2.4 定时定时/计数器初始化计数器初始化n2定时器初值的计算定时器初值的计算n在在定定时时器器模模式式下下,计计数数器器由由单单片片机机主主脉脉冲冲经经12分分频后计数。因此,定时器定时时间频后计数。因此,定时器定时时间T的公式:的公式:T=(M-TC)T计数计数 上式也可写成:上式也可写成:TC=M-T/T计数计数n式中,式中,M为模值,和定时器的工作方式有关;为模值,和定时器的工作方式有关;T计计数数是单片机振荡周期是单片机振荡周期TCLK的的12倍;倍;TC为定时器的为定时器的定时初值。定时初值。返回本节5.2.5 定时定时/计数器应用举例计数器应用举例例例5-4用用定定时时器器T1,工工作作方方式式0实实现现定定时时,并并在在P1.0引引脚脚输输出周期为出周期为10ms的方波,设晶振的方波,设晶振fosc=12MHz。1)确确定定工工作作方方式式设设置置TMOD初初始始值值。使使用用定定时时器器1 TMOD=00H2)预置定时器初值)预置定时器初值分分析析:周周期期为为10ms,高高电电平平为为5ms 一一个个周周期期时时间间为为6*2*1/12M=1us;5ms/1us=5000次次X0=M 计数值计数值=213-5000=8192 5000=3192 =C78H=01100011 11000 BX=01100011 00011000 B=6318HTH1=63H TL1=18H返回本章首页5.2.5 定时定时/计数器应用举例计数器应用举例-中断法中断法采用中断法程序如下:采用中断法程序如下:ORG 0000H LJMP MAIN ;转主程序转主程序 MAIN ORG 001BH LJMP PT1 ;转;转T1中断处理程序中断处理程序PT1 ORG 0050HMAIN:MOV SP,#50H ;设置堆栈指针设置堆栈指针 MOV TMOD,#00H ;设置设置T1为方式为方式0,定时器方式,定时器方式 MOV TL1,#18H ;设置计数器初值;设置计数器初值 MOV TH1,#63H5.2.5 定时定时/计数器应用举例计数器应用举例-中断法中断法 SETB EA ;开中断;开中断 SETB ET1 ;允许;允许T1中断中断 SETB TR1 ;启动定时器;启动定时器T1 HERE:JIMP HERE ;等待中断;等待中断中断服务程序清单:中断服务程序清单:ORG 0200H PT1:MOV TL1,#18H ;重置定时器初值;重置定时器初值 MOV TH1,#63H CPL P1.0 ;P1.0取反取反 RETI ;中断返回;中断返回 END5.2.5 定时定时/计数器应用举例计数器应用举例 查询法查询法 程序如下:程序如下:MOV TMOD,00H MOV TL1,#18H MOV TH1,#63H SETB TR1HERE:JBC TF1,DOWN SJMP HEREDOWN:MOV TL1,#18H MOV TH1,#63H CPL P1.0 SJMP HERE5.3.1 串行通信串行通信 MCS-51单片机内部有一个全双工的串行通信口,单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(即串行接收和发送缓冲器(SBUF),这两个在),这两个在物理上独立的接收发送器,既可以接收数据也可物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址而发送缓冲器则只能写入不能读出,它们的地址为为99H。这个通信口既可以用于网络通信,亦可。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的转换器,就可方便地构成标准的RS-232接口。下接口。下面我们分别介绍。面我们分别介绍。数据通信的传输方式数据通信的传输方式n常用于数据通信的传输方式有单工、半双工、全双常用于数据通信的传输方式有单工、半双工、全双工和多工方式。工和多工方式。单工方式:数据仅按一个固定方向传送。因而这种单工方式:数据仅按一个固定方向传送。因而这种传输方式的用途有限,常用于串行口的打印数据传输与传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。简单系统间的数据采集。半双工方式:数据可实现双向传送,但不能同时进半双工方式:数据可实现双向传送,但不能同时进行,实际的应用采用某种协议实现收行,实际的应用采用某种协议实现收/发开关转换。发开关转换。全双工方式:允许双方同时进行数据双向传送全双工方式:允许双方同时进行数据双向传送,但一但一般全双工传输方式的线路和设备较复杂。般全双工传输方式的线路和设备较复杂。多工方式:以上三种传输方式都是用同一线路传输多工方式:以上三种传输方式都是用同一线路传输一种频率信号,为了充分地利用线路资源,可通过使用一种频率信号,为了充分地利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分或码分复用多路复用器或多路集线器,采用频分、时分或码分复用技术,即可实现在同一线路上资源共享功能,我们盛之技术,即可实现在同一线路上资源共享功能,我们盛之为多工传输方式。为多工传输方式。串行数据通信两种形式串行数据通信两种形式 异步通信异步通信在这种通信方式中,接收器和发送器有各在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起用一帧来表示一个字符,其内容如下:一个起始位,仅接着是若干个数据位。始位,仅接着是若干个数据位。同步通信同步通信同步通信格式中,发送器和接收器由同同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。同步传输方较大的场合,速度就慢得多。同步传输方式去掉了这些起始位和停止位,只在传输式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志数据块时先送出一个同步头(字符)标志即可。即可。串行数据通信的传输速率串行数据通信的传输速率串行数据传输速率有两个概念,即每秒转串行数据传输速率有两个概念,即每秒转送的位数送的位数bps和每秒符号数和每秒符号数波特率。波特率。串行口控制寄存器串行口控制寄存器 此外,从图中可看出,接收缓冲器前还加上一级输入移位寄存器,此外,从图中可看出,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结构目的在于接收数据时避免发生数据帧重叠现象,以免这种结构目的在于接收数据时避免发生数据帧重叠现象,以免出错,部分文献称这种结构为双缓冲器结构。而发送数据时就不需要出错,部分文献称这种结构为双缓冲器结构。而发送数据时就不需要这样设置,因为发送时,这样设置,因为发送时,CPU是主动的,不可能出现这种现象。是主动的,不可能出现这种现象。MCS-51单片机串行口寄存器结构单片机串行口寄存器结构如图如图3所示。所示。SBUF为串行口的收发缓为串行口的收发缓冲器,它是一个可寻址的专用寄存器,冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。但这两个寄存可以实现全双工通信。但这两个寄存器具有同一地址(器具有同一地址(99H)。)。MCS-51的的串行数据传输很简单,只要向发送缓串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。而从接冲器写入数据即可发送数据。而从接收缓冲器读出数据即可接收数据。收缓冲器读出数据即可接收数据。串行通信控制寄存器串行通信控制寄存器在上一节我们已经分析了在上一节我们已经分析了SCON控制寄存器,它是一个可寻址的控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构,其结构格式如下:格式如下:下面我们对各控制位功能介绍如下:下面我们对各控制位功能介绍如下:(1).SM0、SM1:串行口工作方式控制位。:串行口工作方式控制位。SM0,SM1工作方式工作方式00方式方式001方式方式110方式方式211方式方式3串行通信控制寄存器串行通信控制寄存器 (2).SM2:多机通信控制位。:多机通信控制位。多机通信是工作于方式多机通信是工作于方式2和方式和方式3,SM2位主要用于方式位主要用于方式2和和方式方式3。接收状态,当串行口工作于方式。接收状态,当串行口工作于方式2或或3,以及,以及SM2=1时,时,只有当接收到第只有当接收到第9位数据(位数据(RB8)为)为1时,才把接收到的前时,才把接收到的前8位位数据送入数据送入SBUF,且置位,且置位RI发出中断申请,否则会将接受到的发出中断申请,否则会将接受到的数据放弃。当数据放弃。当SM2=0时,就不管第位数据是时,就不管第位数据是0还是还是1,都难得数,都难得数据送入据送入SBUF,并发出中断申请。工作于方式,并发出中断申请。工作于方式0时,时,SM2必须为必须为0。(3).REN:允许接收位。:允许接收位。REN用于控制数据接收的允许和禁止,用于控制数据接收的允许和禁止,REN=1时,允许接时,允许接收,收,REN=0时,禁止接收。时,禁止接收。(4).TB8:发送接收数据位:发送接收数据位8。在方式在方式2和方式和方式3中,中,TB8是要发送的是要发送的即第即第9位数据位。位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,还是数据,TB8=0为数据,为数据,TB8=1时为地址。时为地址。串行通信控制寄存器串行通信控制寄存器(5).RB8:接收数据位:接收数据位8。在方式在方式2和方式和方式3中,中,RB8存放接收到的第存放接收到的第9位数据,位数据,用以识别接收到的数据特征。用以识别接收到的数据特征。(6).TI:发送中断标志位。:发送中断标志位。可寻址标志位。方式可寻址标志位。方式0时,发送完第时,发送完第8位数据后,由位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,位,因此,TI=1表示帧发送结束,表示帧发送结束,TI可由软件清可由软件清“0”。(7).RI:接收中断标志位。:接收中断标志位。可寻址标志位。接收完第可寻址标志位。接收完第8位数据后,该位由硬件置位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,位,在其他工作方式下,该位由硬件置位,RI=1表示帧表示帧接收完成。接收完成。串行通信控制寄存器串行通信控制寄存器n电源管理寄存器电源管理寄存器PCONPCON主要是为主要是为CHMOS型单片机的电源控制而设置的型单片机的电源控制而设置的专用寄存器,单元地址是专用寄存器,单元地址是87H,其结构格式如下:,其结构格式如下:n在在CHMOS型单片机中,除型单片机中,除SMOD位外,其他位均为虚设的,位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当是串行口波特率倍增位,当SMOD=1时,串行口波时,串行口波特率加倍。系统复位默认为特率加倍。系统复位默认为SMOD=0。串行口的工作方式串行口的工作方式n1)方式)方式0 方式方式0是外接串行移位寄存器方式。工作时,数据从是外接串行移位寄存器方式。工作时,数据从RXD串行地输入串行地输入/输出,输出,TXD输出移位脉冲,使外部的移位寄输出移位脉冲,使外部的移位寄存器移位。波特率固定为存器移位。波特率固定为fosc/12(即,(即,TXD每机器周期输每机器周期输出一个同位脉冲时,出一个同位脉冲时,RXD接收或发送一位数据)。每当发接收或发送一位数据)。每当发送或接收完一个字节,硬件置送或接收完一个字节,硬件置TI=1或或RI=1,申请中断,但,申请中断,但必须用软件清除中断标志。必须用软件清除中断标志。n实际应用在串行实际应用在串行I/O口与并行口与并行I/O口之间的转换。口之间的转换。n方式方式1方式方式1是点对点的通信方式。是点对点的通信方式。8位异步串行通信口,位异步串行通信口,TXD为为发送端,发送端,RXD为为接收端。一帧为接收端。一帧为10位,位,1位起始位、位起始位、8位数位数据位(先低后高)、据位(先低后高)、1位停止位。波特率由位停止位。波特率由T1或或T2的溢出的溢出率确定。率确定。在发送或接收到一帧数据后,硬件置在发送或接收到一帧数据后,硬件置TI=1或或RI=1,向,向CPU申请中断;但必须用软件清除中断标志,否则,下一帧数申请中断;但必须用软件清除中断标志,否则,下一帧数据无法发送或接收。据无法发送或接收。n方式方式2、方式、方式3方式方式2和方式和方式3是是9位异步串行通信,一般用在多机通信系位异步串行通信,一般用在多机通信系统中或奇偶校验的通信过程。在通讯中,统中或奇偶校验的通信过程。在通讯中,TB8和和RB8位作位作为数据的第为数据的第9位,位位,位SM2也起作用。方式也起作用。方式2与方式与方式3的区别的区别只是波特率的设置方式不同。只是波特率的设置方式不同。串行通信波特率的计算串行通信波特率的计算n串行口有串行口有3种工作方式:方式种工作方式:方式0、方式、方式1、方式、方式2、方式方式3;有;有3种帧格式,方式种帧格式,方式2和和3具有相同的帧格具有相同的帧格式;方式式;方式0的发送和接收都以的发送和接收都以fosc/12为固定波特为固定波特率,率,n方式方式1的波特率的波特率=2SMOD/32定时器定时器T1的溢出率的溢出率 n方式方式2的波特率的波特率=2SMOD/64fosc n方式方式3的波特率的波特率=2SMOD/32定时器定时器T1的溢出率的溢出率 THANK YOU VERY MUCH!本章到此结束本章到此结束结束放映返回本章首页