反射型红外探测器在单片机中的应用.ppt

上传人:小飞机 文档编号:6250685 上传时间:2023-10-10 格式:PPT 页数:55 大小:666.50KB
返回 下载 相关 举报
反射型红外探测器在单片机中的应用.ppt_第1页
第1页 / 共55页
反射型红外探测器在单片机中的应用.ppt_第2页
第2页 / 共55页
反射型红外探测器在单片机中的应用.ppt_第3页
第3页 / 共55页
反射型红外探测器在单片机中的应用.ppt_第4页
第4页 / 共55页
反射型红外探测器在单片机中的应用.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《反射型红外探测器在单片机中的应用.ppt》由会员分享,可在线阅读,更多相关《反射型红外探测器在单片机中的应用.ppt(55页珍藏版)》请在三一办公上搜索。

1、任务五 反射型红外探测器在单片机中的应用,任务描述:利用红外发射及接收模块并结合单片机8051,来设计一个简易的红外线探测报警系统。此系统可以作为周界报警探测使用,当有人非法穿过警戒线时,系统会发出报警信号,并显示报警区域号。,任务目标:过学习任务五的完成方法熟悉单片机的中断与定时计数器功能等。,第五章 MCS-51单片机的中断系统及定时器,5.1 输入/输出的控制方式5.2 MCS-51单片机的中断系统5.3 MCS-51单片机中断处理过程5.4 中断服务程序设计5.5 MCS-51单片机的定时/计数器思考题,5.1 输入/输出的控制方式,无条件传送方式,程序查询传送方式,中断传送方式,DM

2、A传送方式,返回本章,无条件传送方式 在传送信息时,已知外部设备是准备好的状态,所以输入输出时都不需要查询外部设备的状态。在输入或输出时,相应给出指令即可。但这种方式必须确信外部设备已准备好的状态才可使用,否则就会出错,故很少使用。,程序查询传送方式以CPU为中心,数据传送的控制来自CPU,在执行输入/输出指令前,CPU要先查询接口中状态寄存器的状态,输入时,由它指示要输入的数据是否已经“准备就绪”;而输出时,由它指示输出设备是否”空闲”。,中断传送方式当外设准备好后,外设接口便主动向CPU发“中断请求”信号。CPU响应这样这一请求,则暂停正在执行的程序,而转入与外设操作有关的中断服务程序。在

3、中断服务程序中完成数据的输入或输出,中断服务程序执行完毕,CPU返回到原来程序的断点继续执行。,DMA传送方式基本思想:在存储器和外设之间建立起直接的数据传送通路,即不经由CPU,而由专门的DMA控制器实现存储器和外设之间的操作。于是,传送就不必进行保护现场等一系列额外操作,从而减轻了CPU的负担,因此特别适合于高速度大批量数据传送的场合。但是,这种方式要增设DMA控制器,硬件电路比前两种方式更为复杂,,存储器,CPU,外设,5.2 MCS-51单片机的中断系统,一、中断的概念二、MCS51 中断系统的结构三、8051的中断源及入口地址四、中断请求标志五、中断控制,返回本章,中断指CPU正在处

4、理某一事件A时,外部发生了另一事件B,请求CPU迅速去处理,CPU 暂时中断当前的工作,转去处理事件B,待CPU将事件B处理完毕后,再回到原来事件A被中断的地方,继续处理事件A,这样的过程称为中断。,一、中断的概念,举例:某同学正在教室里看书,忽然被人叫出去,回来 后,继续看书。这就是生活中中断的例子。,中断源:引起CPU中断的根源(事件B),中断请求:中断源向CPU提出的处理请求,中断响应过程:CPU暂时中断自身的事务,转去处理事件B的过程,中断服务:CPU对事件B的整个处理过程,中断返回:处理B后,再返回A原来被中断的地方,返回本节,二、MCS51 中断系统的结构,图5-2 8051的中断

5、系统,中断源的中断请求,如何通知CPU?,利用中断请求标志位来通知!,返回,中断请求标志,1,高级,低级,内部查询,内部查询,入口地址,入口地址,中断允许控制,中断优先级,EA,中断源,返回本节,8051共有5个中断源,分为2个中断优先级,可实现IE控制CPU是否响应中断请求IP安排各中断源的优先级,二级中断嵌套,五个中断源 入口地址 外部中断0(/INT0)0003H T0溢出中断 000BH 外部中断1(/INT1)0013H T1溢出中断 001BH 串口中断 0023H,三、8051的中断源及入口地址,、中断源及入口地址,)外部中断源INT0、INT1由P3.2端口线引入,低电平或下降

6、沿引起。由P3.3端口线引入,低电平或下降沿引起。,返回本节,、外部中断源与内部中断源,)内部中断源T0:定时/计数器0中断,由T0回零溢出引起。T1:定时/计数器1中断,由T1回零溢出引起。TI/RI:串行I/O中断,完成一帧字符发送/接收引起。,四、中断请求标志,1)控制寄存器TCON,MSB,LSB,IT0:外部中断 INT0 触发方式控制位。IT0=0,INT0为电平触发,CPU 每个机器周期采样INT0输入电平,当采样到低电平时,置IE0=1,表示INT0向CPU请求中断;INT0为高电平时,将IE0清零。IT0=1,INT0为边沿触发,CPU 每个机器周期采样INT0输入电平,如果

7、连续两个机器周期检测到INT0由高电平变为低电平,置IE0=1,表示INT0向CPU请求中断;CPU响应中断后,由硬件自动清除IE0标志。,IE0:外部中断INT0中断请求标志,表示INT0向CPU请 求中断。由硬件置位,进入中断服务程序后由硬件 自动清除。,IT1:外部中断INT1触发方式控制位,功能同IT0。,IE1:外部中断INT1中断请求标志,表示INT1向CPU请 求中断。由硬件置位,进入中断服务程序后由硬件 自动清除。,TF0:定时/计数器0溢出中断请求标志位。溢出时由硬件置位,进入中断服务程序后由硬件自动清除。,TF1:定时/计数器1溢出中断请求标志位。溢出时由硬件置位,进入中断

8、服务程序后由硬件自动清除。,2)串行口控制寄存器控制寄存器SCON,TI:串行发送中断标志位。当CPU将一个发送数据写入串行 发送缓冲器时,就动发送,每发送完一个串行帧,由硬 件将TI置1。必须由软件清零。RI:串行接收中断标志位。当允许串行口接收数据时,每接 收完一个串行帧,由硬件将TI置1。必须由软件清零。,返回本节,五、中断控制,1)中断允许寄存器IE(A8H)IE在特殊功能寄存器中,字节地址A8H,位地址分别是 A8HAFH。IE控制CPU对中断源总的开放或禁止以及每 个中断源是否允许中断。,MSB,LSB,若为“1”,开关接通,允许例如 SETB EA若为“0”,开关断开,不允许例如

9、 CLR IE.7,2)中断优先级寄存器IP(B8H),该位是“1”时,为高级优先级该位是“0”时,为低级优先级,同一优先级的中断优先排队顺序,中断源 同级自然优先级外部中断0 最高级定时/计数器T0中断外部中断1定时/计数器T1中断串行中断 最低级,例:若(IP)=15H,请列出相应的优先级。答:00010101同高优先级的有PX0、PX1、PS 同低优先级的有PT1、PT0 PX0、PX1、PS、PT0、PT1,返回本节,1.中断源有请求(相应的中断标志=1)2.CPU允许所有的中断(EA=1)3.相应的源中断允许位为1 4.没有同级或高级的中断正在服务 5.现行指令已执行完毕 6.如果现

10、行指令为RETI或操作IE、IP指令,则应执行完 该指令后,还要执行完紧随其后的另一条指令。,5.3MCS-51单片机中断处理过程,一、中断响应的条件,CPU每个机器周期都需要顺序检查每个中断源,当检测到有中断请求时,能否响应,还要看下述情况是否存在:,二、中断响应过程,返回本章,响应过程:(假设已使某中断请求标志置1)(1)先使相应优先级状态触发器置1;(2)执行一个硬件子程序的调用,1)硬件清零相应中断请求标志(TI、RI除外)2)将当前PC内容压入堆栈保护断点;3)将中断服务子程序入口地址送PC转移。,返回过程:(RETI执行后)(1)使相应优先级状态触发器清0。(2)从堆栈中弹出栈顶的

11、两个字节内容送PC恢复断点。(3)CPU接着中断处继续执行原程序。,三、中断响应时间,从单片机检测到中断至响应中断需要38个机器周期。,1.编制中断初始化程序 设置堆栈、选择中断触发方式、设置IE及IP等。单片机系统复位或上电后:(SP)=07H、TCON、IE、IP等都为0。2.在中断服务程序中安排一条跳转指令。由于入 口地址之间只相差8个字节,放不下一个完整的 中断服务程序。3.保护现场(在中断服务程序中)4.编制服务程序5.恢复现场6.恢复断点(RETI),5.4 中断服务程序设计,设计步骤,例.下图为一个检测报警电路,图中检测电路为一个按钮开关,P1.0、P1.1分别驱动声光报警电路,

12、P1.0、P1.1输出“1”时电路工作,试设计一程序,当按键按下一次后,P1.0、P1.1输出报警信号10S,并使内部RAM55H单元数据加1,10S延时子程序为DELLAY。,ORG 0000H LJMP MAINOGR 0003HLJMP BJORG 0030HMAIN:MOV 55H,#00HCLR P1.0CLR P1.1MOV SP,#30HSETB IT0SETB EASETB EX0HERE:SJMP HERE,ORG 00A0HBJ:PUSH ACC MOV A,#03H MOV P1,A LCALL DELLAY MOV A,#00H MOV P1,AINC 55H POP

13、ACCRETIEND,解:中断触发方式:边沿 IT0=1 允许中断:EA=1、EX0=1 中断入口地址:0003H,返回本章,5.5 MCS-51单片机的定时/计数器,一、定时/计数器的功能二、定时/计数的结构及工作原理三、定时/计数器的控制四、定时/计数器的工作方式五、例题,返回本章,一、定时/计数器的功能1定时器的功能 例如某机械零件的热处理工艺曲线为:,实际控制可以由单片机定时发出信号控制自动完成整个工艺过程。,常用的定时方法 1 软件定时 DJNZ Ri,rel NOP 2 不可编程的硬件定时 555 3 可编程的定时器,2.计数功能:对外界发生的事件计数,当达到程序规定的计数值 时,

14、可以输出一脉冲信号,申请中断。例如一啤酒生产线,如下图所示,返回本节,二、定时/计数的结构及工作原理,1定时/计数器的结构,T0 T1TMOD(定时/计数器工作方式寄存器)设置工作方式与功能,有4种工作方式。TCON(定时/计数器的控制寄存器)控制T0、T1启动和停止以及设置溢出等标志的。,TH0,TL0,TH1,TL1,2.工作原理,定时器:对内部机器周期进行计数,每过一个机器周期,计数器加1,直到计数器计满溢出。定时时间=计数值机器周期 振荡频率计数频率=12,11111111+1 00000000,计数器:对来自输入引脚T0(P3.4)、T1(P3.5)的外部信号计数,每个机器周期对外部

15、信号进行采样,若前一机器周期采样值为1,后一机器周期采样值为0,则计数器加1,直到计数器计满溢出。完成一次计数至少要2个机器周期。,返回本节,振荡频率最高计数频率=24,1工作方式控制寄存器TMOD(89H),三、定时/计数器的控制,2定时器控制寄存器TCON(88H),返回本节,1方式0,四、定时/计数器的工作方式,M1 M0=00 13位计数器TH1的8位和TL1的低5位,当溢出时,TF1置1,0000000000000,定时器初值a的计算 在定时器模式下,计数器由单片机主脉冲经12分频后计数。因此,定 时器定时时间T的公式:T=(M-a)12 振荡周期=(213-a)12 1/fosc

16、式中,M为模值,和定时器的工作方式有关,方式0下M=213;fosc是 单片机振荡频率。,计数器初值的计算 把计数器计满为零所需要的计数值设定为C,计数初值设定为a,由此 可得到公式:a=M-C 式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213。,2方式1,M1 M0=01 16位计数器TH1的8位、TL1的8位,当溢出时,TF1置1,0000000000000000,定时器初值a的计算 在定时器模式下,计数器由单片机主脉冲经12分频后计数。因此,定 时器定时时间T的公式:T=(M-a)12 振荡周期=(216-a)12 1/fosc式中,M为模值,和定时器的工作方式有关,

17、方式1下M=216;fosc是 单片机振荡频率。,计数器初值的计算 把计数器计满为零所需要的计数值设定为C,计数初值设定为a,由此可得到公式:a=M-C 式中,M为计数器模值,该值和计数器工作方式有关。在方式1时M为216。,3方式2,M1 M0=10 自动重装载初值的8位计数器TL1的8位,TH1作为保存计数初值。一旦溢出,TF1置1,并将TH1的初值再装给TL1,进入新一轮的计数。,1111111100000000,定时器初值a的计算 在定时器模式下,计数器由单片机主脉冲经12分频后计数。因此,定 时器定时时间T的公式:T=(M-a)12 振荡周期=(28-a)12 1/fosc 式中,M

18、为模值,和定时器的工作方式有关,方式2下M=28;fosc 是单片机振荡频率。,计数器初值的计算 把计数器计满为零所需要的计数值设定为C,计数初值设定为a,由此 可得到公式:a=M-C 式中,M为计数器模值,该值和计数器工作方式有关。在方式2时M为28。,3.方式3,M1 M0=11 T0分成两个8位计数器,T1停止计数,0,4.定时间隔和计数的范围:以6MHZ晶振为例 方式0 13位计数器 最大定时间隔为:当a=0000H时 213210-6=16.384ms 最小定时间隔为:当13位计数器全1,即a=FF1FH 2s 计数范围:18192 方式1 16位计数器 最大定时间隔为:当a=000

19、0H时 216 210-6=65536 210-6=131.072 ms 最小定时间隔为:当X=FFFFH 时 2s 计数范围:165536方式2和方式3 8位计数器 定时间隔为:2s512s 计数范围:1256,返回本节,【例】选择T1方式0用于定时,在P1.1输出周期为1ms的方波,晶振fosc=6MHZ。根据题意,只要使P1.1每隔500s取反一次即可得到1ms方波,因而T1的定时时间为500s。,解:1)T1工作方式的设定:选择方式0(13位方式)(最大定时16ms)2)定时常数的设定:机器周期 T=12/fosc=12/6106=2s 设初值为a则:(213a)2106 s=5001

20、06 s 因为在作13位计数器用时,TL1高3位未用,应写0,a的低5位装入TL1的低5位,所以TL1=06H;a的高8位应装入TH1,所TH1=F8H。,3)启动定时器T0:SETBTR14)动态停机:SJMP$5)程序如下:,【例】前述的啤酒生产线,计数24瓶后将R0内容加1,P1.0取反 转入装箱程序。解:选T1方式0计数,TMOD的高4位为:0 1 0 0初始常数X的计算:213-a=24 a=8192-24=81688168=1FE8H 00011111 11101000B 11111111 00001000 TH1=FFH TL1=08H加24次即溢出中断。程序如下:,ORG 00

21、00H AJMP MAIN ORG 0100HMAIN:MOV SP,#60H MOV TMOD,#40H;T0方式0定时,T1方式0计数 MOV TH1,#0FFH MOV TL1,#08H;T1计数24次初始常数 MOV R0,#00H,SETB TR1;启动T1开始 计数HERE:JBC TF1,L1 SJMP HERE;等待L1:MOV TH1,#0FFH MOV TL1,#08H INC R0 CPL P1.0;P1.0求反,提示装箱 SJMP HERE END,【例】试用中断技术设计一发光二极管,使其闪烁,要求亮1ms,灭1ms。晶振fosc=6MHZ(T0的方式0实现),解:,1

22、)T0工作方式的设定:选择方式0(13位方式)(最大定时16ms)2)定时常数的设定:机器周期 T=12/fosc=12/6106=2s 设初值为X则:(213a)2106 s=1103 s 因为在作13位计数器用时,TL0高3位未用,应写0,a的低5位装入TL0的低5位,所以TL0=0CH;a的高8位应装入TH0,所TH0=F0H。,ORG 0030HMAIN:MOV SP,#60H MOV TMOD,#00H;T0方式0定时 MOV TH0,#0F0H MOV TL0,#0CH;T0定时1ms时间常数 SETB TR1;启动T1开始 计数HERE:JBC TF0,L1 SJMP HERE;

23、等待L1:MOV TH0,#0F0H;重装时间常数 MOV TL0,#0CH CPL P1.0;P1.0求反,输出方波 SJMP HERE END,返回本节,图5-1 中断过程示意图,返回,事件A,事件B,中断请求,中断响应,中断服务程序,返回主程序,继续执行主程序,执行主程序,ORG 0000H AJMP MAIN ORG 000BH AJMP IT0PMAIN:MOV SP,#60H MOV TMOD,#40H;T0方式0定时,T1方式0计数 MOV TH1,#0FFH MOV TL1,#08H;T1计数24次初始常数SETB TR1;启动T1开始 计数 SETB EA;允许CPU中断 S

24、ETB ET1;允许T1中断HERE:AJMP HERE;等待IT0P:MOV TH1,#0FFH MOV TL1,#08H CPL P1.0;P1.0求反,输出方波 RETI,ORG 0000H AJMP MAIN ORG 000BH AJMP SH ORG 0030HMAIN:MOV SP,#60H MOV TMOD,#00H;T0方式0定时 MOV TH0,#0F0H MOV TL0,#0CH;T0定时1ms时间常数 SETB TR1;启动T1开始 计数 SETB EA;允许CPU中断 SETB ET1;允许T1中断HERE:AJMP HERE;等待 ORG 00C0HSH:MOV TH0,#0F0H;重装时间常数 MOV TL0,#0CH CPL P1.0;P1.0求反,输出方波 RETI,事件1,事件2,子程序2,子程序1,中断嵌套的概念:,主程序,中断,中断,返回,1、MCS-51单片机中断系统有几个中断源?分别是什么?事先约定的优先顺序是怎样的?2、如何进行中断允许控制?如何进行中断优先级控制?,思考题,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号