找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3386|回复: 5
收起左侧

单片机外部中断有时无效有时上升沿触发

[复制链接]
ID:233756 发表于 2018-8-2 10:56 | 显示全部楼层 |阅读模式
用的STC89C52RC的单片机,这次使用红外的时候感觉外部中断就问题,就单独试了下
发现现在有时下降沿触发,有时上升沿触发,有时又无效。。。。。
这是单片机坏了吗?

我用试过好几根杜邦线把P3.2和GND触碰,都是出现上述情况


#include<reg52.h>
sbit led = P0^0;
sbit ir = P3^2;
bit flag = 0;

void main()
{
        IT0 = 1;
        EX0 = 1;
        EA = 1;
        ir = 1;
        while(1)
        {
                if(flag == 1)
                {
                        flag = 0;
                        led = ~led;
                        EA = 1;
                        ir = 1;
                }
        }

}

void time() interrupt 0
{
        flag = 1;
        EA = 0;
}



还有我拿这红外接收头的连接线,把红外接收头甩来甩去,怎么会有红外接收信号?
回复

使用道具 举报

ID:111634 发表于 2018-9-2 11:27 | 显示全部楼层
有没有查过触发脉冲?

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:392542 发表于 2018-9-2 10:28 | 显示全部楼层
你这里程序有问题。
中断的设置需要四步:设置总中断开、设置所需中断开、设置中断优先级、设置中断触发方式。
你这里没有设置中断触发方式,默认为电平触发。
而电平触发检测到信号所需要的时间比较长,就造成了你感觉有时候上升沿触发,(感应器有信号的时间比较长);有时候下降沿触发(感应器有信号的时间比较短);有时候不触发(感应器有信号的时间太短)。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:392542 发表于 2018-9-2 10:24 | 显示全部楼层
程序有问题。设置中断需要四步,设置总中断开、设置所需中断开、设置中断优先级、设置中断触发方式。你这里最主要的是中断触发方式没有设置,魔人应该是电平触发,而电平触发检测的时间长,就造成了你感觉有时候上升沿触发,有时候下降沿触发,有时间感应时间太短,没检测到就不触发

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:392339 发表于 2018-9-1 15:45 | 显示全部楼层
中断周期多长啊?
回复

使用道具 举报

ID:225054 发表于 2018-9-1 13:37 来自手机 | 显示全部楼层
感觉程序有问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表