找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2757|回复: 17
收起左侧

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

[复制链接]
ID:70587 发表于 2014-12-22 10:30 | 显示全部楼层 |阅读模式
#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;             //报警
回复

使用道具 举报

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;虽然编译没错误了    但还是不得行
回复

使用道具 举报

ID:67992 发表于 2014-12-22 12:35 | 显示全部楼层
怎么个不行法?别象老太婆修电视,问怎么了,答就是不好使。
回复

使用道具 举报

ID:70587 发表于 2014-12-22 12:45 | 显示全部楼层
dgahz 发表于 2014-12-22 12:35
怎么个不行法?别象老太婆修电视,问怎么了,答就是不好使。

回复

使用道具 举报

ID:70587 发表于 2014-12-22 12:47 | 显示全部楼层
dgahz 发表于 2014-12-22 12:35
怎么个不行法?别象老太婆修电视,问怎么了,答就是不好使。

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

使用道具 举报

ID:67992 发表于 2014-12-22 14:27 | 显示全部楼层
你先控制一个灯试试,行了再加灯。
回复

使用道具 举报

ID:67992 发表于 2014-12-22 14:30 | 显示全部楼层
你灯接在哪个引脚啊?故障信号接在哪?
回复

使用道具 举报

ID:70587 发表于 2014-12-22 15:38 | 显示全部楼层
dgahz 发表于 2014-12-22 14:30
你灯接在哪个引脚啊?故障信号接在哪?

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

使用道具 举报

ID:70587 发表于 2014-12-22 16:04 | 显示全部楼层
dgahz 发表于 2014-12-22 14:30
你灯接在哪个引脚啊?故障信号接在哪?

回复

使用道具 举报

ID:70587 发表于 2014-12-22 16:06 | 显示全部楼层
dgahz 发表于 2014-12-22 14:30
你灯接在哪个引脚啊?故障信号接在哪?

psb.png
回复

使用道具 举报

ID:70587 发表于 2014-12-22 16:07 | 显示全部楼层
回复

使用道具 举报

ID:70587 发表于 2014-12-22 16:07 | 显示全部楼层
回复

使用道具 举报

ID:70587 发表于 2014-12-22 16:33 | 显示全部楼层
dgahz 发表于 2014-12-22 14:30
你灯接在哪个引脚啊?故障信号接在哪?

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

使用道具 举报

ID:67992 发表于 2014-12-22 16:58 | 显示全部楼层
回复

使用道具 举报

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 单片机教程网

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