中断知识点整理.pdf
《中断知识点整理.pdf》由会员分享,可在线阅读,更多相关《中断知识点整理.pdf(19页珍藏版)》请在咨信网上搜索。
1、一:中断的分类。1.INT0外部中断 0,由 P3.2 口引入 interrupt 02.INT1外部中断 1,由 P3.3 口引入interrupt 23.T0定时器/计数器 0 中断,由 T0 计数器计满回零引起。interrupt 14.T1定时器/计数器 1 中断,由 T1 计数器计满回零引起。interrupt 35.T2定时器/计数器 2 中断,由 T2 计数器计满回零引起。(52 单片机特有)6.TI/RI 串行口中断,串行端口完成一帧字符发送接收后引起。interrupt 4二:关于中断的使用。接下来将练习外部中断 0 (包括电平触发和跳变沿触发)T0 定时器中断 (包括方式一
2、和方式二)这两种中断的使用。三:总论。1.要想使用中断,只要经过设置中断方式开启中断就可以了。其实就是对几个特殊功能寄存器的设置。第一步:设置工作方式寄存器 TMOD(对于定时器中断来说的,外部中断不需要)第二步:设置控制寄存器 TCON第三步:设置中断允许寄存器,开启相应的中断。四:相关寄存器介绍。1 定时器/计数器工作方式寄存器 TMOD。TMOD 共有 8 位,其高四位用来设置定时器 1,低四位用来设置定时器 0.1.GATE 门控制位 GATE=0 定时器/计数器的启动仅受 TCON 寄存器中 TRX 来控制 ,受和外部中断引脚电平状态共同控制2.C/T 定时器和计数器模式选择位。=0
3、 时定时器,=1 计数器。3.M1 M0 工作方式选择位。M1M0 0 0 13 位定时器/计数器 0 1 16 位定时器/计数器 方式一10 8 位初值自动重装的定时器/计数器 二综上:使用定时器 T0 工作方式 1 时设置为 TMOD=0 x01 使用定时器 T0 工作方式 2 时设置为 TMOD=0 x022.定时器/计数器控制寄存器 TCON低四位用于外部中断;高四位用于定时器低四位用于外部中断;高四位用于定时器/计数器计数器(1)关于外部中断 0IE0:外部中断 0 中断请求标志位。IT0:外部中断 0 触发方式控制位。当 IT0=0 时,为电平触发方式。(默认为 0,因此使用外部中
4、断就开 EA,开EX0)当 IT0=1 时,为跳变沿触发方式(下降沿有效)。【当第一个机器周期采样到 INT0为低电平时,IE0 置 1。IE0=1,表示外部中断 0 正在向 CPU 申请中断。当 cpu 相应中断,转向中断服务时,IE0 由硬件清 0.】(仔细研究下这玩意,尝试查询法)IE1 与 IT1 外部中断 1,与此用法相同。TF0:定时/计数器 T0 溢出中断请求标志位。【当定时器 0 计满溢出时,由硬件使 TF0置 1,并且申请进入中断,进入中断服务程序后,此位由硬件自动清零。需要注意的是,如果使用定时器的中断,那么该位完全不用人为去操作。但是如果使用软件查询方式的话,当查询到该位
5、置 1 后,需由软件清 0】TR0:定时器 0 运行控制位。TR0=1;启动定时器 0,软件清 0 关闭定时器 0 TR1,TF1 是关于定时器 1 的,具体用法与定时器 0 同。以上便是对定时器的设置。接下来设置中断允许寄存器。EA,全局中断允许(总允许)位。全局中断允许(总允许)位。EX0,外部中断,外部中断 0 允许位,允许位,EX0=1;开中断。;开中断。=0;关中断。;关中断。EX1 外部中断外部中断 1 允许位;允许位;ET0,定时,定时/计数器计数器 T0 中断允许位;中断允许位;ET1,定时,定时/计数器计数器 T1ES,串行口中断允许位;,串行口中断允许位;IE 是中断允许寄
6、存器,其值为 82 时,二进制为 1000 0010,IE.7 位为 1 表示 CPU 开放中断,IE.1 位也为 1,表示允许定时器 T0 溢出中断综上所述,便完成了对各种中断的设置和开启关闭。再加上一个中断子函数就 OK 了。备注:外部中断 0 interrupt 0 定时器中断 0 interrupt 1 外部中断 1 interrupt 2 定时器中断 1 interrupt 3 串口中断 interrupt 4接下来是实战:接下来是实战:1.首先是外部中断首先是外部中断 0(电平触发方式)(电平触发方式)#include#define uchar unsigned charsbit
7、d=P10;uchar i;void main()/首先 TMOD 不是关于外部中断的,不需设置EA=1;/然后是 TCON 寄存器,TR0 默认 0,也不许设置EX0=1;/所以只需开总中断,开外部中断就可以了。while(1);void ser()interrupt 0EX0=0;/进入后就关闭中断,防止中断程序还未执行完毕就在此进入中断i+;/实际测试时最好加个延时,防止持续的低电平使单片机持续进入中断if(i=1)/类似于按键消抖d=0;if(i=2)d=1;EX0=1;2.然后是外部中断然后是外部中断 0(跳变沿触发方式)(跳变沿触发方式)#include#define uint u
8、nsigned intsbit beep=P23;sbit t=P32;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void main()t=0;IT0=1;/设置 TCON,设为跳变沿触发EA=1;EX0=1;while(1)t=1;delay(5);t=0;void ser()interrupt 0beep=0;delay(1000);beep=1;delay(1000);3.定时器定时器 0 中断(方式中断(方式 1):):步骤还是以上说的那样,先设步骤还是以上说的那样,先设 TMOD,再赋初值,再设,再赋初值,再设
9、 TCON,然后启动总中断,开,然后启动总中断,开TR0.但关于赋初值:但关于赋初值:1.由计数产生中断,计满溢出便会进入中断。不赋初值,默认为 0,计 65536 个数,即耗费 65536us.2.若晶振为 12MHZ,要计多长时间,就用(65536-t)这就是初值,在此基础上计时。11.0592MHZ 时,(65536-45872)/256;(65536-45872)%256;便是计时 50 毫秒。3.需要计数的个数需要计数的个数 N=需要计数的时间需要计数的时间 t/机器周期机器周期 T 12 个时钟周期为个时钟周期为 1 个机器周个机器周期。期。时钟周期便是频率的倒数。时钟周期便是频率
10、的倒数。#includeunsigned char i;void main()TMOD=0 x01;/设定为 定时器 0 工作方式是 1TH0=(65536-45872)/256;TL0=(65536-45872)%256;/50 毫秒进入一次中断TR0=1;/设置 TCONEA=1;ET0=1;/开定时器 0 中断while(1)if(i=20)P1=0 x00;if(i=40)i=0;P1=0 xff;void ser()interrupt 1i+;扩展:扩展:1.定时器、计数器定时器、计数器 0 方式方式 0 的应用:的应用:通过设置 M1M0 位为 00 选择定时器方式 0,计数位数是
11、 13 位的,由 TL0 的低五位和 TH0的 8 位组成,最多能装 8192 个数。若晶振为 11.0592MHZ,则机器周期为 12*(1/11.0592)=1.0851us.若计时 t=5ms,则需要计数 N=5000/1.0851=4607。则初值为 TH0=(8192-4607)/32;TL0=(8192-4607)%32;计数时只使用了 TL0 的低五位,所以最多计 32 个数就会进 1.示例程序:#includesbit d=P10;unsigned char i;void main()TMOD=0 x00;TH0=(8192-4607)/32;/计时 5msTL0=(8192-
12、4607)%32;EA=1;ET0=1;TR0=1;while(1)if(i=200)i=0;d=d;void ser()interrupt 1TH0=(8192-4607)/32;/计时 5msTL0=(8192-4607)%32;i+;2.定时器定时器 0 中断(方式中断(方式 2):自动重装):自动重装TMOD 设置为设置为 0 x02 即可。即可。(TMOD=0000 0010 转化为转化为 16 进制为进制为 0 x20)但方式)但方式 2 是是 8 位的,位的,计时的时间比较短。计时的时间比较短。方式 2 适合做比较精确地脉冲信号发生器(晶振为 12M 这样才不会有误差)8 位自动
13、重装计数器,最多计 256 个数。机器周期仍为 1.0851us(12M 便是 1us),若每次计250 个数,耗时 1.0851*250=271.275us,要计 1s 的话,需要溢出 1000 000/271.275us=3686次。初值为 6。/*方式 2 适合做比较精确地脉冲信号发生器(晶振为 12M 这样才不会有误差)8 位自动重装计数器,最多计 256 个数。机器周期仍为 1.0851us(12M 便是 1us),若每次计 250 个数,耗时 1.0851*250=271.275us,要计 1s 的话,需要溢出 1000 000/271.275us=3686 次。初值为 6。同理,
14、12M 晶振,250 次,即为 250us,溢出 4000 次即为 1s*/#includesbit d=P10;unsigned int n;/不能用 uchar 了哦void main()TMOD=0 x02;/定时器 0 方式 2TH0=6;TL0=6;EA=1;ET0=1;TR0=1;while(1)if(n=3686)/计时 1s 需溢出 3686 次n=0;d=!d;void ser()interrupt 1n+;/不需要赋初值哦3.定时器定时器 0(方式(方式 3)的应用)的应用 (方式(方式 3 只适用于只适用于 T0)(1).M1M0 设置为 1 1 即为方式 3.(2)方式
15、 3 被分为两个独立的计数器,TL0 为正常的 8 为计数器,计数器溢出后置位TF0,并向 CPU 申请中断,之后手动重装初值。TH0 也被固定为一个位计数器,但它将占用 T1 的中断请求标志 TF1 和定时器启动控制位 TR1。(3).因为方式 3 占用了 T1 的中断,所以使用方式 3 就不能使用 T1 的中断。但 T1 仍然可以正常工作在方式 0,1,2 下。通常这种情况下 T1 被用来当做串行口的波特率发生器。示例程序:#includesbit d1=P10;sbit d2=P11;unsigned int n1,n2;void main()TMOD=0 x03;/定时器 0 方式 3
16、TH0=6;TL0=6;EA=1;ET0=1;ET1=1;/TH0 占用 T1 的中断,所以也要打开TR0=1;TR1=1;/while(1)if(n1=3686)/必须是=n1=0;d1=d1;if(n2=1843)/定时半秒n2=0;d2=d2;void ser_TL0()interrupt 1 /不能仅用 TL0 做函数名TL0=6;n1+;void ser_TH0()interrupt 3 /用的 T1 的中断,所以为 3TH0=6;n2+;备注:备注:关于此处变成了关于此处变成了 n=因为此处有两个中断程序。因为此处有两个中断程序。假设当 n1 恰好等于了 3686,然后程序进入 i
17、f 内部执行,但若恰好此时 n2 到达了 1843,主程序此时还检测不到下一个 if 语句也满足情况了,故 n2 会继续加下去,若判断情况还是之前的=的话,程序永远不会进入 if 语句。故应为=。以后写这方面的程序要特别注意。4.关于计数器的应用。(以计数器 0 方式 1 为例)(1)、计数器的功能是对外来脉冲信号计数,计数器 T0(P3.4 口)T1(P3.5 口)T2(P1.0)三个输入引脚。当设置为计数器工作状态时,每当外部输入的脉冲发生负跳变(由 1 到 0)时,计数器加 1,直至加满溢出,然后进入中断。(2)、但单片机的晶振限制了所测计数脉冲的最高频率,外部输入计数脉冲的最高频率为振
18、荡器频率的 1/24 .即 12MHZ 晶振频率,最高可输入 500KHZ 的外部脉冲。(3)、知识回顾:TMOD 中高四位用来设置计时器/计数器 1,低四位用来设置 T0.其中 C/T 为用来选择是计数器还是定时器。=0,计时。=1 计数。故计数应设为 0000 0101 TMOD=0 x05;/*项目功能:利用计数器 0 工作方式 1,用地线去接触 T0 脚,每接触一下,计数器计一次数,将所记的数值实时显示在数码管上,计满 100 清零。*/*程序一:不使用中断法,不停地读取计数器寄存器中的值注意事项:1.用函数实现读取运行中计数器寄存器的值,由于寄存器的值会随时变化,为防止读完 TH0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 知识点 整理
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。