找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1774|回复: 3
打印 上一主题 下一主题
收起左侧

外部中断问题,请指教,谢谢! 为什么二次进入?

[复制链接]
跳转到指定楼层
楼主
ID:135027 发表于 2016-8-26 09:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/****************************************
以下程序测试外部中断, 主程序循环控制LED
快速闪烁,外部中断使LED慢闪三次。

但是每次触发外部中断,LED不是慢闪三次,
而是慢闪六次! 不知为什么?请指教,谢谢!
****************************************/

#include "STC12C5Ax.h"

sbit WBZD = P3^2;           //将外中断定义为P3.2引脚
sbit LEDF  = P1^3;           //控制LED发光二极管

//// 全局变量定义
unsigned int TimeJG;          //间隔         控制闪烁频率


void delay(unsigned int n)             //延时 n 毫秒                     
{
    unsigned int x,y;  
    for(x=n;x>0;x--)
        for(y=110;y>0;y--);
}


void Int0(void) interrupt 0         //外中断处理
{
        EX0 = 0;  //关闭外中断0,不再接收二次中断

                //慢闪三次
                LEDF = 0;
                delay(2000);    //延时 n 毫秒
                LEDF = 1;
                delay(2000);    //延时 n 毫秒
                LEDF = 0;
                delay(2000);    //延时 n 毫秒
                LEDF = 1;
                delay(2000);    //延时 n 毫秒
                LEDF = 0;
                delay(2000);    //延时 n 毫秒
                LEDF = 1;
                delay(6000);    //延时 n 毫秒

           EX0=1 ;     //开外中断0         
}

void main()         //主函数
{         
        EA=1;        //开启总中断
           EX0=1;       //开外中断0
        IT0=1;       //外中断下降沿触发

        while(1)         
        {
                if(TimeJG++ == 0 ) //
                {
                        TimeJG = 30000;        //间隔         控制闪烁频率
                        LEDF = ~LEDF;        //翻转   发光二极管闪烁
                }
                               
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:135027 发表于 2016-8-29 17:44 来自手机 | 只看该作者
外中断改为低电平触发后解决。触发源是红外遥控,一串波太长所以
回复

使用道具 举报

板凳
ID:137239 发表于 2016-8-29 19:20 | 只看该作者
有没有考虑到按键抖动的问题?
回复

使用道具 举报

地板
ID:123289 发表于 2016-8-29 19:31 | 只看该作者
每是按下按键,不能保证只有一个边沿,金属弹动会产生若干个边沿。
解决的办法有多种。比如,中断后延时一段时间(30ms)再返回
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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