打印

中断测试求助

[复制链接]
1256|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
包子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
因为灯亮了你没让它灭呀!

发现了==谢谢!

使用特权

评论回复
5
包子lxy|  楼主 | 2013-3-31 21:08 | 只看该作者
NE5532 发表于 2013-3-31 19:18
呵呵,楼上正解,楼主说下让他熄灭的语句在哪里呢。

是啊。。新人有时候忘东忘西的。。。谢谢!

使用特权

评论回复
6
包子lxy|  楼主 | 2013-4-3 16:56 | 只看该作者
NE5532 发表于 2013-3-31 19:18
呵呵,楼上正解,楼主说下让他熄灭的语句在哪里呢。

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

其实我的本意是通过程序不断进入跳出中断来完成led的闪烁,不是让中断函数来完成闪烁

使用特权

评论回复
7
NE5532| | 2013-4-3 22:31 | 只看该作者
在51上好像应该是做得出来的,因为5的端口当外部中断的时候,自己拉电平似乎也要认,但是楼主这样写程序没有任何意义,用内部程序控制外部引脚,又进中断来执行,直接在内部处理了不就OK了么?

使用特权

评论回复
8
cjseng| | 2013-4-4 12:42 | 只看该作者
楼上的,人家不是为了测试中断吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

95

帖子

0

粉丝