微机控制系统与应用4_第1页
微机控制系统与应用4_第2页
微机控制系统与应用4_第3页
微机控制系统与应用4_第4页
微机控制系统与应用4_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 中断、定时/计数、串行口4.1 MCS-514.1 MCS-51单片机的中断系统及中断编程单片机的中断系统及中断编程4.2 4.2 定时定时/ /计数器及其编程计数器及其编程4.3 4.3 串行口及其编程串行口及其编程14.1 中断系统及中断编程4.1.1 CPU4.1.1 CPU与与I/OI/O设备间数据传送的控制方法设备间数据传送的控制方法 (同外设交互的协调方式)(同外设交互的协调方式)n程序控制方式程序控制方式n中断方式中断方式nDMADMA方式方式(Direct Memory Access)(Direct Memory Access)24.1 中断系统及中断编程3一、一、 程

2、序控制方式程序控制方式 在在CPUCPU的控制下,通过执行程序指令进行的数据传送方式。又分的控制下,通过执行程序指令进行的数据传送方式。又分为为“无条件传送无条件传送”和和“程序查询传送程序查询传送”两种方式。两种方式。n无条件传送方式:无条件传送方式:在假定外围设备在假定外围设备(Peripheral Device)(Peripheral Device)已经准备已经准备好的情况下,直接利用输入好的情况下,直接利用输入/ /输出指令与外围设备传送数据,而不输出指令与外围设备传送数据,而不去检测外设的工作状态。去检测外设的工作状态。n优点优点:控制程序简单:控制程序简单n缺点缺点:数据传送不可靠

3、:数据传送不可靠n程序查询传送方式程序查询传送方式( (也称也称“条件传送条件传送”方式方式) ):CPUCPU通过执行程序不通过执行程序不断读取并检测外设的状态,只有在外设确实已准备就绪的情况下,断读取并检测外设的状态,只有在外设确实已准备就绪的情况下,才进行数据传送;否则,还要继续不断地查询外设的状态。才进行数据传送;否则,还要继续不断地查询外设的状态。4.1 中断系统及中断编程n优点优点:比无条件传送方式要准确可靠:比无条件传送方式要准确可靠n缺点缺点: 1.CPU1.CPU要不断查询外设的状态,占用了大量要不断查询外设的状态,占用了大量CPUCPU时间,时间,而真正用于数据传送的时间却

4、很少,即而真正用于数据传送的时间却很少,即CPUCPU的工作效率的工作效率很低;很低;2.2.也很难满足实时系统对也很难满足实时系统对I/OI/O处理的要求。处理的要求。44.1 中断系统及中断编程二、二、 中断中断指指CPUCPU暂时停止正在执行的程序,转向执行请求中断的设备或事暂时停止正在执行的程序,转向执行请求中断的设备或事件(通常需要立即响应)的响应程序,处理完后再返回到原来暂件(通常需要立即响应)的响应程序,处理完后再返回到原来暂停的程序继续执行。停的程序继续执行。正在看书正在看书电话铃响电话铃响接电话接电话继续看书继续看书执行程序执行程序事件发生事件发生事件处理事件处理继续执行程序

5、继续执行程序响应并处理中断响应并处理中断中断请求、要求响应中断请求、要求响应实际场景实际场景计算机计算机中断返回中断返回54.1 中断系统及中断编程n优点优点:1.1.提高了的工作效率提高了的工作效率2.2.能能满足实时系统对满足实时系统对I/OI/O处理的要求处理的要求n缺点缺点:在传送的数据量大时,中断方式也不能满足系在传送的数据量大时,中断方式也不能满足系统高效率的要求统高效率的要求64.1 中断系统及中断编程7三、三、 存储器直接访问方式存储器直接访问方式DMADMA(Direct Memory AccessDirect Memory Access) 一种高速的数据传输操作,允许在外部

6、设备和存储一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,不通过,也不需要器之间直接读写数据,不通过,也不需要干预。整个数据传输操作在一个称为干预。整个数据传输操作在一个称为“控制器控制器”的控制下进行的。除了在数据传输开始和结束时的控制下进行的。除了在数据传输开始和结束时作一点处理外,在传输过程中可以进行其它的工作一点处理外,在传输过程中可以进行其它的工作。这样,在大部分时间里,和输入输出都处在作。这样,在大部分时间里,和输入输出都处在并行操作。并行操作。 中断的主要作用:中断的主要作用: (1)(1)实现实现CPUCPU与外部设备的速度配合与外部设备的速度配合( (分时操作

7、分时操作) )。 CPUCPU需要和外部设需要和外部设备交换信息时,可先行启动外部设备,然后又去执行原来程序。待外备交换信息时,可先行启动外部设备,然后又去执行原来程序。待外部设备准备完成后,可以向部设备准备完成后,可以向CPUCPU发出中断请求,发出中断请求,CPUCPU的中断服务子程的中断服务子程序与外部设备交换信息,操作完成后,序与外部设备交换信息,操作完成后,CPUCPU再返回继续执行原程序。再返回继续执行原程序。 (2)(2)实现实时控制。借助中断技术计算机可以及时响应和处理被控对实现实时控制。借助中断技术计算机可以及时响应和处理被控对象的请求,确保被控对象保持在最佳状态。象的请求,

8、确保被控对象保持在最佳状态。 (3)(3)实现故障的及时处理。借助中断技术可以对计算机运行中的某些实现故障的及时处理。借助中断技术可以对计算机运行中的某些故障故障( (如断电故障、运算出错等如断电故障、运算出错等) )及时发现,并迅速自动处理。及时发现,并迅速自动处理。4.1 中断系统及中断编程84.1.2 4.1.2 中断与中断系统中断与中断系统4.1 中断系统及中断编程9中断系统的功能与组成中断系统的功能与组成n 功能:功能:1.1.多中断源请求,软件可禁止与允许每个请求。多中断源请求,软件可禁止与允许每个请求。2.2.中断优先级判别功能,响应优先级别最高的请求。中断优先级判别功能,响应优

9、先级别最高的请求。3.3.中断嵌套功能,高级别中断可中断较低级别的中断。中断嵌套功能,高级别中断可中断较低级别的中断。4.4.响应中断后,能自动转向中断处理子程序,处理结束后响应中断后,能自动转向中断处理子程序,处理结束后 自动返回主程序。自动返回主程序。4.1 中断系统及中断编程10n 组成:组成:1.1.处理器应有处理中断请求的机制与相关硬件电路:接收处理器应有处理中断请求的机制与相关硬件电路:接收 请求,响应请求,保护断点,转向中断服务子程序,处理请求,响应请求,保护断点,转向中断服务子程序,处理 完返回。完返回。2.2.外围应有一个与处理器匹配的中断控制器:管理多个中断外围应有一个与处

10、理器匹配的中断控制器:管理多个中断 源,优先级裁决,中断源屏蔽等功能。源,优先级裁决,中断源屏蔽等功能。3.3.依依处理器的结构编写中断处理子程序,安排相关的系统初处理器的结构编写中断处理子程序,安排相关的系统初 始化。始化。中断源:中断源:n 外部中断请求外部中断请求0 0(INT0INT0),由),由P3.2P3.2引脚接入引脚接入n 外部中断请求外部中断请求1 1(INT1INT1),由),由P3.3P3.3引脚接入引脚接入n 内部定时内部定时/ /计数器计数器0 0溢出中断请求溢出中断请求n 内部定时内部定时/ /计数器计数器1 1溢出中断请求溢出中断请求n 内部串行口发送内部串行口发

11、送/ /接收中断请求接收中断请求与中断系统有关的与中断系统有关的SFRSFR:n 定时及外部中断控制寄存器定时及外部中断控制寄存器TCONTCONn 串行口中断控制寄存器串行口中断控制寄存器SCONSCONn 中断允许控制寄存器中断允许控制寄存器IEIEn 中断优先级控制寄存器中断优先级控制寄存器IP IP 114.1 中断系统及中断编程4.1.3 80514.1.3 8051的中断系统的中断系统一、中断系统的组成一、中断系统的组成1 1 定时及外部中断控制寄存器定时及外部中断控制寄存器TCONTCON中的中断源请求标志(可位寻址)中的中断源请求标志(可位寻址)4.1 中断系统及中断编程表表

12、4.1 TCON 的中断标志的中断标志 D7 D6 D5 D4 D3 D2 D1 D08FH8DH8BH8AH89H88HTF1TF0IE1IT1IE0IT0IT0/IT1IT0/IT1:INT0/INT1INT0/INT1的触发方式的触发方式 (ITx)=1 (ITx)=1 下降沿触发;下降沿触发;(ITx)=0 (ITx)=0 低电平触发。低电平触发。IE0/IE1IE0/IE1:INT0/INT1INT0/INT1的中断请求标志的中断请求标志 (IEx)=1 (IEx)=1 有中断;有中断;(IEx)=0 (IEx)=0 无中断。无中断。TF0/TF1TF0/TF1:定时:定时/ /计数

13、器计数器T0/T1T0/T1的中断请求标志的中断请求标志 (TFx)=1 (TFx)=1 有中断;有中断;(TFx)=0 (TFx)=0 无中断。无中断。 以上以上4 4个中断请求标志在个中断请求标志在CPUCPU响应中断后,由硬件自动清除。响应中断后,由硬件自动清除。 122 2 串行口中断控制寄存器串行口中断控制寄存器SCONSCON中的中断源请求标志(可位寻址)中的中断源请求标志(可位寻址)4.1 中断系统及中断编程表表 4.2 SCON 的中断标志的中断标志 D7 D6 D5 D4 D3 D2 D1 D099H98HTIRIRIRI:串行口接收中断请求标志:串行口接收中断请求标志 (R

14、I)=1 (RI)=1 有中断;有中断;(RI)=0 (RI)=0 无中断。无中断。TITI:串行口发送中断请求标志:串行口发送中断请求标志 (TI)=1 (TI)=1 有中断;有中断;(TI)=0 (TI)=0 无中断。无中断。 串行口的中断是在接收或发送完一帧信息后产生。串行口的中断是在接收或发送完一帧信息后产生。RIRI和和TITI在在CPUCPU响应中断后不会自动清除,必须用程序清除。响应中断后不会自动清除,必须用程序清除。 133 3 中断允许控制寄存器中断允许控制寄存器IE IE (可位寻址)(可位寻址)4.1 中断系统及中断编程表表 4.3 中断允许控制寄存器中断允许控制寄存器

15、IE 格式格式 D7 D6 D5 D4 D3 D2 D1 D0AFHACHABHAAHA9HA8HEAESET1EX1ET0EX0EX0/EX1EX0/EX1:INT0/INT1INT0/INT1的中断允许控制的中断允许控制(EXx)=1 (EXx)=1 允许中断;允许中断;(EXx)=0 (EXx)=0 禁止中断。禁止中断。ET0/ET1ET0/ET1:定时:定时/ /计数器计数器T0/T1T0/T1的中断允许控制的中断允许控制(ETx)=1 (ETx)=1 允许中断;允许中断;(ETx)=0 (ETx)=0 禁止中断。禁止中断。ESES:串行口中断允许控制:串行口中断允许控制 (ES)=1

16、 (ES)=1 允许中断;允许中断;(ES)=0 (ES)=0 禁止中断。禁止中断。EAEA:中断允许控制:中断允许控制 (总控制)(总控制) (EA)=1 (EA)=1 允许所有中断;允许所有中断;(EA)=0 (EA)=0 禁止所有中断。禁止所有中断。144.1 中断系统及中断编程【例【例1 1】 假设某单片机系统允许片内定时器假设某单片机系统允许片内定时器/ /计数器中断,禁止其它的计数器中断,禁止其它的中断。试设置中断。试设置IEIE的值。的值。方法一:方法一:用字节操作指令用字节操作指令 MOV IEMOV IE,#8AH#8AH或或 MOV 0A8HMOV 0A8H,#8AH#8A

17、H方法二:方法二:用位操作指令用位操作指令 SETB ET0SETB ET0 SETB ET1SETB ET1 SETB EASETB EA15表表 4.3 中断允许控制寄存器中断允许控制寄存器 IE 格式格式 D7 D6 D5 D4 D3 D2 D1 D0AFHACHABHAAHA9HA8HEAESET1EX1ET0EX04 4 中断优先级别控制寄存器中断优先级别控制寄存器IPIP(可位寻址)(可位寻址)4.1 中断系统及中断编程PX0/PX1PX0/PX1:INT0/INT1INT0/INT1的中断优先级别控制的中断优先级别控制(PXx)=1 (PXx)=1 高优先级;高优先级;(PXx)

18、=0 (PXx)=0 低优先级。低优先级。PT0/PT1PT0/PT1:定时:定时/ /计数器计数器T0/T1T0/T1的中断优先级别控制的中断优先级别控制(PTx)=1 (PTx)=1 高优先级;高优先级;(PTx)=0 (PTx)=0 低优先级。低优先级。PSPS:串行口中断中断优先级别控制:串行口中断中断优先级别控制 (PS)=1 (PS)=1 高优先级;高优先级;(PS)=0 (PS)=0 低优先级。低优先级。表表 4.4 中断优先级别控制寄存器中断优先级别控制寄存器 IP 格式格式 D7 D6 D5 D4 D3 D2 D1 D0BCHBBHBAHB9HB8HPSPT1PX1PT0PX

19、0164.1 中断系统及中断编程5 5 中断响应的优先原则中断响应的优先原则 当有多个中断源向当有多个中断源向CPUCPU申请中断时,申请中断时,CPUCPU按以下优先原则响应:按以下优先原则响应: (1 1)低级中断可被高级中断所中断,反之不能;)低级中断可被高级中断所中断,反之不能; (2 2)相同级别的中断不能再被中断;)相同级别的中断不能再被中断; (3 3)相同级别的中断同时到来时,)相同级别的中断同时到来时,CPUCPU按其中断入口地址的先后按其中断入口地址的先后 次序依次响应。顺序为:次序依次响应。顺序为: 外部中断请求外部中断请求0 0(INT0INT0)0003H0003H内

20、部定时内部定时/ /计数器计数器0 0溢出中断溢出中断000BH000BH外部中断请求外部中断请求1 1(INT1INT1) 0013H 0013H 内部定时内部定时/ /计数器计数器1 1溢出中断溢出中断001BH001BH串行口发送串行口发送/ /接收中断接收中断0023H0023H1718中断嵌套:中断嵌套:(1 1)低优先级状态触发器(不可寻址):屏蔽新的同级中断请求低优先级状态触发器(不可寻址):屏蔽新的同级中断请求(2 2)高优先级状态触发器(不可寻址):屏蔽所有新的中断请求高优先级状态触发器(不可寻址):屏蔽所有新的中断请求4.1 中断系统及中断编程19【例【例2 2】 假设某单

21、片机系统片外中断为高优先级,片内中断为低假设某单片机系统片外中断为高优先级,片内中断为低优先级。试设置优先级。试设置IPIP的值。的值。方法一:用字节操作指令方法一:用字节操作指令 MOV IPMOV IP,#05H#05H或或 MOV 0B8HMOV 0B8H,#05H#05H方法二:用位操作指令方法二:用位操作指令 SETB PX0SETB PX0 SETB PX1 SETB PX1 CLR PS CLR PS CLR PT0 CLR PT0 CLR PT1 CLR PT1表表 4.4 中断优先级别控制寄存器中断优先级别控制寄存器 IP 格式格式 D7 D6 D5 D4 D3 D2 D1

22、D0BCHBBHBAHB9HB8HPSPT1PX1PT0PX020图图4.1 MCS-514.1 MCS-51中断系统功能结构中断系统功能结构4.1 中断系统及中断编程1. 1. 中断响应中断响应 中断响应条件(中断响应条件(6 6条)条) (1 1)有中断请求;)有中断请求; (2 2)CPUCPU开放中断,即开放中断,即EA=1 EA=1 ; (3 3)对应的中断源允许中断,即)对应的中断源允许中断,即IEIE中相应的中断允许位为中相应的中断允许位为1 1 ; (4 4)无同级或高级中断正在服务;)无同级或高级中断正在服务; (5 5)现行指令执行结束;)现行指令执行结束; (6 6)当前

23、执行的不是)当前执行的不是RETIRETI或访问或访问IEIE、IPIP的指令(这些指令执行的指令(这些指令执行完完 后必须至少再执行一条指令)。后必须至少再执行一条指令)。二、中断处理过程二、中断处理过程 中断处理过程分为三个阶段:响应、处理、返回。中断处理过程分为三个阶段:响应、处理、返回。21中断响应操作过程中断响应操作过程(1 1)查询中断源)查询中断源(a a)外部中断)外部中断0 0、1 1需要在需要在S5P2S5P2期间进行采样,置中断标志;期间进行采样,置中断标志;(b b)查询中断标志:在采样机器周期的下一个周期的)查询中断标志:在采样机器周期的下一个周期的S6S6进行;进行

24、;(c c)处理中断:在查询机器周期的下一个周期进行。)处理中断:在查询机器周期的下一个周期进行。(2 2)置中断处理标志)置中断处理标志 对不可编程的对不可编程的“高优先级状态触发器高优先级状态触发器”或或“低优先级状态触发器低优先级状态触发器”置位。置位。(3 3)转入中断处理部分)转入中断处理部分4.1 中断系统及中断编程22中断响应时间中断响应时间(3838个机器周期个机器周期) (1 1)基本响应时间()基本响应时间(3 3个机器周期)个机器周期)(a a)查询中断标志:)查询中断标志:1 1个机器周期;个机器周期;(b b)转去中断入口地址的)转去中断入口地址的LCALLLCALL

25、指令:指令:2 2个机器周期。个机器周期。 (2 2)额外的处理时间()额外的处理时间(0 5 0 5 个机器周期)个机器周期) MULMUL或或DIVDIV指令:指令:4 4个机器周期。个机器周期。 RETIRETI指令:指令:2 2个机器周期;个机器周期;4.1 中断系统及中断编程232. CPU2. CPU的中断处理操作的中断处理操作4.1 中断系统及中断编程24 当当CPUCPU响应中断后,响应中断后,CPUCPU自动进行以下操作响应:自动进行以下操作响应:(1 1)转去执行中断服务子程序:硬件自动产生的)转去执行中断服务子程序:硬件自动产生的LCALLLCALL指令指令(a a)保护

26、断点,将当前)保护断点,将当前PCPC值压入堆栈值压入堆栈 (先送低(先送低8 8位,位,再送高再送高8 8位)位) ;(b b)把相应的中断入口地址装入)把相应的中断入口地址装入PCPC;(2 2)清除可自动清除的中断标志;)清除可自动清除的中断标志;(3 3)开始执行中断服务子程序,直到执行指令)开始执行中断服务子程序,直到执行指令RETIRETI。3. 3. 中断返回操作中断返回操作4.1 中断系统及中断编程25 CPU CPU在中断服务子程序中执行完在中断服务子程序中执行完RETIRETI指令后,将堆栈中的指令后,将堆栈中的原原PCPC值送回值送回PCPC,返回断点,返回断点,继续执行

27、被中断的程序。继续执行被中断的程序。在中断服务子程序的最后必须用在中断服务子程序的最后必须用“RETI”RETI”指令。指令。 RETIRETI指令作用有二:指令作用有二: (1 1)子程序返回;)子程序返回; (2 2)清除中断处理标志,即给)清除中断处理标志,即给“优先级状态触发器优先级状态触发器”清清0 0。ORG 0000HORG 0000HLJMP MAIN LJMP MAIN ;主程序入口;主程序入口ORG 0003HORG 0003HLJMP INT0 LJMP INT0 ;外部中断;外部中断0 0中断服务程序入口中断服务程序入口ORG 000BHORG 000BHLJMP TI

28、ME0LJMP TIME0;定时;定时/ /计数器计数器0 0中断服务程序入口中断服务程序入口ORG 0013HORG 0013HLJMP INT1 LJMP INT1 ; 外部中断外部中断1 1中断服务程序入口中断服务程序入口ORG 001BHORG 001BHLJMP TIME1LJMP TIME1;定时;定时/ /计数计数1 1中断服务程序入口中断服务程序入口ORG 0023HORG 0023HLJMP SCOMLJMP SCOM; 串行通信中断服务程序入口地址串行通信中断服务程序入口地址 ORG 0030H ORG 0030H MAIN: MAIN: 264.1 中断系统及中断编程4.

29、1.4 4.1.4 中断编程中断编程含有中断服务程序的程序结构含有中断服务程序的程序结构274.1 中断系统及中断编程含有中断服务程序的程序结构含有中断服务程序的程序结构 ORG XXXXH ORG XXXXHINT0: INT0: ;外部中断;外部中断0 0服务程序服务程序 RETIRETITIME0:TIME0:;定时;定时/ /计数器计数器0 0服务程序服务程序 RETIRETIINT1: INT1: ;外部中断;外部中断1 1服务程序服务程序 RETIRETITIME1:TIME1:;定时;定时/ /计数器计数器1 1服务程序服务程序 RETIRETISCOM: SCOM: ;串行通信

30、中断服务程序;串行通信中断服务程序 RETIRETIORG 0030HORG 0030HMAIN:MAIN: LCALL INITLCALL INITLOOP:LOOP: LCALL SUB1LCALL SUB1LCALL SUBnLCALL SUBnLJMP LOOPLJMP LOOPORG XXXXHORG XXXXHINIT: INIT: ;初始化操作;初始化操作RETRETSUB1:SUB1: ;子程序;子程序1 1RETRETSUBn:SUBn: ;子程序;子程序n nRETRET284.1 中断系统及中断编程主程序的编程:主程序的编程:(1 1)初始化操作,重置)初始化操作,重置

31、堆栈指针堆栈指针SPSP,设置中,设置中 断触发方式、优先级断触发方式、优先级 别,开中断;别,开中断;(2 2)调用各子程序;)调用各子程序;(3 3)循环等待中断源的)循环等待中断源的 请求。请求。294.1 中断系统及中断编程 中断服务子程序的编程中断服务子程序的编程 :(1 1)保护现场()保护现场(ACCACC、 PSWPSW、DPTRDPTR、RnRn等等 重要寄存器);重要寄存器);(2 2)清除必须由程序清)清除必须由程序清 除的中断标志(除的中断标志(RIRI、 TITI););(3 3)执行其他操作)执行其他操作(4 4)恢复现场,返回主)恢复现场,返回主 程序程序4.1

32、中断系统及中断编程30编写中断服务子程序应注意的几点:编写中断服务子程序应注意的几点: (1 1)中断服务子程序入口处的处理:)中断服务子程序入口处的处理:视需要确定是否保护现场;及视需要确定是否保护现场;及时清除那些不能自动清除的中断标志时清除那些不能自动清除的中断标志 (2 2)程序中可以禁止高级中断;)程序中可以禁止高级中断; (3 3)在保护和恢复现场时可关闭)在保护和恢复现场时可关闭CPUCPU中断,以免造成混乱。中断,以免造成混乱。 (4 4)中断服务子程序中的)中断服务子程序中的“PUSH”PUSH”与与“POP”POP”指令必须成对使用指令必须成对使用 (5 5)主程序与中断服

33、务程序间的参数传递方法:)主程序与中断服务程序间的参数传递方法:a. a. 寄存器;寄存器;b. b. 存储单元;存储单元;c. c. 堆栈。堆栈。4.1 中断系统及中断编程 例例33:外部中断外部中断INT0INT0的中断编程。的中断编程。主程序:主程序:ORG 0000HORG 0000HAJMP MAIN AJMP MAIN ;主程序入口;主程序入口ORG 0003HORG 0003HAJMP INTO AJMP INTO ;中断服务子程序入口;中断服务子程序入口ORG 0030HORG 0030HMAIN:MAIN: MOV SP, #5FHMOV SP, #5FH;重置堆栈指针;重置

34、堆栈指针SETB IT0 SETB IT0 ;下降沿触发;下降沿触发SETB PX0 SETB PX0 ;高优先级;高优先级SETB EX0SETB EX0;允许外部中断;允许外部中断0 0中断中断SETB EASETB EA;开中断;开中断LOOP:LOOP: AJMP LOOP AJMP LOOP ;循环等待;循环等待31子程序:子程序:ORG 1000HORG 1000HINT0:INT0:PUSH PSW PUSH PSW ;保护;保护PSWPSWPUSH A PUSH A ;保护;保护ACCACCPUSH DPH PUSH DPH ;保护;保护DPTRDPTRPUSH DPL PUS

35、H DPL MOV PSW,#08HMOV PSW,#08H;切换;切换RnRn;其他操作;其他操作POP DPLPOP DPL ;恢复;恢复DPTRDPTRPOP DPH POP DPH POP A POP A ;恢复;恢复ACCACCPOP PSW POP PSW ;恢复;恢复PSWPSWRETIRETI4.1 中断系统及中断编程3233【例【例4 4】 如右图所示,如右图所示,将将P1P1口的口的P1.4P1.7P1.4P1.7作为作为输入位,输入位, P1.0P1.3P1.0P1.3作为作为输出位。要求利用输出位。要求利用80518051将开关所设的数据读入将开关所设的数据读入单片机,

36、并依次通过单片机,并依次通过P1.0P1.3P1.0P1.3输出,驱动发输出,驱动发光二极管,以检查光二极管,以检查P1.4P1.4P1.7P1.7输入的电平情况输入的电平情况( (高电平高电平LEDLED亮亮) )。现要。现要求采用中断触发方式求采用中断触发方式, , 每每中断一次完成一次操作中断一次完成一次操作。34程序如下:程序如下: ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ORG 0003H ORG 0003H AJMP INTER AJMP INTER ORG 0030H ORG 0030HMAINMAIN: MOV SP, #5FHMOV SP

37、, #5FH SETB EX0 SETB EX0 SETB IT0 SETB IT0 SETB EA SETB EAHEREHERE: SJMP HERESJMP HERE 中断服务子程序:中断服务子程序:(输入、显示)(输入、显示) ORG 0200HORG 0200HINTERINTER:MOV P1MOV P1,#0F0H#0F0H MOV A MOV A,P1P1 SWAP A SWAP A MOV P1 MOV P1,A A RETI RETI 4.1 中断系统及中断编程4.1 中断系统及中断编程354.1.5 4.1.5 外部中断扩展方法外部中断扩展方法 1. 1. 利用定时器扩展

38、外部中断源利用定时器扩展外部中断源 2. 2. 中断加查询扩展外部中断源中断加查询扩展外部中断源 中断加查询扩展外部中断源中断加查询扩展外部中断源 电路及工作原理:电路及工作原理: 各个外中断经过各个外中断经过“线与线与” 接入到接入到INT0INT0或或INT1INT1上,上, 下跳沿产生中断请求。下跳沿产生中断请求。 P1.0P1.3P1.0P1.3用于查询。用于查询。4.1 中断系统及中断编程36中断程序入口及主程序:中断程序入口及主程序: ORG 0000HORG 0000HSTARTSTART:AJMP MAINAJMP MAIN ORG 0003H ORG 0003H LJMP I

39、NTRP LJMP INTRP : MAINMAIN: MOV SP, #5FHMOV SP, #5FH SETB EX0SETB EX0 SETB IT0 SETB IT0 SETB EA SETB EAHEREHERE: SJMP HERESJMP HERE37中断服务程序的查询部分中断服务程序的查询部分 设设4 4个装置的中断优先级是个装置的中断优先级是装置装置1 1装置装置4 4, , 其程序为:其程序为:INTRPINTRP:CLR EA CLR EA ;关中断;关中断 PUSH PSWPUSH PSW PUSH A PUSH A SETB EA SETB EA JB P1.0, D

40、V1 JB P1.0, DV1 JB P1.1, DV2 JB P1.1, DV2 JB P1.2, DV3 JB P1.2, DV3 JB P1.3, DV4 JB P1.3, DV4EXIT: CLR EAEXIT: CLR EA POP A POP A POP PSW POP PSW SETB EA SETB EA RETI RETI各装置的中断服务程序部分:各装置的中断服务程序部分:DV1DV1: ( (装置装置1 1的中断服务程序的中断服务程序) ) : LJMP EXITLJMP EXITDV2DV2: ( (装置装置2 2的中断服务程序的中断服务程序) ) : LJMP EXIT

41、LJMP EXITDV3DV3: ( (装置装置3 3的中断服务程序的中断服务程序) ) : LJMP EXITLJMP EXITDV4DV4: ( (装置装置4 4的中断服务程序的中断服务程序) ) : LJMP EXITLJMP EXIT4.1 中断系统及中断编程38【例【例5 5】 如右图所如右图所示的中断电路可实现系示的中断电路可实现系统的故障显示。当系统统的故障显示。当系统的各部分正常工作时,的各部分正常工作时,4 4个故障源的输入均为个故障源的输入均为低电平,显示灯全不低电平,显示灯全不亮。当有某个部分出现亮。当有某个部分出现故障时,则相应的输入故障时,则相应的输入线由低电平变为高

42、电平线由低电平变为高电平,相应的发光二极管点,相应的发光二极管点亮。亮。4.1 中断系统及中断编程39程序如下:程序如下: ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ORG 0003H ORG 0003H AJMP INTER AJMP INTER ORG 0030H ORG 0030HMAINMAIN: MOV SP, #5FHMOV SP, #5FH SETB EX0SETB EX0 SETB IT0 SETB IT0 SETB EA SETB EAHEREHERE: SJMP HERESJMP HERE 中断服务子程序:中断服务子程序: ORG 010

43、0HORG 0100HINTERINTER:JNB P1.0, L1JNB P1.0, L1 SETB P1.1 SETB P1.1L1: JNB P1.2, L2L1: JNB P1.2, L2 SETB P1.3 SETB P1.3L2: JNB P1.4, L3L2: JNB P1.4, L3 SETB P1.5 SETB P1.5L3: JNB P1.6, L4L3: JNB P1.6, L4 SETB P1.7 SETB P1.7L4: RETIL4: RETI 4.2 定时/计数器及其编程4.2.1 4.2.1 定时定时/ /计数器的结构及工作原理计数器的结构及工作原理40 MCS

44、-51 MCS-51单片机片内有两个单片机片内有两个1616位的定时位的定时/ /计数器,定时器计数器,定时器T0T0和定和定时器时器T1T1。它们可以通过编程设置为定时器或计数器使用,为加。它们可以通过编程设置为定时器或计数器使用,为加1 1计计数器,可用来实现定时控制、延时、脉冲信号参数测量以及对外部数器,可用来实现定时控制、延时、脉冲信号参数测量以及对外部事件的计数及检测。定时器事件的计数及检测。定时器/ /计数器的结构如图计数器的结构如图4.24.2所示。所示。定时器定时器/ /计数器的结构框图计数器的结构框图41 作为定时器用时的计时速度:作为定时器用时的计时速度:一个机器周期计数器

45、加一个机器周期计数器加1 1,直至计满溢出。例如晶振为,直至计满溢出。例如晶振为12MHz12MHz的的单片机,一个机器周期为单片机,一个机器周期为1s1s,其计数频率为振荡频率的,其计数频率为振荡频率的1/12 1/12 。作为计数器用时的计数速度:作为计数器用时的计数速度:每两个机器周期计数器加每两个机器周期计数器加1 1,计数频率最高为振荡频率的,计数频率最高为振荡频率的1/241/24。在在S1P2S1P2对计数输入引脚对计数输入引脚T0T0、T1T1进行采样,进行采样,下降沿计数下降沿计数。说明:说明: 定时器定时器/ /计数器在工计数器在工作期间不占用作期间不占用CPUCPU的时间

46、。的时间。4.2 定时/计数器及其编程4.2 定时/计数器及其编程4.2.2 4.2.2 定时定时/ /计数器的控制寄存器和方式控制寄存器计数器的控制寄存器和方式控制寄存器表表 4.5 定时定时/计数器控制寄存器计数器控制寄存器 TCON 的格式的格式 D7 D6 D5 D4 D3 D2 D1 D08FH8EH8DH8CH8BH8AH89H88HTF1TR1TF0TR0IE1IT1IE0IT0TCONTCON:定时定时/ /计数器控制寄存器,可按位寻址计数器控制寄存器,可按位寻址TF0/TF1TF0/TF1:定时:定时/ /计数器计数器T0/T1T0/T1的中断请求标志的中断请求标志 (TFx

47、)=1 (TFx)=1有中断;有中断;(TFx)=0 (TFx)=0 无中断。无中断。TR0/TR1TR0/TR1:定时:定时/ /计数器计数器T0/T1T0/T1的运行控制位的运行控制位 (TRx)=1 (TRx)=1 开启定时开启定时/ /计数,计数,(TRx)=0 (TRx)=0 关闭定时关闭定时/ /计数。计数。424.2 定时/计数器及其编程TMODTMOD:定时定时/ /计数器方式控制寄存器(不能位寻址)计数器方式控制寄存器(不能位寻址)M1/M0M1/M0:定时:定时/ /计数器计数器T0/T1T0/T1的工作方式选择的工作方式选择 00 = 00 = 方式方式0 0,1313位

48、定时位定时/ /计数器计数器 01 = 01 = 方式方式1 1,1616位定时位定时/ /计数器计数器 10 = 10 = 方式方式2 2,可自动再装入的,可自动再装入的8 8位定时位定时/ /计数器计数器 11 = 11 = 方式方式3 3,把,把T0T0分成分成2 2个个8 8位定时位定时/ /计数器计数器C/TC/T:定时:定时/ /计数器选择计数器选择 (C/T)=1 (C/T)=1 计数;计数;(C/T)=0 (C/T)=0 定时。定时。GATEGATE:辅助运行控制位,:辅助运行控制位, (GATE)=0 (GATE)=0时时 启停只受启停只受TRxTRx控制;控制;(GATE)

49、=1(GATE)=1时时 启停同时受启停同时受TRxTRx和和INTx INTx 的控制的控制 。4344定时定时/ /计数器的四种工作模式称为:模式计数器的四种工作模式称为:模式0 0、模式、模式1 1、模式模式2 2、模式、模式3 3,由特殊功能寄存器,由特殊功能寄存器TMODTMOD确定。确定。主要讨论各种工作模式的工作原理、特点和应用。主要讨论各种工作模式的工作原理、特点和应用。4.2.3 4.2.3 定时定时/ /计数器的工作模式计数器的工作模式4.2 定时/计数器及其编程 模式模式00:M1M0=00M1M0=00,1313位定时位定时/ /计数器。计数器。模式模式0 0工作时的构

50、成:工作时的构成: (1 1)运行)运行控制部分控制部分;(;(2 2)定时)定时/ /计数计数信号源信号源; (3 3)1313位位计数器计数器; (4 4)溢出标志溢出标志。4.2 定时/计数器及其编程4546特点:特点:(1 1)可定时()可定时(C/T=0C/T=0)、可计数()、可计数(C/T=1C/T=1) ;(2 2)1313位方式(位方式(TL0/TL1TL0/TL1的低的低5 5位和位和TH0/TH1TH0/TH1的的8 8位);位);(3 3)INT0INT0、INT1INT1是定时器是定时器/ /计数器计数器T0T0、T1T1的外部门,的外部门, GATE=1GATE=1

51、允许使用外部门(允许使用外部门(TR0/TR1TR0/TR1应置应置1 1), , 此时用外部门控制运行;此时用外部门控制运行; GATE=0GATE=0禁止外部门,此时用禁止外部门,此时用TR0/TR1TR0/TR1控制运行;控制运行;(4 4)定时时间)定时时间t t、计数值、计数值N N和计数初值和计数初值X X的关系的关系 :N = 2N = 21313- - 初值初值X Xt =Nt =N* *振荡周期振荡周期* *12 =N12 =N* *机器周期机器周期TcyTcyt = t = (2 21313- -初值初值X X)* *振荡周期振荡周期* *1212 = = (2 21313

52、- -初值初值X X)* *机器周期机器周期TcyTcy最大计数值为:最大计数值为: 2 21313 = = 819281924.2 定时/计数器及其编程47应用举例应用举例: :【例【例1 1】 设定时器设定时器T0T0选择工作模式选择工作模式0 0,定时时间为,定时时间为1ms1ms, osc=6MHzosc=6MHz。试确定试确定T0T0初值,计算最大定时时间初值,计算最大定时时间T T。解:解: (1 1)求)求T0T0的初值的初值X X由公式:由公式:t=(2t=(21313-T0-T0初值初值) )* *机器周期机器周期Tcy Tcy 机器周期机器周期Tcy=12Tcy=12* *

53、1/osc=12/6000000s=2s1/osc=12/6000000s=2s t=1ms=1000s t=1ms=1000s得:得: 1000=1000=( 2 21313 -X -X)* *2 2所以初值所以初值 X=8192-500=7692=1111000001100BX=8192-500=7692=1111000001100BT0T0的高的高8 8位:位:11110000B=F0H11110000B=F0HT0T0的低的低5 5位:位:01100B=0CH01100B=0CH(2 2)最大定时时间)最大定时时间T T 当当T0T0的初值的初值=0=0时为最大定时时间时为最大定时时间

54、T=T=(2 21313 -0 -0)* *2=81922=8192* *2s =16384 s =16.384ms2s =16384 s =16.384ms76927692 32 32商为高商为高8 8位,位,余数为低余数为低5 5位位4.2 定时/计数器及其编程【例【例2 2】编程实现在编程实现在P1.0P1.0引脚上输出周期为引脚上输出周期为2ms2ms的方波。要求:利用的方波。要求:利用T0T0的的工作模式工作模式0 0产生产生1ms1ms的定时。设单片机的晶振频率的定时。设单片机的晶振频率osc=12MHzosc=12MHz。解解:方法:方法:定时定时1ms1ms,对,对P1.0P1

55、.0取反,然后继续定时取反,然后继续定时(1 1)设置模式字)设置模式字TMOD= TMOD= * * * * * 0000B 0000B =00000000B=00H =00000000B=00H (2 2)计算初值)计算初值由公式:由公式: t=(2t=(21313-T0-T0初值初值) )* *机器周期机器周期 机器周期:机器周期:Tcy=12Tcy=12* *1/osc=12/12000000s=1s1/osc=12/12000000s=1s定时时间:定时时间:t=1ms=1000st=1ms=1000s,得:得: 1000=1000=( 2 21313 -X -X)* *1=1=(8

56、192-X8192-X)* *1 1所以初值:所以初值: X=7192=1110000011000BX=7192=1110000011000BT0T0的高的高8 8位位TH0TH0:11100000B=E0H11100000B=E0HT0T0的低的低5 5位位TL0TL0:11000B=18H11000B=18H481ms2ms71927192 32 32商为高商为高8 8位,位,余数为低余数为低5 5位位4.2 定时/计数器及其编程4.2 定时/计数器及其编程49(3 3)程序清单)程序清单方法一:中断方式方法一:中断方式 ORG 0000HORG 0000H LJMP MAIN LJMP

57、MAIN ORG 000BH ORG 000BH LJMP CTC0 LJMP CTC0;主程序;主程序 ORG 0030HORG 0030HMAINMAIN: MOV SPMOV SP,#5FH#5FH MOV TMOD MOV TMOD,#0#0 MOV TL0 MOV TL0,#18H#18H MOV TH0 MOV TH0,#0E0H#0E0H SETB ET0 SETB ET0 SETB EA SETB EA SETB TR0 SETB TR0 SJMP $ SJMP $; ;中断服务程序中断服务程序 ORG 0100HORG 0100HCTC0CTC0: MOV TL0MOV TL

58、0,#18H#18H MOV TH0 MOV TH0,#0E0H#0E0H CPL P1.0 CPL P1.0 RETI RETI4.2 定时/计数器及其编程50方法二:查询方式方法二:查询方式 ORG 0030HORG 0030HSTARTSTART:MOV TMODMOV TMOD,#0#0 MOV TL0 MOV TL0,#18H#18H MOV TH0 MOV TH0,#0E0H #0E0H SETB TR0 SETB TR0LOOPLOOP: JBC TF0JBC TF0,NEXTNEXT SJMP LOOP SJMP LOOP可替换为可替换为: :LOOPLOOP:JNB TF0J

59、NB TF0,$ $ CLR TF0 CLR TF0 MOV TL0MOV TL0,#18H#18H : :NEXTNEXT: MOV TL0MOV TL0,#18H#18H MOV TH0 MOV TH0,#0E0H #0E0H CPL P1.0 CPL P1.0 SJMP LOOP SJMP LOOP 模式模式11:M1M0=01M1M0=01,1616位定时位定时/ /计数器。计数器。模式模式1 1工作时的结构构成:工作时的结构构成: (1 1)运行控制运行控制部分;部分; (2 2)定时)定时/ /计数计数信号源信号源; (3 3)1616位位计数器计数器; (4 4)溢出标志溢出标志

60、。4.2 定时/计数器及其编程514.2 定时/计数器及其编程52特点特点(1 1)可定时()可定时(C/T=0C/T=0)、可计数()、可计数(C/T=1C/T=1) ;(2 2)1616位方式位方式(TL0(TL0、TL1TL1为低为低8 8位,位,TH0TH0、TH1TH1为高为高8 8位位) );(3 3)INT0INT0、INT1INT1是定时器是定时器/ /计数器计数器T0T0、T1T1的外部门,的外部门, GATE=1GATE=1允许使用外部门(允许使用外部门(TR0TR0、TR1TR1应置应置1 1), , 此时用外部门控制运此时用外部门控制运行行 GATE=0GATE=0禁止

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论