大学单片机原理与应用系统设计-李云钢-PPT文稿资料课件PPT
收藏
资源目录
压缩包内文档预览:
编号:21836008
类型:共享资源
大小:18.75MB
格式:ZIP
上传时间:2019-09-06
上传人:QQ24****1780
认证信息
个人认证
王**(实名认证)
浙江
IP属地:浙江
25
积分
- 关 键 词:
-
大学
单片机
原理
应用
利用
运用
系统
设计
李云
ppt
文稿
资料
课件
- 资源描述:
-
大学单片机原理与应用系统设计-李云钢-PPT文稿资料课件PPT,大学,单片机,原理,应用,利用,运用,系统,设计,李云,ppt,文稿,资料,课件
- 内容简介:
-
第4章 MCS-51单片机的定时器、串口和中断系统4.1 MCS-51单片机的定时器4.2 MCS-51单片机的串口4.3 MCS-51单片机的中断系统4.1.1 定时器T0和T14.1.2 定时器T24.1 MCS-51单片机的定时器4.1 MCS-51单片机的定时器 MCS-51单片机内部可有3个定时器/计数器:T0、T1、T2,可配置为定时器或计数器。通常,将片内没有定时器T2的单片机称为51型单片机,有定时器T2的称为52型单片机。 定时器Tn(n=0、1、2)由2个8位计数器THn和TLn组成。T0及T1的配置和控制寄存器分别为TMOD、TCON,T2的配置和控制寄存器分别为T2MOD、T2CON。 4.1.1 定时器T0和T1:方式寄存器TMOD TMOD是一个特殊功能寄存器,用于配置定时器T0和T1的工作方式,其字节地址为89H,不可位寻址,上电缺省值为00H。TMOD的低4位用于配置定时器T0,高4位用于配置定时器T1,下面依次给出TMOD的格式表、各控制位的功能描述表、以及定时器的工作方式选择表。TMOD的格式 4.1.1 定时器T0和T1:方式寄存器TMOD TMOD的控制位描述 4.1.1 定时器T0和T1:方式寄存器TMOD定时器的工作方式选择 4.1.1 定时器T0和T1:方式寄存器TMOD TCON是一个特殊功能寄存器,用于控制定时器T0和T1的运行,同时还是中断请求和中断触发方式寄存器。TCON的字节地址为88H,可以位寻址,上电缺省值为00H。下面依次给出TCON的格式表与各控制位的描述表。4.1.1 定时器T0和T1:控制寄存器TCONTCON的格式 4.1.1 定时器T0和T1:控制寄存器TCON TCON的控制位描述 4.1.1 定时器T0和T1:控制寄存器TCON 定时器T0和T1有方式0、方式1、方式2、方式3等四种工作方式,以满足不同的应用需要。工作方式由TMOD中的M1和M0来配置。4.1.1 定时器T0和T1:工作方式 方式0:适合定时器T0和T1。 定时器T0的方式0的工作结构如下图所示,它是13位计数器,由TL0的低5位和TH0的8位组成,TL0的低5位每个机器周期增加1,它溢出时向TH0进位,TH0计数溢出时,置位溢出标志TF0。设晶振频率为 ,计数初值为 ,则T0定时间隔为:4.1.1 定时器T0和T1:工作方式定时器T0的方式0结构4.1.1 定时器T0和T1:工作方式4.1.1 定时器T0和T1:工作方式 方式1:适合定时器T0和T1。定时器T0的方式1的工作结构如下图所示,它和方式0的差别仅在于计数器的位数不同。在方式1中,TL0为低8位,TH0为高8位,构成一个16位的计数器。设晶振频率为 ,计数初值为 ,则T0定时间隔为:定时器T0的方式1结构 4.1.1 定时器T0和T1:工作方式4.1.1 定时器T0和T1:工作方式 方式2:适合定时器T0和T1。定时器T0的方式2结构如下图所示,它是自动重装初值的8位计数器。 在方式2中,TL0为8位计数器,TH0为计数初值寄存器,当TL0溢出时,一方面置位溢出标志TF0,同时将TH0中的计数初值送至TL0,使TL0从初值开始重新加1计数。设晶振频率为 ,计数初值为 ,则定时间隔为:定时器T0的方式2结构4.1.1 定时器T0和T1:工作方式4.1.1 定时器T0和T1:工作方式 方式3:仅用于定时器T0。 定时器T0工作于方式3时,它分为2个8位计数器TL0和TH0。TL0可以作为8位定时器或外部事件计数器,它使用定时器T0的控制位GATE、TR0、INT0、TF0等进行控制,其计数初值必须由软件每次设定。TH0固定工作为8位定时器方式,它使用定时器T1的控制位TR1、TF1,即当TR1为1时,允许TH0计数,TH0计数溢出时,置位溢出标志TF1。此时,定时器T1的运行由方式字来控制,方式3停止计数,其它方式允许计数,但计数溢出时不置位标志TF1。定时器T0的方式3结构4.1.1 定时器T0和T1:工作方式4.1.2 定时器T2 在52型单片机中另外还有定时器T2。定时器T2是一个16位的定时器,可工作于定时器或计数器方式,它有两组数据寄存器,即TH2、TL2、RCAP2H、RCAP2L,有捕获、自动重装(可配置为加或减计数)、波特率发生器等三种工作模式,由特殊功能寄存器T2CON和T2MOD来配置和控制其工作。4.1.2 定时器T2:控制寄存器T2CON T2CON是一个特殊功能寄存器,用于设置定时器T2的工作模式,和控制T2的运行,其字节地址是C8H,可位寻址,上电缺省值为00H。下面依次给出T2CON的格式表、各控制位的功能描述表、以及工作模式表。T2CON的格式 4.1.2 定时器T2:控制寄存器T2CON T2CON的控制位描述 4.1.2 定时器T2:控制寄存器T2CON定时器T2的工作模式4.1.2 定时器T2:控制寄存器T2CONT2MOD是一个特殊功能寄存器,用于补充配置定时器T2的工作方式,其字节地址为0C9H,不可位寻址,上电缺省值为XXXX XX00B,下面依次给出T2MOD的格式表、各控制位的功能描述表。4.1.2 定时器T2:方式寄存器T2MODT2MOD的格式 4.1.2 定时器T2:方式寄存器T2MODT2MOD的控制位描述 4.1.2 定时器T2:方式寄存器T2MOD定时器T2有捕获、自动重装、波特率发生器等三种工作模式,以满足不同的应用需要。其工作模式通过配置T2CON来选择。4.1.2 定时器T2:工作模式选择捕获模式时,如果(EXEN2)=0,定时器T2是一个16位的定时器或计数器,其溢出将导致TF2置位,从而引起中断;如果(EXEN2)=1,定时器T2做同样的操作,但T2EX的负跳变将导致TH2和TL2的值分别进入RCAP2H和RCAP2L,同时导致EXF2置位,从而引起中断。定时器T2的捕获模式结构见下图。4.1.2 定时器T2:工作模式定时器T2的捕获模式结构4.1.2 定时器T2:工作模式在自动重装模式下,定时器T2可编程配置为加计数或减计数,这与T2MOD的DCEN位有关。上电复位时,DCEN为零。(DCEN)=0的自动重装模式如下图所示,此时定时器T2只能为加计数器。如果(EXEN2)=0,定时器T2是一个16位的定时器或计数器,溢出导致TF2置位,从而引起中断,同时,RCAP2H和RCAP2L中的值自动装入TH2和TL2;RCAP2H和RCAP2L中的值是由软件预置的。如果(EXEN2)=1,计数溢出或T2EX的负跳变都可引起重装,T2EX的负跳变同时置位EXF2,可以引起中断。4.1.2 定时器T2:工作模式定时器T2的自动重装模式((DCEN)=0)4.1.2 定时器T2:工作模式(DCEN)=1的自动重装模式见下图,此时定时器T2可设置为加计数或减计数,计数方向通过T2EX管脚控制。T2EX为高电平时定时器T2加计数,定时器T2溢出(也称为上溢)会导致TF2置位,同时也使RCAP2H和RCAP2L中的值分别自动装入TH2和TL2。T2EX为低电平时定时器T2减计数,当TH2和TL2与存储在RCAP2H和RCAP2L中的值相等时,定时器T2溢出(也称为下溢)。定时器T2下溢使TF2置位,同时使得0FFFFH重新装入定时器寄存器。EXF2位在定时器T2上溢或下溢时将发生翻转,能被用作第17位分辨率;同时此种工作模式下,EXF2位不作为中断标志。4.1.2 定时器T2:工作模式定时器T2的自动重装模式((DCEN)=1)4.1.2 定时器T2:工作模式 在波特率发生器模式下,定时器T2的结构如下图所示。TH2的溢出将使RCAP2H和RCAP2L的值装入寄存器TH2和TL2,但不会置位TF2,也不产生中断。如果(EXEN2)=1,T2EX的负跳变可置位EXF2引起中断,但不会重装TH2和TL2。此时,T2EX可用作外部中断。 在该模式下,定时器T2((TR2)=1时)每个状态周期加1。故 T2溢出率=振荡器频率/(265536-(RCAP2H,RCAP2L)(RCAP2H,RCAP2L)表示RCAP2H和RCAP2L看作无符号整数时的值。 为避免写操作与重装操作相冲突,在访问定时器T2和RCAP2之前,应先停止定时器T2的工作(即先将TR2清零)。4.1.2 定时器T2:工作模式 T2的波特率发生器模式4.1.2 定时器T2:工作模式4.2.1 串口的一般概念4.2.2 MCS-51单片机串口的结构4.2.3 MCS-51单片机串口的工作方式4.2.4 多机通信原理4.2.5 MCS-51单片机串口的波特率4.2.6 MCS-51单片机串口应用编程实例4.2 MCS-51单片机的串口 计算机的中央处理器与外界交换信息通常有并行和串行两种通信方式。数据的各位同时传送的方式称为并行通信,数据一位一位传送的方式称为串行通信。实现并行通信的接口称为并口。例如MCS-51单片机的P1口就是并口;并行通信所需传输线的根数和数据位数相等,因此数据线较多,但它的通信速度较快,适合于近距离通信。串行通信通过串口来实现,它需要的传输线少,但速度慢,适合于远距离通信。 串行通信通常又有异步和同步两种基本通信方式,以及单工、半双工、全双工三种传送方法。4.2.1 串口的一般概念 异步通信方式每次传送一帧数据,下图为一种典型的异步通信数据格式。异步通信方式的优点是数据传送的可靠性较高,缺点是通信效率比较低。 在异步通信中,CPU与外设之间必须有两项约定,即字符格式和波特率。字符格式保证双方将同一信息串理解成同一种意义,原则上可自由制定。波特率定义为每秒钟传送的二进制数的位数。4.2.1 串口的一般概念4.2.1 串口的一般概念 在同步通信中,数据字节之间没有间隔,下图为一种典型的同步通信数据格式。同步通信具有效率高、速度快的优点,在传感器等专用设备中使用十分广泛。 在串行通信中,单工传送是指通信接口只能发送或只能接收;双工传送是指通信接口既能发送又能接收,它分为半双工和全双工传送,其中,半双工传送是指任一时刻不能既发送又接收;全双工传送是指通信双方具有同时发送和接收数据的能力。 MCS-51单片机的串口是一个全双工的通用异步串口,可以同时发送和接收数据,通称UART口。它可用于与串行外设进行通信,或用于MCS-51多机系统之间的通信,还可以工作于移位寄存器模式,用于扩充I/O口。 MCS-51单片机的串口通过引脚RXD和TXD(即P3.0和P3.1的第二功能)与外界通信,特殊功能寄存器SBUF是串口缓冲寄存器,包括发送寄存器和接收寄存器,它们有相同名字和地址空间,但不会出现冲突,因为接收寄存器只能被CPU读出数据,发送寄存器只能被CPU写入数据,MCS-51单片机通过两个特殊功能寄存器SCON和PCON来配置和控制串口的工作方式。4.2.2 MCS-51单片机串口的结构 串口控制寄存器SCON是一个特殊功能寄存器,它的主要功能是选择串行通信方式、控制串口的发送和接收,以及指示串口的工作状态等,其字节地址是98H,可位寻址,上电缺省值为00H。SCON的下面依次给出SCON中每一位的定义、以及每一位的功能描述。4.2.2 串口的结构:串口控制寄存器SCONSCON的格式 4.2.2 串口的结构:串口控制寄存器SCONSCON各位的功能描述 4.2.2 串口的结构:串口控制寄存器SCON PCON也是一个特殊功能寄存器,它是为了在CHMOS型的单片机上实现电源控制(节电模式和掉电模式)而附加的。PCON的最高位SMOD是串口波特率系数控制位,见下表。当SMOD位为1时波特率加倍。PCON的其它位为掉电方式控制位,其功能因具体的单片机型号而异。4.2.2 串口的结构:电源控制寄存器PCONPCON的格式 4.2.2 串口的结构:电源控制寄存器PCON MCS-51单片机串口有4种工作方式:方式0、方式1、方式2、方式3,它们由SCON中的SM0、SM1定义,下面分别介绍。4.2.3 MCS-51单片机串口的工作方式串口的工作方式选择 4.2.3 MCS-51单片机串口的工作方式方式0为移位寄存器输入/输出方式。可外接移位寄存器以扩展I/O口,也可以外接同步输入/输出设备。8位串行数据从引脚RXD输入或输出,引脚TXD输出同步时钟脉冲。方式0输出数据时,CPU将数据写入发送寄存器SBUF,立即启动发送,将数据以fOSC/12(fOSC为振荡器频率)的特率输出,低位在前,高位在后。发送完一帧数据后,发送中断标志TI由硬件置位。当串口以方式0接收时,先置位允许接收控制位REN。当(RI)=0且(REN)=1时,开始接收。当接收到第8位数据时,将数据移入接收寄存器,并由硬件置位RI。通常,新的数据送入外部移位寄存器之后要通知单片机,单片机才开始这个接收过程。4.2.3 串口的工作方式:方式0下图给出了移位寄存器74HC164的引脚及其与MCS-51单片机的连接电路图。74HC164是一种8位串入并出移位寄存器,其功能表见下表。电路中,MCS-51单片机的串口工作于移位寄存器输出方式,引脚RXD输出的串行数据移入74HC164的A、B端,引脚TXD输出的移位脉冲接入74HC164的CLK端,74HC164的QAQH将并行输出数据。4.2.3 串口的工作方式:方式0 74HC164的引脚图 MCS-51和74HC164的连接电路图 4.2.3 串口的工作方式:方式04.2.3 串口的工作方式:方式074HC164功能表方式1为波特率可变的8位异步通信接口方式。每帧信息包括一个起始位0、八个数据位和一个停止位1,波特率由定时器T1或T2的溢出率决定。方式1发送:当CPU将数据写入发送缓冲区SBUF时,启动发送。数据从引脚TXD输出,发送完毕后由硬件置位发送中断标志TI。方式1接收:(REN)=1时,若引脚RXD采样到负跳变,并确认是起始位0,则按照设定格式接收一帧数据。只有(RI)=0,且满足下列条件之一时,才把接收到的8位数据和停止位分别送入接收寄存器和RB8,并置位中断标志RI;否则信息将丢失。 条件1:(SM2)=0,停止位可为1或0; 条件2:(SM2)=1,停止位必须为1。4.2.3 串口的工作方式:方式1方式2和3除波特率外,其余相同。方式2的波特率为振荡器频率的1/64或1/32,方式3的波特率由定时器T1或T2的溢出率确定。方式2和3均为9位UART方式,比方式1增加了一位可编程的第9位数据。方式2和3的发送:数据由TXD端输出,其中数据字有9位,附加的第9位来自SCON寄存器的TB8位,加上起始位和停止位共有11位。当CPU将数据写入SBUF时启动发送;发送完一帧后,置位中断标志TI。方式2和3的接收:在(REN)=1时,当采样到引脚RXD从1到0的跳变时,开始接收数据;接收到第9位数据后,在(RI)=0,且还满足下列两个条件之一,接收到的数据才进入SBUF和RB8,并置位RI; 条件1:(SM2)=0,第9位数据可为1或0; 条件2:(SM2)=1,第9位数据必须为1。4.2.3 串口的工作方式:方式2和方式3串口控制寄存器SCON中的SM2为多机通信控制位。串口以方式2或方式3接收时,若(SM2)=1,则只有接收到的第9位数据(RB8)=1时,数据才送入SBUF,置位中断标志RI;否则,不置位RI,信息丢失, CPU不作任何处理。当SM2为0时,则接收到一个数据后,不管第9位数据RB8是1还是0,都将数据装入SBUF,并置位中断标志RI,请求CPU处理。利用这个特性,便可实现MCS-51单片机的主从式多机通信。主从式通信的硬件连接示意图如下图所示。在主从式通信中,各个从机有不同的地址,从机都初始化为9位异步通信方式(方式2或3),置位SM2,允许接收串行中断。4.2.4 多机通信原理8051多机系统主从通信结构框图 4.2.4 多机通信原理主机要与某一从机通信时,先发出联络命令。联络命令的TB8为1,各个从机收到的RB8为1,置位RI,请求CPU处理。地址符合的从机就将SM2清零,并给主机作出应答;地址不符合的从机保持SM2为1,不动作。主机收到应答之后,就可以和从机通信,进行双向数据传输。主机发送的信息帧的第9位TB8为0,只有联络好的从机((SM2)=0的从机)才会收到主机的命令或数据,并作相应处理;其它从机由于SM2保持为1,对主机的通信命令和数据不作任何处理。这样便实现了主机和从机之间的一对一的通信。当一次通信结束以后,从机的SM2恢复为1,主机可以发出新的联络命令,以便和另一个从机进行通信。4.2.4 多机通信原理串口的波特率 4.2.5 MCS-51单片机串口的波特率注:fOSC表示振荡器频率。 常用波特率4.2.5 MCS-51单片机串口的波特率 例1:对于4.2.3节中单片机与74HC164的连接电路,假设并行口的各位都接一个发光管,用下面的程序,可将其做成流水灯。 ORG 2000H START: MOV SCON,#00H ; 将串口设置成方式0 SETB P1.0 ; 置位74HC164的CLR MOV A,#80H ; 最高位灯先亮 OUT0: MOV SBUF,A ; 启动串行输出 OUT1: JNB TI,OUT1 ; 检查串行输出是否结束 CLR TI ; 清TI,以备下次发送 LCALL DELAY ; 延时一段时间 RR A ; 循环右移, LJMP OUT0 ; 开始下一轮4.2.6 串口应用编程实例:串口方式0DELAY: NOP MOV R7,#00H DJNZ R7,$ RET END4.2.6 串口应用编程实例:串口方式0 例2:编制MCS-51单片机的串行通信程序,通过UART口向外轮流送出数据55H和AAH,并把外围电路向UART口送来的数据送到P1口。 ORG 0000H LJMP START ORG 0030HSTART: MOV SP,#5FH ; 设置堆栈指针 MOV TMOD,#20H ; 定时器T1设置成模式2 MOV PCON,#80H ; (SMOD)=1 MOV TH1,#0FDH ; 设置波特率 MOV SCON,#50H ; 将串口设置成方式1 MOV R0,#0AAH ; 准备送出的数 SETB REN ; 允许接收 SETB TR1 ; 定时器T1开始工作4.2.6 串口应用编程实例:异步通信WAIT: MOV A,R0 CPL A MOV R0,A MOV SBUF,A ; 本指令将启动串行发送 LCALL DELAY JBC TI,WAIT1 ; 发送成功,转WAIT1 LJMP WAIT ; 否则,当前数据丢失,发 ;送下一数据WAIT1: JBC RI,READ ; RI的置位是由接收成功引 ;起的 LJMP WAIT1 ; 没有接收到,重新检查RI4.2.6 串口应用编程实例:异步通信READ: MOV A,SBUF ; 从SBUF取出接收到的数据 MOV P1,A LJMP WAIT ; 开始下一轮发送DELAY: NOP MOV R7,#00H DJNZ R7,$ RET END 本程序通过不断地测试TI和RI来检查发送或接收是否成功,这种方式称为查询方式。由于测试过程CPU必须等待,它占用了CPU的全部时间,在通信故障时CPU还可能进入死循环。要提高程序效率与可靠性,最好采用中断方式。下面介绍MCS-51单片机的中断系统。4.2.6 串口应用编程实例:异步通信4.3.1 MCS-51单片机的中断源4.3.2 MCS-51单片机的中断控制4.3.3 MCS-51单片机的中断响应过程4.3.4 MCS-51单片机的中断编程举例4.3 MCS-51单片机的中断系统所谓中断,是指CPU在执行现行程序的过程中,外部发生了某一事件,请求CPU立即去处理,于是CPU暂停当前工作,转入处理所发生的事件,处理完以后,再回到原来暂停的地方,继续执行程序。这样的过程称为中断,实现这种功能的部件称为中断系统或中断机构,产生中断的请求源称为中断源,处理中断事件的程序称为中断服务程序。当系统中存在多个中断源时,可以规定各个中断源的优先级,低优先级的中断服务可以被高优先级的中断源所中断,这个过程叫做中断嵌套。4.3 MCS-51单片机的中断系统CPU对中断的响应可以分为以下几个步骤:(1) 保护断点:把下一条将要执行的指令的地址送入堆栈保存。(2) 寻找中断入口:根据引起中断的中断源,查找相应的中断服务程序的入口地址。所有中断服务程序的入口地址常称为中断向量表。在入口地址处应存放用户设置的中断处理程序,即中断服务程序。保护断点和查找中断服务程序入口地址的工作通常是由计算机的硬件自动完成的,与编程者无关,程序员所要做的是编写中断服务程序,并将中断入口地址填入中断向量表。(3) 执行中断服务程序。(4) 中断返回:CPU执行完中断服务程序后,从堆栈中取出中断之前所保存的指令的地址,并从该地址的程序开始,继续执行。4.3 MCS-51单片机的中断系统典型MCS-51单片机有5个中断源,其中,2个是外部中断源:#INT0、#INT1,3个是内部中断源:定时器T0溢出中断、定时器T1溢出中断、串口发送接收中断。大多数52型单片机还有定时器T2中断,新型单片机因系统资源不同可能设置有更多的中断,如A/D和D/A中断等。4.3.1 MCS-51单片机的中断源MCS-51单片机的外部中断包括外部中断源0和1,是由外部引脚引入的中断源,对应的引脚为#INT0、#INT1。外部中断可以编程为边沿触发或电平触发方式,触发控制和中断标志锁存在TCON的低4位。TCON寄存器中的IT0和IT1分别是#INT0和#INT1的触发方式控制位,(ITx)=0为电平方式,(ITx)=1为边沿方式(x=0,1)。采用电平方式触发时,外部中断源必须保持低电平,直到该中断被CPU响应;同时在该中断服务程序执行完之前,外部中断源必须撤除,否则,其中断标志位IEx一直为1,将触发下一次中断。采用边沿方式触发时,IEx由外部引脚上信号的下降沿置位,CPU响应中断时,由硬件清零。4.3.1 中断源:外部中断源定时器T0溢出中断:当定时器T0计数产生溢出时,由硬件置位TF0,向CPU请求中断,一直保持到CPU响应中断时才由硬件将TF0清零;或由查询程序清零。定时器T1溢出中断:与定时器T0类似。串口中断:串口的接收中断标志RI和发送中断标志TI经“逻辑或”以后,作为内部的一个中断源。串口发送完一个字符以后由硬件置位TI,接收到一个字符以后由硬件置位RI。CPU响应中断时,并不清零RI和TI,必须由软件清零。定时器T2溢出中断:与定时器T2有关的中断标志有两个,即TF2和EXF2,它们经“逻辑或”运算后,作为内部的一个中断源。这两个标志也必须由软件清零。4.3.1 中断源:内部中断源MCS-51单片机由中断允许寄存器IE来对中断源进行开放和屏蔽。IE的字节地址为0A8H,可以位寻址,上电缺省值为00H。IE的格式见下表,某位为1时表示对应的中断开放,否则就屏蔽。4.3.2 中断控制:中断允许寄存器IEEA: CPU中断总开放标志。“1”开放中断,“0”屏蔽所有中断。ES: 串口中断允许位;ET1:定时器T1中断允许位;EX1:外部中断1中断允许位;ET0:定时器T0中断允许位;EX0:外部中断0中断允许位;ET2:定时器T2中断允许位。4.3.2 中断控制:中断允许寄存器IEIE的格式MCS-51单片机有两个中断优先级,每一中断源可编程为高级中断或低级中断。一个正被执行的低级中断仅可以被高级中断所中断,高级中断不能被任何中断所中断。MCS-51单片机由中断优先级寄存器IP来对设置中断源的优先级。IP的字节地址为0B8H,可以位寻址,上电缺省值为00H。IP的格式见下表,某位为1表示对应的中断为高级中断,否则为低级中断。CPU同时接收到几个同一优先级的中断请求时,由自然优先级决定先响应哪个中断。自然优先级由高到低的顺序是:#INT0,定时器T0,#INT1,定时器T1,串口,定时器T2。4.3.2 中断控制:中断优先级寄存器IPPT2:定时器T2中断优先级控制位。PS: 串口中断优先级控制位。PT1:定时器T1中断优先级控制位。PX1:外部中断1中断优先级控制位。PT0:定时器T0中断优先级控制位。PX0:外部中断0中断优先级控制位。4.3.2 中断控制:中断优先级寄存器IPIP的格式MCS-51单片机的CPU在每一个机器周期中顺序检查每一个中断源。如果出现下列情况之一: CPU正在处理相同的或更高优先级的中断; 现行的机器周期不是所执行的指令的最后一个机器周期; 正在执行的指令是:(1)RETI;(2)写IE;(3)写IP。CPU将丢弃中断查询的结果;否则,CPU将在紧接着的下一个机器周期执行中断查询的结果。具体是,将程序计数器PC的内容自动压入堆栈,将被响应的中断服务程序的入口地址送到PC。中断返回时,又将栈顶的内容弹回PC。4.3.3 MCS-51单片机的中断响应过程4.3.3 MCS-51单片机的中断响应过程MCS-51单片机的中断向量表例1:利用MCS-51单片机的定时器溢出中断可以产生各种频率的方波信号。其方法是让定时器工作于自动重装方式,开放相应的定时中断,并在中断服务程序中对输出引脚的电平进行翻转即可。其中,定时器T0和T1为8位自动重装模式,定时器T2为16位自动重装模式,后者可输出更低的频率。设晶体振荡器频率为12MHz,波形由引脚P1.0输出。设要采用定时器T0来产生20KHz的方波,由于在每个周期中,引脚电平应翻转2次,所以引脚P1.0的翻转频率应为40KHz。同时应考虑到在定时器方式中,定时器T0是每经过1个机器周期(即12个时钟周期)加1。因此,定时器的重装值为:25612M/12/40K = 231 = 0E7H。4.3.4 中断编程举例:利用定时中断产生方波; 中断向量表 ORG 0000H ; 主程序的开始地址 JMP START ORG 000BH ; 定时器T0的中断向量地址 JMP INTT0 ORG 0030H START: ; 主程序,定时器T0初始化 MOV TMOD,#02H ; 定时器T0工作在方式2 MOV TCON,#0H MOV TH0, #0E7H ; 配置自动重装初值#0E74.3.4 中断编程举例:利用定时中断产生方波 MOV TL0, #0E7H MOV IE, #82H ; 开定时器T0中断 SETB TR0 ; 启动定时器T0计数LOOP: NOP ; 主程序,空操作 JMP LOOPINTT0: ; Timer0 中断服务程序 CPL P1.0 ; P1.0输出翻转 RETI ; 中断返回 END4.3.4 中断编程举例:利用定时中断产生方波4.3.4 中断编程举例:PWM发生器设计例2:脉冲宽度调制技术,简称PWM技术,在电机调速和开关电源的控制等场合获得了广泛应用。PWM信号是一种周期固定、有效宽度可以调节的方波信号,如上图所示,它的周期T是固定值,有效电平宽度是 ,可根据需求进行调整,它在T中所占的比重 /T,称为占空比。通过调节占空比,就可以调节电机速度或电源电压。4.3.4 中断编程举例:PWM发生器设计用模拟电路产生PWM信号,通常将控制信号与三角波或锯齿波相比较,因此需要有三角波产生电路和比较器电路。如果采用单片机,利用2个定时器即可生成PWM信号。本例介绍利用MCS-51单片机产生PWM波的方法,具体是利用定时器T0来设置PWM波的周期T,利用定时器T1来设置PWM波的有效宽度 ,相关程序的配置如下。在主程序中,进行如下配置: 配置定时器T0和T1都工作在8位自动重装方式; 根据PWM波的周期T,计算定时器T0的计数初值:N0 = 256TfOSC/12,其中fOSC为振荡器频率; 根据PWM波的有效宽度 ,计算定时器T1的计数初值:N1 = 256 fOSC/12; 开定时器T0和T1定时中断,启动定时器T0和T1计数。4.3.4 中断编程举例:PWM发生器设计在定时器T0中断服务程序中,依次完成如下操作: PWM波的输出管脚置为高电平。 启动定时器T1计数。在此之前,定时器T1完成了自动重装但没开始计数。经过时间 后,定时器T1将产生计数溢出中断。 中断返回。在定时器T1中断服务程序中,依次完成如下操作: 停止定时器T1计数。 PWM波的输出脚置为低电平。由于此时有效电平宽度正好达到时间 ,PWM波应翻转为无效电平。 中断返回。4.3.4 中断编程举例:PWM发生器设计例如,设fOSC = 12MHz,要求在引脚P1.0输出频率为10KHz、占空比60%的PWM波。根据前面的公式,可以计算出重装初值为:N0 = 25612M/12/10K = 156 = 9CH;N1 = 25612M/12/10K0.6 = 196 = 0C4H。相应的程序代码如下:4.3.4 中断编程举例:PWM发生器设计; 中断向量表 ORG 0000H ; 主程序向量地址 JMP STA
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。