单片机C语言第4章中断系统的C51编程ppt课件.ppt
《单片机C语言第4章中断系统的C51编程ppt课件.ppt》由会员分享,可在线阅读,更多相关《单片机C语言第4章中断系统的C51编程ppt课件.ppt(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4.3 外部中断外部中断源的源的C51编程编程 51单片机提供了单片机提供了2个外部中断源个外部中断源 : 外部中断外部中断0请求请求,占用,占用P3.2引脚,其中断引脚,其中断请求号为请求号为0。 外部中断外部中断1请求请求,占用,占用P3.3引脚,其中断引脚,其中断请求号为请求号为2。 外部中断源的外部中断源的初始化初始化时通过设置相应的特时通过设置相应的特殊功能寄存器的相应位来实现的。殊功能寄存器的相应位来实现的。(1)TCON寄存器中的寄存器中的IT0、IT1位位 外部中断外部中断0和外部中断和外部中断1的中断触发方式控制位。如:的中断触发方式控制位。如: IT0=0;/外部中断外部中
2、断0为电平触发方式为电平触发方式 IT1=1;/外部中断外部中断1为脉冲触发方式为脉冲触发方式 (2)IP寄存器中的寄存器中的PX0、PX1位位 外部中断外部中断0和外部中断和外部中断1的中断优先级的设定。如:的中断优先级的设定。如: PX0=0;/设定外部中断设定外部中断0为低级中断为低级中断 PX1=1;/设定外部中断设定外部中断1为高级中断为高级中断4.3.1 外部中断源的初始化(3)IE寄存器中的寄存器中的EA、EX0、EX1位位 EA为中断允许总控制位;为中断允许总控制位;EX0、EX1为外部中断为外部中断0中中断和外部中断断和外部中断1中断的中断允许位。如:中断的中断允许位。如:
3、EA=1;/开放总的中断控制开放总的中断控制 EX0=1;/允许外部中断允许外部中断0中断中断 EX1=0;/禁止外部中断禁止外部中断1中断中断【例【例4-1】初始状态时低初始状态时低4位灯亮,高位灯亮,高4位位的灯灭,编程实现按一下的灯灭,编程实现按一下S0,P1口的发光口的发光状态发生反转。状态发生反转。 #include void main( ) P1=0XF0; /高高4位灭、低位灭、低4位亮位亮 IT1=1; /脉冲触发方式脉冲触发方式 EA=1; EX1=1;/开放相应的中断开放相应的中断 while(1); /等待中断等待中断 void wint0(void)interrupt
4、2 /外外部中断部中断1 P1=P1; 【例【例4-2】利用利用S0按钮控制按钮控制P1口的灯,要口的灯,要求每按一下就点亮一盏灯求每按一下就点亮一盏灯(其余的灯是灭其余的灯是灭的的)。 #include #include /内部函数内部函数 bit flag; /中断标志中断标志 unsigned char ledstatus; void wint1( ) interrupt 2 flag=1; void main(void) P1=0 xff; ledstatus=0 xfe; IT1=1; EA=1; EX1=1; while(1) if(flag) P1=ledstatus; leds
5、tatus=_crol_(ledstatus,1); flag=0; 修改:利用利用S0按钮控制按钮控制P1口的灯,要求每按口的灯,要求每按一下就点亮一盏灯一下就点亮一盏灯(其余的灯其余的灯保持亮保持亮的的状态状态) .。【例【例4-3】当当S0动作时,动作时,P1.0端口的电平反向,端口的电平反向,当外当外S1动作,动作,P1.7端口的电平反向端口的电平反向。 #include sbit LED0=P10; sbit LED7=P17; void IS0(void) interrupt 0/外部中断外部中断0 LED0=LED0; void IS1(void) interrupt 2/外部中
6、断外部中断1 LED7=LED7; void main( ) P1=0 xFF; IT0=1; IT1=1; EX0=1; EX1=1; EA=1; while(1); 修改:(1)S0控制P1.0P1.3的灯,S1控制P1.4P1.7的灯。 (2)按下S0后,点亮8只LED;按下S1后,变为闪烁状态。【例【例4-4】P1口控制的灯按一定的频率闪烁,口控制的灯按一定的频率闪烁,S0动作,实现单灯左移,而左移动作,实现单灯左移,而左移3圈结束。圈结束。#include #defineLEDP1 /定义LED接至P 1void delay1ms(int); /声明延迟函数 void left(in
7、t); /声明单灯左移函数 main( ) IE=0 x81; /准许INT 0中断LED=0 x00; /初值=0000 0000,灯全亮while(1) /无穷循环,程序一直跑 delay1ms(250); /延迟250*1m=0.25s LED=LED; /LED反相 /* INT 0的中断子程序 - 单灯左移3圈 */void my_int0(void) interrupt 0unsigned saveLED=LED; /储存中断前LED状态 left(3); /单灯左移3圈 LED=saveLED; /写回中断前LED状态 /* 延迟函数,延迟约x 1ms */void delay1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 语言 中断 系统 C51 编程 ppt 课件
限制150内