打印

中断控制LED

[复制链接]
1777|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
宇舞随风|  楼主 | 2010-10-26 19:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 宇舞随风 于 2010-10-26 19:05 编辑

在Keil中运行正确,但在Proteus中运行时却无响应,也没有
提示什么错误!出现什么问题了呢!还请大家帮帮我

//----------------------------------------------
//--------------------外部中断控制LED----------------

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit LED=P0^0;
//              主程序
void main()
{
   LED=1;
   IE=0X81;
   IT0=1;
   while(1);
}
//   中断函数
void EXternal_Interrupt()  interrupt 0
{
   LED=~LED;
}

相关帖子

沙发
NE5532| | 2010-10-26 22:19 | 只看该作者
谁都别信,下到单片机上看看。keil的可靠性大于P

使用特权

评论回复
板凳
poche89712| | 2010-10-26 22:55 | 只看该作者
这个外部中断是由谁来产生的?

使用特权

评论回复
地板
poche89712| | 2010-10-26 22:59 | 只看该作者
程序本身事对的!

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
宇舞随风 + 1
5
Miyelov11| | 2010-10-26 23:48 | 只看该作者
仿真时应该使外部中断0口接地,使产生中断

使用特权

评论回复
6
ayb_ice| | 2010-10-27 08:31 | 只看该作者
应该设IT0=1是下降沿方式
同时还要考虑按键去抖才能达到实用方式
sbit LED=P0^0;
//              主程序
void main()
{
   LED=1;
   IE=0X81;
   IT0=1;
   while(1);
}
//   中断函数
void EXternal_Interrupt()  interrupt 0
{
   LED=~LED;
   delay_50ms();  // 去抖
   IE0 = 0;            // 清标志
}

使用特权

评论回复
7
zx4798| | 2010-10-27 14:03 | 只看该作者
很明显中断没有被触发,怎么会有反应呢.应该用定时器吧

使用特权

评论回复
8
a1311651| | 2010-10-27 14:33 | 只看该作者
:(

使用特权

评论回复
9
老鱼探戈| | 2010-10-28 12:38 | 只看该作者
外部中断可有触发
建议用定时器中断做

使用特权

评论回复
10
宇舞随风|  楼主 | 2010-11-1 21:07 | 只看该作者
解决问题:在Proteus中,开关“BUTTON”中的“Other Properties”中的值为:“{PACKAGE=NULL}”,把这个值删除了就可以运行了!只是不知道为什么会这样?

使用特权

评论回复
11
孤傲雕| | 2010-11-4 20:29 | 只看该作者
NULL时空的意思吧 ??

使用特权

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

本版积分规则

0

主题

5

帖子

0

粉丝