一、中断系统
1.1 .中断的概念
什么是中断:当CPU处理一个事件a时,已发生的另一个事件b请求CPU处理,然后CPU暂时中断当前正在执行的任务以处理事件b,当CPU处理事件b后,返回先前中断的位置以返回原始事件a
1.2 .中断流示意图
使CPU中断的事件称为中断源。 中断源向CPU发出中断请求,CPU将暂时中断原执行的事件a转到事件b。 事件b处理完成后,继续返回原始中断处(此过程称为中断恢复,原始中断处称为断点),然后继续执行原始事件。
1.3 .中断优先级
1.4中断的好处
(1)提高CPU效率
CPU是计算机的指挥中心,与外围设备(例如,按键、显示器等)通信的方法有两种:咨询和中断
1 )查询)无论外围i/o是否需要服务,CPU都每隔一定时间依次执行查询。 在此查询方法中,CPU需要花费时间来服务查询
2 )中断:外围设备需要通信服务时,主动告诉CPU,CPU停止当前工作并处理中断程序,提高CPU的工作效率。
)2)可实时处理
外围设备可以随时发出请求中断的信号,CPU接到请求后立即处理,满足实时系统的需要
)3)能及时处理故障
电脑工作时无论如何都会发生故障。 eg :如果系统关闭,内存错误,外围设备无法正常工作,则可以通过中断向中断源处理器提出请求来解决故障。
二.计时器使用步骤
1 .开启总中断:
启用全部(ea )=1;
2 .设置计时器的操作方法:
TMOD寄存器:定时器/计数器模式控制寄存器
其中,M1和M0是计时器的动作模式的设定位,总共可以设定4种动作模式。
方式0(m1m0=00 ) 13位的定时/计数器
采用方式1(m1m0=01 ) 16位定时/计数器//通常方式1
方式2(m1m0=10 ) 8位自动重载时间计数器
方式3(m1m0=11 ) T0分为两个独立的8个定时/计数器; T1这样停止计数
3 .计时器填充初始值
填写初始值的要点:
单片机晶体频率: 12M,振动周期为1/12us
标准的51单片机为12T,即12个时钟周期,增加1次12 x 1/12 us=1us,即1us。
例如,将计时器设定为动作模式1,将初始值设定为10ms:
TMOD=0x01;
th0=(65536-10000; //10000表示10000个1us
TL0=(65536-10000;
4 .打开计时器中断
et0=1:启用时间0
et1=1:启用时间1
5 .打开计时器(开始计数) ) )。
TR0=1:打开计时器0
TR1=1:打开计时器1
6 .编写中断服务函数(ISR )
注:中断服务函数不能包含参数和返回值
计时器使用程序
注意:
1 )定时器和中断都是单片机的内部资源,开发板上没有芯片。 另外,计时器的初始化程序溢出时,会自动执行计时器中断子程序。 你不需要自己打电话。 所有这些都由硬件直接控制。
2 )定时器计算固定脉冲,其定时时间可以计算。 效果优于延迟函数,可以提高CPU的效率。 延迟函数必须由CPU执行,因此在此期间CPU不能执行其他功能。 计时器将在需要时自动调用。