如何利用单片机的外部中断int0与int1写暂停和启动程序

如何利用单片机的外部中断int0与int1写暂停和启动程序,第1张

一个简单的方法,设置两个标志,例如Flag0 、Flag1,初值为0

在主函数中配置置中断0和1并开启中断,再主程序查询Flag0 和Flag1,Flag0=1,是开始(注意查询到为1后记得清掉Flag0=1),中断0和1的服务程序就写上Flag0 和Flag1 为1 即可

仅提供一个思路,很简单的一个程序,还是不附上代码了,还有问题可以咨询。

按键一端接地,另一端接P3^2 就是外部中断0 ,,

sbit key = P3^2;

void main()

{

EX0 = 1;

IT0 = 1;

EA = 1;

while(1)

{

这里写你的功能;

}

}

void int0() interrupt 0

{

unsigned int i = 0;

while(1)

{

if(key == 0)

{

i++;

if(i >= 1000)

{

i=0;

flag = 1;

break;

}

}

else

{

i=0;

break;

}

}

}

这个程序包括了消抖部分,flag = 1的时候就表明 按键按下了。 flag的变量定义,还有头文件,自己加上,在主程序你检测flag的状态就可以了

51单片机的外部中断是有两种触发方式的,如外部中断0: IT0(TCON0) ,外部中断 0触发方式控制位。 当IT0=0时,为电平触发方式。 当IT0=1时,为边沿触发方式(下降沿有效)。 51单片机中断系统初始化: 开相应中断源的中断; (IE) 设定中断优先级;(IP) 若为外部中断,设定外部中断的触发方式。 void Outside_Init(void) { EX0 = 1; //开外部中断0 IT0 = 1; //负边沿触发 EA = 1; //开总中断 } void Outside_Int(void) interrupt 0 //外部0中断函数 { EX0 = 0; //关中断 这里写要实现的功能 EX0 = 1; //开中断 }

跟外部的按键消抖一样处理就可以了。

void ext0() interrupt 0

{

delay(10);//

flag=0;//按键有效标志=0为无效

if(P3_2)

{

while(!P3_2);//等待按键抬起

flag=1;

}

}

中断处理函数感觉有些问题,for循环之前使用P1=0x0f;然后将for内的P1=0x0f;改为 P1= ~ P1; 同时for 循环中应该需要调用延时函数 Delay(10); 这里的值看你自己设置,保证能分辨闪烁即可

51?1、先初始化,设置外部中断、串口工作模式,开中断;2、写中断服务程序;//--------------------------------------------///初始化//--------------------------------------------/voidinit(void){TMOD|=0x20;//工作模式SCON=0x50;TH1=0xfd;//定时器1初值,设置波特率TL1=0xfd;//波特率为9600TR1=1;//启动定时器1ES=1;//串口中断允许工作于方式1IT0=1;//外部中断0下降沿触发方式IT1=1;//外部中断1下降沿触发方式EX0=1;//开外部中断0EX1=1;//开外部中断1EA=1;//开总中断}////中断服务程序//voidint0(void)interrupt0//外部0中断服务{}//--------------------------------------------//复位中断//--------------------------------------------voidint1(void)interrupt2//外部1中断服务{}//--------------------------------------------/voiduart(void)interrupt4//串口中断{uchar;if(RI)//接收{RI=0;ud=SBUF;//取收到的字节}elseTI=0;//发送完成}

以上就是关于如何利用单片机的外部中断int0与int1写暂停和启动程序全部的内容,包括:如何利用单片机的外部中断int0与int1写暂停和启动程序、单片机89c51外部摁键中断程序、51单片机中设置外部中断0为下降沿触发的语句怎么写啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10122928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存