微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 为什么我进入不了中断系统,程序如下,大神进来看下,谢谢了。

为什么我进入不了中断系统,程序如下,大神进来看下,谢谢了。

时间:10-02 整理:3721RD 点击:
#include<reg51.h>
void Delay(unsigned int c);
unsigned int k=0;
void main()
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        P1=0x00;
        P0=0x00;
        if(k==20)
        {
                k=0;
                P0=0x3f;
                Delay(5);
                P0=0x00;
        }
}
void exter0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        k++;
}
void Delay(unsigned int c)
{
        int a,b;
        for(;c>0;c--)
        {
                for(a=123;a>0;a--)
                {
                        for(b=100;b>0;b--);
                }
        }
}

程序看了没有什么问题,是不是硬件上有问题呢?电平对不?

  这样写应该可以,中断不需要加延时,这个程序是延时了1s吧,我这样写有现象。
#include<reg51.h>
void Delay(unsigned int x);
unsigned int k=0;
void main()
{
       
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        P1=0x00;
        P0=0x00;
           while(1)
           {
        if(k==20)
        {
                k=0;
                P1=0x3f;
               // Delay(5);
               // P1=0x00;
        }
                }
}
void exter0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        k++;
}
/*void Delay(unsigned int x)
{
        int a,b,c;
        for(c=x;c>0;c--)
        {
                for(a=123;a>0;a--)
                {
                        for(b=100;b>0;b--);
                }
        }
}          */

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top