我的中断嵌套是否有问题呢???

[复制链接]
2835|4
 楼主| wangruixu1121 发表于 2011-7-25 20:21 | 显示全部楼层 |阅读模式
外部中断0启动后,返回主函数无法启动外部中断1
#include<reg52.h>
#define ulint unsigned long int
#define uchar unsigned char
sbit up=P1^0;
sbit down=P1^1;
sbit PW1=P1^2;
sbit PW2=P1^3;
#define motorup PW1=0;PW2=1;
#define motordown PW1=1;PW2=0;
#define stop PW1=1;PW2=1;

void delay(ulint z)
{
ulint x,y;
for(x=z;x>0;x--);
    for(y=4294967290;y>0;y--);
}


void main()
{
EA=1;
EX0=1;
EX1=1;
IT0=0;
IT1=1;
PX0=1;
while(1)
{
  stop;
  EX0=1;
  if(up==0&&down==1)
   {
    motorup;   
   }
  else if(up==0&&down==0)
   {
    stop;
   }
  else if(up==1&&down==0)
   {
    motordown;
   }
  else if(up==1&&down==1)
   {
    stop;
   }
}
}


void autostop() interrupt 0
{
stop;
main();
}



void autodo() interrupt 2
{
  motordown;
  delay(50000);
}
 楼主| wangruixu1121 发表于 2011-7-25 20:23 | 显示全部楼层
那个笑脸是"P",不知道怎么变成笑脸了
xingxingdianzhi 发表于 2011-7-25 23:24 | 显示全部楼层
lz,看你写的程序好像是单片机c程序。看懂了你大概要表示的意思,可是在“EX0=1;
EX1=1;”后面你没写“TR1=1;TR0=1;”等等。
这样吧,你把你的电路图写在下面,我帮你看看到底是什么问题,没电路不好说问题。
 楼主| wangruixu1121 发表于 2011-7-27 16:19 | 显示全部楼层
我想利用外部中断去控制直流电机的自动和堵转,PW1和PW2主要控制电机的正反转,UP是手动上升,down是手动下降,外部中断1是控制自动挡,外部中断0是控制电机堵转停止,可否指点一二,怎样更改才算成功呢??? 3# xingxingdianzhi
 楼主| wangruixu1121 发表于 2011-7-27 21:30 | 显示全部楼层
摆脱各位大哥大姐啦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

76

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部