单片机原理及应用课件.ppt

上传人:本田雅阁 文档编号:2309170 上传时间:2019-03-19 格式:PPT 页数:50 大小:323.01KB
返回 下载 相关 举报
单片机原理及应用课件.ppt_第1页
第1页 / 共50页
单片机原理及应用课件.ppt_第2页
第2页 / 共50页
单片机原理及应用课件.ppt_第3页
第3页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机原理及应用课件.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用课件.ppt(50页珍藏版)》请在三一文库上搜索。

1、单片机原理及应用,第五章 中断与定时,,5.1 MCS-51单片机的中断系统,一、单片机中断技术概述 1、有关中断术语: 中断源、断点、中断服务程序 开中断、关中断、中断优先级 2、中断技术:中断技术是解决资源竞争实现资 源共享的方法 3、程序中断与调用子程序的区别:在于是否可预知 4、中断的功能 实现CPU与外设的速度匹配 实时控制 故障及时发现,,5.1 MCS-51单片机的中断系统,二、中断源 5个中断源,分高低两级中断优先级别 1、外中断:2个,/INT0、/INT1 产生原因:P3.2、P3.3的引脚电平变化 可控制为:低电平或边沿(下降沿)触发中断 CPU根据控制方式和P3.2、P

2、3.3引脚电平置有关标志位 转向中断服务程序时,自动清除标志位 中断入口地址:0003H、0013H 撤销方式: 边沿方式自动撤销;电平方式外加硬件电路撤销中断,,5.1 MCS-51单片机的中断系统,二、中断源 5个中断源,分高低两级中断优先级别 2、定时器中断:2个,T0、T1 产生原因:计数溢出 可控制为:4种方式(计8192、65536、256、256 ) CPU根据溢出置有关标志位 转向中断服务程序时,自动清除标志位 中断入口地址:000BH、001BH 撤销方式:自动撤销,,5.1 MCS-51单片机的中断系统,二、中断源 5个中断源,分高低两级中断优先级别 3、串行口中断:1 个

3、 产生原因:串行口(P3.0、P3.1)接收或发送完一组(帧)数据。 可控制为:4种方式 CPU置有关标志位 转向中断服务程序时,不自动清除标志位,软件清除 中断入口地址:0023H 撤销方式:标志清除后撤销,,5.1 MCS-51单片机的中断系统,三、单片机对中断源的管理 由IE寄存器控制中断是否被允许 由IP寄存器控制各中断源的中断优先级别 由TCON寄存器控制外中断的触发方式、外中断及定时器中断的标志位设置 由SCON寄存器控制串行口中断的工作方式及其标志设置。,,5.1 MCS-51单片机的中断系统,三、单片机对中断源的管理 1、TCON:定时器控制寄存器,定时器,外中断,TF:定时器

4、溢出标志, TF=1时表示溢出 如:TF1=1,T1溢出; TF0=1,T0溢出 TR:定时器启动标志, TR =1时启动 如:TR1=1,启动T1计数; TR0=1,启动T0计数 IE:外中断标志位,IE=1,表示有外中断 IT:外中断触发控制(0:低电平触发;1:边沿触发),,5.1 MCS-51单片机的中断系统,三、单片机对中断源的管理 1、TCON:定时器控制寄存器,定时器,外中断,例:TCON=11001010B,即CAH 表示:,,5.1 MCS-51单片机的中断系统,三、单片机对中断源的管理 2、IE:中断允许寄存器,EA:EA=1 ,允许CPU响应中断,中断总允许 ES:ES=

5、1 ,允许串行口中断 ET1: ET1=1 ,允许定时器1中断 EX1: EX1=1 ,允许外中断1中断 ET0: ET0=1 ,允许定时器0中断 EX0: EX0=1,允许外中断0中断 例如:若要允许T0产生中断,必须ET0=1且EA=1,,5.1 MCS-51单片机的中断系统,三、单片机对中断源的管理 3、IP:中断允许寄存器,某位=1,对应中断源处于高优先级 PS:PS=1 ,串行口中断处于高优先级 PT1: PT1=1 ,定时器1中断处于高优先级 PX1: PX1=1 ,外中断1中断处于高优先级 PT0: PT0=1 ,定时器0中断处于高优先级 PX0: PX0=1,外中断0中断处于高

6、优先级 注意:复位后,IE=00H,IP=00H,表示。,,5.1 MCS-51单片机的中断系统,四、中断优先级的控制原则: MCS-51具有两级优先级,两级中断服务嵌套功能,控制原则是: 低优先级的中断请求不能打断高优先级的服务,高优先级的中断请求可以打断低优先级的服务。 如果一个中断请求已被响应,则同级的中断服务将被禁止。 同级的中断同时出现,CPU响应中断的顺序是: 外中断0、T0、外中断1、T1、串行口 例如:若设置IP=12H,则CPU响应中断的顺序是: T0、串行口、外中断0、外中断1、T1,,5.1 MCS-51单片机的中断系统,五、中断响应过程: 1、中断采样: 2、中断查询:

7、 3、 中断响应:产生LCALL指令 中断响应时间:38个机器周期 (标志位查询) 1+(LCALL)2=3 (IE、IP、RET、RETI)2+(MUL、DIV)4+ (LCALL) 2=8,,5.1 MCS-51单片机的中断系统,五、中断请求的撤销: 目的:使一次中断请求执行中断服务一次 1、定时中断请求:转向中断服务程序自动撤销 2、串行中断请求:在中断服务程序中使用指令撤销 软件撤销。 3、 边沿触发方式的外中断请求:转向中断服务程序自动撤销 4、电平触发方式的外中断请求:外加硬件电路撤销 P145 图6.2,,5.2 MCS-51定时器/计数器的控制,一、定时方法种类: 1、软件定时

8、、 2、硬件定时、 3、可编程定时器定时 二、定时和计数功能综述: 1、由两个16位的加法计数器(TH0TL0、TH1TL1)进行计数,通过对TH0TL0和TH1TL1的初值设置,可控制计数长度 2、定时功能是对内部机器周期计数,计数功能是对T0、T1引脚进行计数。 3、计数频率: 定时:一个机器周期,fosc/12 计数:外来信号,频率 fosc/24,,5.2 MCS-51定时器/计数器的控制,三、定时器/计数器的控制: 通过控制TCON 、IE、 IP、TMOD寄存器达到目的 1、 TCON 、IE 、 IP有关位的控制意义,,5.2 MCS-51定时器/计数器的控制,三、定时器/计数器

9、的控制: 1、IP、IE、TCON有关位的控制意义 2、TMOD寄存器介绍,T1,T0,GATE:门控位 GATE=0,当TR=1时,启动定时器,软启动 GATE=1,当TR=1且INT=1时,启动定时器,硬启动 C/T=1,计数功能; C/T=0,定时功能。 M1M0:定时器工作方式,0011指定工作方式03,,5.2 MCS-51定时器/计数器的控制,三、定时器/计数器的控制: 1、IP、IE、TCON有关位的控制意义 2、TMOD寄存器介绍 3、初始化定时器/计数器的步骤: 设置TMOD,控制定时器的工作方式 设置TH、TL计数初值 设置IE、IP,,5.2 MCS-51定时器/计数器的

10、控制,三、定时器/计数器的控制: 4、计数初值X的计算: 计数方式:M-X=要计的数 例如:使用T0工作于方式1计数,每计1000就溢出 求计数初值 65536-X=1000,得X=64536D=FC18H,系统要求,某种方式下最长计数值 方式0:M=8192 方式1:M=65536 方式2、3:M=256,,5.2 MCS-51定时器/计数器的控制,三、定时器/计数器的控制: 4、计数初值X的计算: 定时方式:(M-X)机器周期=要定时的时间 例如:使用T1工作于方式1定时10mS,若fosc=6MHz, 则计数初值=? ( 65536-X)2uS=10mS,得X=60536D=EC78H,

11、系统要求,某种方式下最长计数值 方式0:M=8192 方式1:M=65536 方式2、3:M=256,系统给出,,5.2 MCS-51定时器/计数器的控制,三、定时器/计数器的控制: 1、IP、IE、TCON有关位的控制意义 2、TMOD寄存器介绍 3、初始化定时器/计数器(T/C)的步骤 4、定时器/计数器(T/C)的使用步骤 初始化T/C(TMOD、THTL、IE、IP) 启动T/C:SETB TR 查询方式:判TF,若=1,则转相应处理 中断方式:当TF=1时硬件自动转向中断入口地址,在 中断入口地址处按排相应处理程序即可,,5.2 MCS-51定时器/计数器的控制,三、定时器/计数器的

12、控制: 4、定时器/计数器(T/C)的使用步骤 初始化T/C 启动T/C:SETB TR 查询方式:判TF,若=1,则转相应处理,,5.2 MCS-51定时器/计数器的控制,三、定时器/计数器的控制: 4、定时器/计数器(T/C)的使用步骤 初始化T/C 启动T/C:SETB TR 中断方式:当TF=1时硬件自动转向中断入口地址,在中断入口地址处按排相应处理程序即可 主程序: 中断服务程序:,,5.3 MCS-51定时器/计数器工作方式,一、方式0 1、13位计数器:TH8TL5 2、计数长度:18192 定时长度:(18192)机器周期 例:设单片机晶体振荡频率为6MHz,使用定时器1以方式

13、0产生500uS的等宽正方波连续脉冲,问计数初值应为多少?,,5.3 MCS-51定时器/计数器工作方式,一、方式0 例:设单片机晶体振荡频率为6MHz,使用定时器1以方式0产生500uS的等宽正方波连续脉冲,问计数初值应为多少? 解:(1)方式0最大的计数长度M=8192 (2)当fosc= 6MHz, 机器周期为2uS 设计数初值为X,则(8192-X) 2uS =250 Us 解得X=8067D=11111100,00011B 所以,TH1=FCH,TL1=03H,,5.3 MCS-51定时器/计数器工作方式,二、方式1 1、16位计数器:TH8TL8 2、计数长度:165536 定时长

14、度:(165536)机器周期 例:设单片机晶体振荡频率为6MHz,使用定时器1以方式1产生500uS的等宽正方波连续脉冲,并从P1.0输出,试编程。,,5.3 MCS-51定时器/计数器工作方式,二、方式1 例:设单片机晶体振荡频率为6MHz,使用定时器1以方式1产生500uS的等宽正方波连续脉冲,并从P1.0输出,试编程。 解:(1)计算计数初值 设计数初值为X,则(65536-X) 2uS =250 uS 解得X=65411D=11111111,10000011B 所以,TH1=FFH,TL1=83H (2)TMOD、IE、IP的确定 (3)查询方式编程、中断方式编程,,5.3 MCS-5

15、1定时器/计数器工作方式,二、方式1 例:设单片机晶体振荡频率为6MHz,使用定时器1以方式1产生500uS的等宽正方波连续脉冲,并从P1.0输出,试编程。 解:(2)TMOD、IE、IP的确定 TMOD:0001,XXXX 即10H IE:查询方式:00H; 中断方式:1XX0,1000 即88H IP:00H,,例:设单片机晶体振荡频率为6MHz,使用定时器1以方式1产生500uS的等宽正方波连续脉冲,并从P1.0输出,试编程。,(3)查询方式编程 MOV TMOD,#10H MOV TH1,#0FFH MOV TL1,#83H MOV IE,#00H MOV IP,#00H SETB T

16、R1 LOOP:JBC TF1,LOOP1 AJMP LOOP LOOP1:MOV TH1,#0FFH MOV TL1,#83H CPL P1.0 AJMP LOOP,,(3)中断方式编程 MOV TMOD,#10H MOV TH1,#0FFH MOV TL1,#83H MOV IE,#88H MOV IP,#00H SETB TR1 SJMP $ T1PRO:MOV TH1,#0FFH MOV TL1,#83H CPL P1.0 RETI,主程序:,中断服务程序:,,(3)中断方式编程 ORG 0000H AJMP MAIN ORG 001BH AJMP T1PRO ORG 0030H MA

17、IN: MOV TMOD,#10H MOV TH1,#0FFH MOV TL1,#83H MOV IE,#88H MOV IP,#00H SETB TR1 SJMP $,T1PRO:MOV TH1,#0FFH MOV TL1,#83H CPL P1.0 RETI,,5.3 MCS-51定时器/计数器工作方式,三、方式2 8位重装计数初值 1、8位计数器:TL8, TH8用来保存TL8的初值 2、计数长度:1256 定时长度:(1256)机器周期 例:用定时器1方式2实现计数,每计100次,累加器加1,试编程。,,5.3 MCS-51定时器/计数器工作方式,三、方式2 8位重装计数初值 例:用定

18、时器1方式2实现计数,每计100次,累加器加1,试编程。 解:(1)计算计数初值 设计数初值为X,则:256-X=100 解得X=156D=9CH 所以,TH1=9CH,TL1=9CH (2)TMOD、IE、IP的确定 (3)查询方式编程、中断方式编程,,5.3 MCS-51定时器/计数器工作方式,三、方式2 8位重装计数初值 例:用定时器1方式2实现计数,每计100次,累加器加1,试编程。 解:(2)TMOD、IE、IP的确定 TMOD:0110,XXXX 即60H IE:查询方式:00H; 中断方式:1XX0,1000 即88H IP:00H,,例1:用定时器1方式2实现计数,每计100次

19、,累加器加1,试编程。,(3)查询方式编程 MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH MOV IE,#00H MOV IP,#00H SETB TR1 LOOP:JBC TF1,LOOP1 AJMP LOOP LOOP1: INC A AJMP LOOP,,(3)中断方式编程 MOV TMOD,#60H MOV TH1,#9CH MOV TL1,#9CH MOV IE,#88H MOV IP,#00H SETB TR1 SJMP $ T1PRO: INC A RETI,主程序:,中断服务程序:,,5.3 MCS-51定时器/计数器工作方式,三、方式2 8位

20、重装计数初值 例2:使用定时器0工作于方式2产生100uS的定时,从P1.0输出200uS的等宽正方波连续脉冲,单片机晶体振荡频率为6MHz,试编程。 解:(1)计算计数初值 设计数初值为X,则(256-X) 2uS =100 uS 解得X=206D=CEH 所以,TH0=CEH,TL0=CEH (2)TMOD、IE、IP的确定 (3)查询方式编程、中断方式编程,,5.3 MCS-51定时器/计数器工作方式,三、方式2 8位重装计数初值 例2:使用定时器0工作于方式2产生100uS的定时,从P1.0输出200uS的等宽正方波连续脉冲,单片机晶体振荡频率为6MHz,试编程。 解:(2)TMOD、

21、IE、IP的确定 TMOD: XXXX , 0010 即02H IE:查询方式:00H; 中断方式:1XX0,0010 即82H IP:00H,,例2:使用定时器0工作于方式2产生100uS的定时,从P1.0输出200uS的等宽正方波连续脉冲,单片机晶体振荡频率为6MHz,试编程。,(3)查询方式编程 MOV TMOD,#02H MOV TH1,#0CEH MOV TL1,#0CEH MOV IE,#00H MOV IP,#00H SETB TR1 LOOP:JBC TF1,LOOP1 AJMP LOOP LOOP1:CPL P1.0 AJMP LOOP,,(3)中断方式编程 MOV TMOD

22、,#02H MOV TH1,#0CEH MOV TL1,#0CEH MOV IE,#82H MOV IP,#00H SETB TR1 SJMP $ T1PRO:CPL P1.0 RETI,主程序:,中断服务程序:,,5.3 MCS-51定时器/计数器工作方式,三、方式2 8位重装计数初值 例3:有晶体振荡频率为12MHz的单片机,使用定时器0以方式2从P1.0输出周期占空比为1:10的矩形方波,试编程。 思路: 即所求矩形方波高电平为40 uS,低电平为360 uS。 使T0定时40 uS。当P1.0为高电平时,每定时时间到使P1.0变为低电平;当P1.0为低电平时,每定时时间到使R7减1,(

23、R7初值为9),当R7减到0时,使P1.0变为高电平。,,5.3 MCS-51定时器/计数器工作方式,三、方式2 8位重装计数初值 例3:有晶体振荡频率为12MHz的单片机,使用定时器0以方式2从P1.0输出周期占空比为1:10的矩形方波,试编程。 解: (1)计算计数初值 设计数初值为X,则(256-X) 1uS =40 uS 解得X=216D=D8H 所以,TH0=D8H,TL0=D8H (2)TMOD、IE、IP的确定 (3)查询方式编程、中断方式编程,,5.3 MCS-51定时器/计数器工作方式,三、方式2 8位重装计数初值 例3:有晶体振荡频率为12MHz的单片机,使用定时器0以方式

24、2从P1.0输出周期占空比为1:10的矩形方波,试编程。 解:(2)TMOD、IE、IP的确定 TMOD: XXXX , 0010 即02H IE:查询方式:00H; (中断方式:1XX0,0010 即82H) (IP:00H),,例3:有晶体振荡频率为12MHz的单片机,使用定时器0以方式2从P1.0输出周期占空比为1:10的矩形方波,试编程。,溢出处理:,,例3:有晶体振荡频率为12MHz的单片机,使用定时器0以方式2从P1.0输出周期占空比为1:10的矩形方波,试编程。,(3)查询方式编程 MOV R7,#09H MOV TMOD,#02H MOV TH1,#0CEH MOV TL1,#

25、0CEH MOV IE,#00H MOV IP,#00H SETB TR1 LOOP:JBC TF1,LOOP1 AJMP LOOP,溢出处理: LOOP1:JB P1.0,LOOP2 DJNZ R7,LOOP3 MOV R7,#09H SETB P1.0 LOOP3: AJMP LOOP CLR P1.0 AJMP LOOP3,,四、方式3 特点: T0:被拆分成两个独立的8位计数器TH0、TL0,TL0能作计数器用也能作定时器用,TH0只能作定时器用,TH0占用了T1的溢出标志TF1和启动控制位TR1。 T1:当T0工作于方式3时,T1可工作于方式0、1、2,用作波特率发生器用。,5.3

26、MCS-51定时器/计数器工作方式,,五、定时器/计数器的应用 例1:用51定时器/计数器0工作于方式1产生时钟计时,每秒到给内部RAM的SEC地址加1,每60秒到给内部RAM的MIN地址加1,并使SEC清0。fosc=6MHz 解: (1)计算计数初值 (2)TMOD、IE、IP的确定 (3)查询方式编程、中断方式编程,5.3 MCS-51定时器/计数器工作方式,,五、定时器/计数器的应用 例1:用51定时器/计数器0工作于方式1产生时钟计时,每秒到给内部RAM的SEC地址加1,每60秒到给内部RAM的MIN地址加1,并使SEC清0。fosc=6MHz 思路:设T0工作于方式1定时100mS

27、,每定时时间到R7减1(R7的初值为10),当R7=0时即1秒到 (1)计算计数初值 计数初值为X,则(65536-X) 2uS = 100mS 解得X=15536D=3CB0H 所以,TH0=3CH,TL0=B0H,5.3 MCS-51定时器/计数器工作方式,,五、定时器/计数器的应用 例1:用51定时器/计数器0工作于方式1产生时钟计时,每秒到给内部RAM的SEC地址加1,每60秒到给内部RAM的MIN地址加1,并使SEC清0。fosc=6MHz 解:(2)TMOD、IE、IP的确定 TMOD:XXXX,0001 即01H IE:中断方式:1XX0,0010 即82H IP:00H,5.3

28、 MCS-51定时器/计数器工作方式,,程序流程:,主程序流程,中断服务流程,,主程序 ORG 0000H AJMP STR ORG 000BH AJMP T0P ORG 0030H STR: MOV R7,#10 MOV SEC,#00H MOV MIN,#00H MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV IE,#82H MOV IP,#00H SETB TR0 SJMP $,中断服务流程 T0P: MOV TH0,#3CH MOV TL0,#0B0H DJNZ R7,T0P0 INC SEC CJNE SEC,#60,T0P0 MOV SEC,#00H INC MIN T0P0: RETI,程序:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1