单片机原理与应用 教学课件 ppt 作者 杭和平 第7章_MCS-51单片机的中断系统(二)

上传人:E**** 文档编号:89472861 上传时间:2019-05-25 格式:PPT 页数:37 大小:906KB
返回 下载 相关 举报
单片机原理与应用 教学课件 ppt 作者 杭和平 第7章_MCS-51单片机的中断系统(二)_第1页
第1页 / 共37页
单片机原理与应用 教学课件 ppt 作者 杭和平 第7章_MCS-51单片机的中断系统(二)_第2页
第2页 / 共37页
单片机原理与应用 教学课件 ppt 作者 杭和平 第7章_MCS-51单片机的中断系统(二)_第3页
第3页 / 共37页
单片机原理与应用 教学课件 ppt 作者 杭和平 第7章_MCS-51单片机的中断系统(二)_第4页
第4页 / 共37页
单片机原理与应用 教学课件 ppt 作者 杭和平 第7章_MCS-51单片机的中断系统(二)_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《单片机原理与应用 教学课件 ppt 作者 杭和平 第7章_MCS-51单片机的中断系统(二)》由会员分享,可在线阅读,更多相关《单片机原理与应用 教学课件 ppt 作者 杭和平 第7章_MCS-51单片机的中断系统(二)(37页珍藏版)》请在金锄头文库上搜索。

1、第七章 MCS-51单片机的中断系统与定时/计数器,7.1中断系统 7.1.1概述 7.1.2 AT89C51中断系统 7.1.3中断应用实例 7.2定时/计数器及应用 7.2.1定时/计数器0、1 的结构及工作原理 7.2.2定时/计数器0、1 的四种工作方式 7.2.3定时器/计数器0、1的应用 7.2.4 AT89C52定时/计数器2的结构 7.2.5 AT89C52定时/计数器2的工作方式,7.2 定时/计数器及应用,定时/计数器的核心是一个加1计数器。 当它对外部事件计数时,由于频率不固定,称之为计数器; 当它对内部固定频率的机器周期进行计数时,称为定时器。,MCS-51单片机内有2

2、个16位可编程的定时器/计数器,分别为T0和T1。,7.2.1 T0、T1的结构及工作原理,定时器/计数器内部结构逻辑图,T0、T1核心组成部分: 16位的加1计数器 定时器控制寄存器TCON 工作方式控制寄存器TMOD,7.2.1 T0、T1的结构及工作原理,(1) 加1计数器,定时器/计数器T0由8位特殊功能寄存器TH0和TL0组成,TH0为高8位,TL0为低8位;,加1计数器的初值可以通过程序进行设定,设定不同的初值,就可以获得不同的计数值或定时时间。 对外部事件脉冲计数,是计数器; 对单片机内部机器周期产生的脉冲进行计数,是定时器。,TCON,TR1:定时器1运行启停控制位(可由用户通

3、过软件设置 )。 TR1 =0:定时器1停止运行; TR1 =1:定时器1启动运行。,7.2.1 T0、T1的结构及工作原理,(2) 定时器控制寄存器TCON,TR1,TR0,当C/T=0,定时功能 当C/T=1,计数功能,7.2.1 T0、T1的结构及工作原理,(3) 工作方式控制寄存器TMOD,M1M0对应4种不同的二进制组合对应4种工作方式: 方式0、方式1、方式2、方式3,7.2.1 T0、T1的结构及工作原理,计数功能:对外部事件产生的脉冲进行计数。 当C/ =1,T0(P3.4)或T1(P3.5)两个信号引脚输入信号脉冲发生负跳变时,加1计数器自动加1。 定时功能:对单片机内部机器

4、周期产生的脉冲进行计数。 当C/ =0,每个机器周期计数器自动加1。如果单片机的晶体频率为12MHz,则计数频率为1MHz,或者说计数器每加1,可实现1s的定时。,定时或计数功能的选择,7.2.2 T0、T1的4种工作方式,(1) 方式0,当TMOD中M1M0 = 00时,定时器/计数器选定方式0进行工作。 此时,选择定时器/计数器的高8位和低5位组成一个13位的定时器/计数器。,(2) 方式1,当TMOD中M1M0 = 01时,定时器/计数器选定方式1进行工作。 此时,选择定时器/计数器的TH0和TL0构成一个16位的定时器/计数器。,7.2.2 T0、T1的4种工作方式,(2) 方式1,当

5、TMOD中M1M0 = 01时,定时器/计数器选定方式1进行工作。 此时,选择定时器/计数器的TH0和TL0构成一个16位的定时器/计数器。,7.2.2 T0、T1的4种工作方式,(2) 方式1,当作为计数器使用时,计数脉冲个数N: N = 216- x =65536 - x 计数初值x是TH0、TL0设定的初值。,当作为定时器使用时,定时器的定时时间为: Td = (216- x)Tcy 如果晶振频率fosc=12MHz,则Tcy =1 s,定时范围为165536 s。 初值x是TH0、TL0设定的初值。,7.2.2 T0、T1的4种工作方式,(3) 方式2,工作方式0、方式1具有共同的特点

6、,发生溢出现象后,需要程序不断反复给计数器赋初值 。,TH0的内容重新装入TL0后,其自身保持不变。,7.2.2 T0、T1的4种工作方式,(3) 方式2,当作为计数器使用时,计数脉冲个数N: N = 28- x =256 - x 计数初值x是TH0、TL0设定的初值。,当作为定时器使用时,定时器的定时时间为: Td = (28- x)Tcy 如果晶振频率fosc=12MHz,则Tcy =1 s,定时范围为1256 s。 初值x是TH0、TL0设定的初值。,7.2.2 T0、T1的4种工作方式,(4) 方式3,T0和T1具有完全不同的功能 。,7.2.2 T0、T1的4种工作方式,定时/计数器

7、0、1 的四种工作方式总结,7.2.3 定时/计数器0、1的应用,1. 定时器/计数器的初始化编程 MCS-51单片机的定时/计数器具有定时和计数功能,并可选择4种工作方式。在使用定时器/计数器前必须对其进行初始化,设置其工作方式等。初始化包括: (1)设置工作方式,即设置TMOD中的各位:GATE、C/T、M1M0。 (2)计算定时/计数器的初值x,并将初值x送入TH、TL中。 (3)启动计数器工作,即将TR置1。 (4)若采用中断方式则将对应的定时/计数器及CPU开中断。,7.2.3 定时/计数器0、1的应用,2. 计算计数初值 (1)计数方式下,初值x的计算 计数脉冲个数N=2n-x 已

8、知计数脉冲个数N,则初值x = 2n- N 当采用工作方式0,1,2时,n分别取值13,16,8。 (2)定时方式下,初值x的计算 定时时间Td =(2n - x)机器周期Tcy 已知定时时间Td,机器周期Tcy。 则初值x=2n-Td/Tcy。当采用工作方式0,1,2时,n分别取值13,16,8。,例7-5:定时器/计数器T1工作于计数方式,计数脉冲个数N = 100,允许中断,分别使用:(1)工作方式1;(2)工作方式2,进行初始化编程。,(1) 由于T1工作于计数方式 GATE=0,C/T=1,T1工作于方式1,则M1M0 = 01。 T0不用,TMOD的低4位取0000,则 TMOD=

9、 01010000B = 50H 工作方式1,则计数器位数n = 16。 计数器初值x = 216-100=65536-100 = 65436=FF9CH。 TH1=FFH; TL1=9CH,分析:,例7-5:定时器/计数器T1工作于计数方式,计数脉冲个数N = 100,允许中断,分别使用:(1)工作方式1;(2)工作方式2,进行初始化编程。,C51语言初始化程序如下: TMOD=0x50; /*设置T1工作计数方式1*/ TH1=0xff; /*加1计数器高8位TH1赋初值FFH*/ TL1=0x9c; /*加1计数器低8位TL1赋初值9CH*/ TR1=1; /*打开T1启动开关*/ ET

10、1=1; /*T1开中断*/ EA=1; /*CPU开中断*/,例7-5:定时器/计数器T1工作于计数方式,计数脉冲个数N = 100,允许中断,分别使用:(1)工作方式1;(2)工作方式2,进行初始化编程。,汇编语言初始化程序1如下: MOV TMOD,#50H MOV TH1,#0FFH MOV TL1,#9CH SETB TR1 SETB ET1 SETB EA,汇编语言初始化程序2如下: MOV TMOD,#50H MOV TH1,#0FFH MOV TL1,#9CH SETB TR1 MOV IE,#84H,例7-5:定时器/计数器T1工作于计数方式,计数脉冲个数N = 100,允许

11、中断,分别使用:(1)工作方式1;(2)工作方式2,进行初始化编程。,(2) TMOD= 01100000B = 60H 计数器初值x = 28-100=156=9CH。 TH1=9CH; TL1=9CH,分析:,C51语言初始化程序如下: TMOD=0x60; /*设置T1工作计数方式1*/ TH1=0x9c; /*加1计数器高8位TH1赋初值9CH*/ TL1=0x9c; /*加1计数器低8位TL1赋初值9CH*/ TR1=1; /*打开T1启动开关*/ ET1=1; /*T1开中断*/ EA=1; /*CPU开中断*/,例7-5:定时器/计数器T1工作于计数方式,计数脉冲个数N = 10

12、0,允许中断,分别使用:(1)工作方式1;(2)工作方式2,进行初始化编程。,汇编语言初始化程序1如下: MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH SETB TR1 SETB ET1 SETB EA,汇编语言初始化程序2如下: MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH SETB TR1 MOV IE,#84H,例7-6:T0工作于定时方式1,定时时间Td = 2ms,系统主频fosc =12MHz,允许中断,对T0进行初始化编程 。,分析:,T0工作于定时方式 GATE=0,C/T=0,T0工作于方式1,则M1M0 =

13、 01。 T1不用,TMOD的高4位取0000,则 TMOD= 00000001B =01H 系统主频fosc =12MHz ,机器周期Tcy=1us。 工作方式1,则计数器位数n = 16。 计数器初值x = 216-Td/Tcy=65536-2000 =63536=F830H。 TH0=F8H; TL0=30H,例7-6:T0工作于定时方式1,定时时间Td = 2ms,系统主频fosc =12MHz,允许中断,对T0进行初始化编程 。,分析:,C51语言初始化程序如下: TMOD=0x01; /*设置T0工作计数方式1*/ TH0=0xf8; /*加1计数器高8位TH0赋初值F8H*/ T

14、L0=0x30; /*加1计数器低8位TL0赋初值30H*/ TR0=1; /*打开T0启动开关*/ ET0=1; /*T0开中断*/ EA=1; /*CPU开中断*/,TMOD= 00000001B =01H TH0=F8H; TL0=30H,汇编语言初始化程序1如下: MOV TMOD,#01H MOV TH0,#0F8H MOV TL0,#30H SETB TR0 SETB ET0 SETB EA,汇编语言初始化程序2如下: MOV TMOD,#01H MOV TH0,#0F8H MOV TL0,#30H SETB TR0 MOV IE,#84H,例7-6:T0工作于定时方式1,定时时间

15、Td = 2ms,系统主频fosc =12MHz,允许中断,对T0进行初始化编程 。,要求利用定时器T0使图中P1.0口控制的发光二极管D8进行300us亮,300us灭。系统主频f =6MHz 。,ORG 0000H LJMP MAIN ;转主程序 ORG 000BH ;T0中断入口地址 LJMP IT0 ;转T0中断服务程序 ORG 0100H ;主程序首地址 MAIN:MOV TMOD,#01H ;定时器0工作方式1 MOV TH0,#0FFH ;T0初值设置 MOV TL0,#6AH SETB TR0 ;启动T0 SETB ET0 ;T0中断允许 SETB EA ;中断总允许 SETB P1.0 SJMP $ ;等待中断,ORG 0200H IT0: MOV TH0,#0FFH MOV TL0,#6AH CPL P1.0 RETI END,要求利用定时器T0使图中P1.0口控制的发光二极管D8进行300us亮,300us灭。系统主频f =6MHz 。,ORG 0000H LJMP MAIN ;转主程序 ORG 000BH ;T0中断入口地址 LJMP IT0 ;转T0中断服务程序 ORG 0100H ;主程序首地址

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

当前位置:首页 > 高等教育 > 大学课件

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