标题:
单片机中断嵌套问题,求大神帮帮忙。
[打印本页]
作者:
听雨画沙
时间:
2018-10-14 17:42
标题:
单片机中断嵌套问题,求大神帮帮忙。
我想做一个定时器和按键的中断程序,意思就是启动这个程序,每达到一个设定时间时led1状态翻转。在定时器计时过程中,按下按键K次,则led2状态翻转。但是我写出以下程序以后发现只有定时器中断工作有效。而按键中断工作无效。如何设置IP寄存器,使定时器工作时,按键中断仍然能工作???
求大神们回复。
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit M1=P2^0;
sbit M2=P2^1;
sbit k3=P3^2;
void delay(u16 i)
{
while(i--);
}
void HHH()
{
IT1=1;
EX1=1;
EA=1;
}
void SSS()
{
TMOD|=0X01;
TH0=0XFC; //给定时器赋初值,定时1ms
TL0=0X18;
ET0=1;
EA=1;
TR0=1;
}
void main()
{
SSS();
HHH();
while(1);
}
void Int1() interrupt 0
{
static u16 i;
delay(1000);
if(k3==0)
{
i++;
if(i==3)
{
M1=~M1;
i=1;
}
}
}
void Timer0() interrupt 1
{
static u16 i;
TH0=0XFC;
TL0=0X18;
i++;
if(i==700)
{
i=0;
M2=~M2;
}
}
作者:
Y_G_G
时间:
2018-10-14 23:40
中断程序里面不要有延时的,一般来说,一个中断是不会用你太多时间的.算是一千条指令也就是1mS的时间,这是不会错过的按键的扫描时间的,但你要是在中断中加入延时,那一个中断用上几mS甚至是几S的时间,按键是肯定扫描不到的了
总而言之,中断程序(函数)要小,时间要智短.
作者:
dabing89
时间:
2018-10-15 06:24
http://www.51hei.com/bbs/dpj-137513-1.html
可以参考一下这个程序 案件按下一次蜂鸣器响一次,案件控制小灯的反转
作者:
随风飘远
时间:
2018-10-15 15:21
中断函数设置问题,延时不能在执行中断函数的时候进行。
作者:
tfyyu
时间:
2018-10-15 17:04
同问,中断嵌套该怎么用
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1