欢迎来到天天文库
浏览记录
ID:19637340
大小:542.50 KB
页数:16页
时间:2018-10-04
《51单片机学习08(外部中断)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章AT89C51单片机的中断系统5.1中断的概念CPU执行(主)程序过程,随机接收到外设发来的中断请求,CPU可暂时中断当前正在执行的(主)程序,转到相应的中断服务(子)程序进行处理。处理完毕,再返回到原来的(主)程序(被中断之处),继续运行下去。可产生中断请求的设备或事件称为中断源。优点:大大地提高了CPU的工作效率,能及时地响应和处理特殊事件随时,非预定有效的请求信号满足响应中断的条件时预先编备的处理程序P.71谁请求为谁服务图5-1中断响应和处理过程示意图RETIPC←中断服务入口地址PUSHPCPOPPCP
2、.71断点地址PC→满足条件且该指令执行完响应外设随机地发中断请求建中断响应标志撤中断响应标志①②③①②图5-2AT89C51中断系统结构示意图两个中断优先级五个中断源<中断服务入口地址>外部中断请求0<0003H>外部中断请求1<0013H>定时器0计数溢出<000BH>定时器1计数溢出<001BH>串行口发送/接收<0023H>5.2AT89C51单片机中断系统的结构P.72下降沿有效下降沿有效0电平有效0电平有效中断源信号有效则置1被响应自动清0也可由程序清0无自动清0须程序清01-允许0-禁止1-允许0-禁止1
3、-高优先级0-低优先级高级中断源可中断低优先级正进行的中断服务同时请求时先响应高优先级同级则按自然序发送中断接收中断位设定位中断允许设定位(A8H)(B8H)(88H)(A8H)(98H)引脚引脚中断请求1-有请求1.TCON定时器/计数器的控制寄存器字节地址为88H。5.2.2中断请求标志寄存器8EH8CHP.72-732.SCON串行口控制寄存器字节地址为98H。9FH9EH9DH9CH9BH9AHSM0SM1SM2RENTB8RB85.3中断控制5.3.1中断允许寄存器IE字节地址A8HP.73-755.3.2中
4、断优先级寄存器IP字节地址为B8H1-高优先级0-低优先级中断嵌套可归纳为下面两条基本规则:(1)低优先级的服务过程可被高优先级中断,反之则不能。(2)同级中断的服务过程不会被它的同级其他中断源所中断。1-允许中断0-禁止中断5.4响应中断请求的条件一个中断请求被CPU响应,需满足以下必要条件:(1)IE寄存器中的中断总允许位EA=1。(2)该中断源发出中断请求,即对应的中断请求标志为“1”。(3)该中断源的源中断允许位=1,即该中断没有被屏蔽。(4)无同级或更高级中断正在被服务。(5)正在执行的指令不是RETI或是访
5、问IE或IP的指令。(6)只有在当前指令执行完毕后,才能进行中断响应。5.5中断的响应时间在一个单一中断的系统里,AT89C51单片机对中断请求的响应的时间一般在3~8个机器周期之间。P.76各中断源服务程序的入口地址:它是各中断源的中断服务子程序的执行首地址,CPU响应某中断源中断请求后,对应转到相应的入口地址去执行预先为该中断源编写的服务子程序。中断源入口地址外部中断00003H定时器/计数器T0000BH外部中断10013H定时器/计数器T1001BH串行口中断0023H五个中断入口地址之间只相隔8个地址单元,中
6、断服务程序较长时通常安排跳转指令到其他地址区域去。同时主程序通常安排在0030H之后开始。P.77外部中断应用例:【例B5-1】外部中断INT0每中断一次令P1.0求反。(INT0-1.ASM)实验板INT0按键电路【例B5-2】外部中断INT0每中断五次令P1.0求反一次(INT0-2.ASM)(要紧接着DJNZ后重置)DJNZ4AH,LRMOV4AH,#200DJNZ49H,LRMOV49H,#100MOV4AH,#200MOV49H,#100软件计数改为5×100×200=100000次【例B5-3】主程序运用软
7、件延时控制P1.7秒闪的同时实现外部中断INT0每中断五次令P1.0求反一次(INT0-3.ASM)【例B5-4】上例基础上中断服务子程序具体代码后移的方法(INT0-4.ASM)【例B5-2】INT0每中断1次令50H单元内容加1并且输出到P1口(INT0-5.ASM)MOVA,50HADDA,#1DAAMOV50H,A按BCD码加1TEST2011.ASM外部中断功能演示程序介绍1.实时时钟功能在数码显示器右边六位动态显示实时钟的时、分、秒单元分配:3AH:“秒”单元(BCD码);3BH:“分”单元(BCD码);3
8、CH:“时”单元(BCD码)。2.外部中断功能演示程序外部中断0(INT0)每中断1次令(3CH)单元内容按BCD码以24为模加1,相当于实现校时功能。IEX0P:PUSHACC;外部中断0服务子程序。保护现场PUSHPSWMOVA,3CH;小时单元(按BCD码)加1ADDA,#1DAAMOV3CH,ACJNEA,#24H,DN;
此文档下载收益归作者所有