找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求大神帮我看看外部中断程序错误出在哪儿?

[复制链接]
跳转到指定楼层
楼主
#include<reg51.h>
sbit P3_4=P3^4;
void Delay(unsigned int t)
{
while(t--);
}
void main()
{
EX1=1;  //外部中断1允许
IT1=0;  //电平触发中断
EA=1;   //总中断允许
while(1)
{
  P1&=0xfe;       //工序1,完成后进入工序2
  Delay(2000);
  P1&=0xfd;       //工序2,完成后进入工序3
  Delay(2000);
  P1&=0xfb;        
  Delay(2000);
  P1&=0xf7;        
  Delay(2000);
  P1&=0xef;        
  Delay(2000);
  P1&=0xdf;        
  Delay(2000);
  P1&=0x8f;        
  Delay(2000);   //7道工序完成,重新开始循环
}
}
void int1_isp() interrupt 2    //外部中断1中断服务函数

SPK=~P3_4;             //报警
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:70587 发表于 2014-12-22 10:30 | 只看该作者
它显示未定义我不知道怎么定义呀
回复

使用道具 举报

板凳
ID:67992 发表于 2014-12-22 11:18 | 只看该作者

SPK=~P3_4;             //报警

SPK没定义,编译器不知它是什么东西。另外大括号要在英文模式下输入。
回复

使用道具 举报

地板
ID:70587 发表于 2014-12-22 12:31 | 只看该作者
dgahz 发表于 2014-12-22 11:18
SPK没定义,编译器不知它是什么东西。另外大括号要在英文模式下输入。

我再前面定义了sbit SPK=P1_7;虽然编译没错误了    但还是不得行
回复

使用道具 举报

5#
ID:67992 发表于 2014-12-22 12:35 | 只看该作者
怎么个不行法?别象老太婆修电视,问怎么了,答就是不好使。
回复

使用道具 举报

6#
ID:70587 发表于 2014-12-22 12:45 | 只看该作者
dgahz 发表于 2014-12-22 12:35
怎么个不行法?别象老太婆修电视,问怎么了,答就是不好使。

回复

使用道具 举报

7#
ID:70587 发表于 2014-12-22 12:47 | 只看该作者
dgahz 发表于 2014-12-22 12:35
怎么个不行法?别象老太婆修电视,问怎么了,答就是不好使。

要弄一个顺序控制的小电路,有7个灯,故障控制开关这些,这个程序添加进去,灯就一直亮起,也控制不了,故障报警也不起作用,伤心ing
回复

使用道具 举报

8#
ID:67992 发表于 2014-12-22 14:27 | 只看该作者
你先控制一个灯试试,行了再加灯。
回复

使用道具 举报

9#
ID:67992 发表于 2014-12-22 14:30 | 只看该作者
你灯接在哪个引脚啊?故障信号接在哪?
回复

使用道具 举报

10#
ID:70587 发表于 2014-12-22 15:38 | 只看该作者
dgahz 发表于 2014-12-22 14:30
你灯接在哪个引脚啊?故障信号接在哪?

我想发图片给你   可是 还要审核
回复

使用道具 举报

11#
ID:70587 发表于 2014-12-22 16:04 | 只看该作者
dgahz 发表于 2014-12-22 14:30
你灯接在哪个引脚啊?故障信号接在哪?

回复

使用道具 举报

12#
ID:70587 发表于 2014-12-22 16:06 | 只看该作者
dgahz 发表于 2014-12-22 14:30
你灯接在哪个引脚啊?故障信号接在哪?

回复

使用道具 举报

13#
ID:70587 发表于 2014-12-22 16:07 | 只看该作者
回复

使用道具 举报

14#
ID:70587 发表于 2014-12-22 16:07 | 只看该作者
回复

使用道具 举报

15#
ID:70587 发表于 2014-12-22 16:33 | 只看该作者
dgahz 发表于 2014-12-22 14:30
你灯接在哪个引脚啊?故障信号接在哪?

版主,可以告诉我你的邮箱吗?想向你请教下    拜托了
回复

使用道具 举报

16#
ID:67992 发表于 2014-12-22 16:58 | 只看该作者
回复

使用道具 举报

17#
ID:67992 发表于 2014-12-22 19:22 | 只看该作者
#include<reg51.h>
sbit error=P3^3;
sbit start=P3^4;
sbit buzz=P1^7;
void Delay(unsigned int t)
{
   unsigned int x,y;
   for(x=t;t>0;t--)
    for(y=110;y>0;y--)
        {
                if(start==0)
                return;
        }
}
void main()
{
        EX1=1;  //外部中断1允许
        IT1=0;  //电平触发中断
        EA=1;   //总中断允许
        while(1)
        {
          if(start==1)
          {
                  P1=0xfe;       //工序1,完成后进入工序2
                  Delay(500);
                  P1=0xfd;       //工序2,完成后进入工序3
                  Delay(500);
                  P1=0xfb;        
                  Delay(500);
                  P1=0xf7;        
                  Delay(500);
                  P1=0xef;        
                  Delay(500);
                  P1=0xdf;        
                  Delay(500);
                  P1=0x8f;        
                  Delay(500);   //7道工序完成,重新开始循环
          }
          else
                  P1=0xff;
        }
}
void int1_isp() interrupt 2    //外部中断1中断服务函数
{
        if(start==1)
    buzz=0;             //报警
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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