中断测试求助

[复制链接]
 楼主| 包子lxy 发表于 2013-3-31 17:32 | 显示全部楼层 |阅读模式
我在做智能车,本来想通过外部中断触发来实现循迹和避障功能的切换,但是没有成功,现在在测试中断。

通过一个端口给P32口低电平(两端口直接用杜邦线连接),犹豫端口输出信号高低变化,导致程序在中断和跳出中断间循环,从而达到点亮LED的目的。

程序如下:
#include<reg52.h>


sbit led=P2^7;
sbit waibu=P1^0;

#define uint unsigned int
#define uchar unsigned char
       
void delay(uint z)
{
        uchar y;
        uint x;
        for(x=z;x>0;x--)
                for(y=20;y>0;y--);       
}


void main()
{
        EA=1;
        EX0=1;//外部中断0
        IT0=0;//电平触发
        while(1)
        {
                waibu=0;
                delay(1000);
        }       
}


void int0(void)interrupt 0 using 1
{
         led=1;
         delay(1000);
         waibu=1;
         delay(1000);
}



我觉得这个程序应该是达到让LED闪烁的目的吧。。可是实际中led不闪,会亮。
求助
chen3bing 发表于 2013-3-31 18:53 | 显示全部楼层
因为灯亮了你没让它灭呀!
NE5532 发表于 2013-3-31 19:18 | 显示全部楼层
呵呵,楼上正解,楼主说下让他熄灭的语句在哪里呢。
 楼主| 包子lxy 发表于 2013-3-31 21:07 | 显示全部楼层
chen3bing 发表于 2013-3-31 18:53
因为灯亮了你没让它灭呀!

发现了==谢谢!
 楼主| 包子lxy 发表于 2013-3-31 21:08 | 显示全部楼层
NE5532 发表于 2013-3-31 19:18
呵呵,楼上正解,楼主说下让他熄灭的语句在哪里呢。

是啊。。新人有时候忘东忘西的。。。谢谢!
 楼主| 包子lxy 发表于 2013-4-3 16:56 | 显示全部楼层
NE5532 发表于 2013-3-31 19:18
呵呵,楼上正解,楼主说下让他熄灭的语句在哪里呢。

不好意思,再追问下。。。
我在中断函数中:waibu=1;
这句话是否让程序跳出中断呢?(我用的是低电平触发,此处给了高电平)

其实我的本意是通过程序不断进入跳出中断来完成led的闪烁,不是让中断函数来完成闪烁
NE5532 发表于 2013-4-3 22:31 | 显示全部楼层
在51上好像应该是做得出来的,因为5的端口当外部中断的时候,自己拉电平似乎也要认,但是楼主这样写程序没有任何意义,用内部程序控制外部引脚,又进中断来执行,直接在内部处理了不就OK了么?
cjseng 发表于 2013-4-4 12:42 | 显示全部楼层
楼上的,人家不是为了测试中断吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

95

帖子

0

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

28

主题

95

帖子

0

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