标题: 为什么无法进入中断? [打印本页]

作者: /LU/    时间: 2016-7-22 12:17
标题: 为什么无法进入中断?
        #include<reg52.h>
                                       
                                       
                                        #define uint    unsigned int
                                        #define uchar   unsigned char
                                        sbit S1=P3^0;
                                        sbit S2=P3^1;
                                        sbit s3=P3^2;
                                        void delay(uint z);
                                        long int table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};                
                                        long int a=0;
                               
                                        void main()
                                        {
                                    
                                        while(1)
                                        {
                                           EA=0;
                                        EX0=1;
                                        EX1=1;
                                        IT0=1;//开中断

                                         
                                         P1=table[a];
                                         delay(1000);
                                         P1=0xff;
                                         delay(1000);                                           //闪烁

                                       
                                        if(S1==0)
                                        {
                                        delay(5);
                                        if(S1==0)
                                        {
                                        a++ ;
                                        }
                                        }

                                    if(S2==0)
                                        {
                                        delay(5);
                                        if(S2==0)
                                        {
                                         a--;
                                        }
                                        }                  //检测S1.S2是否按下
                                       
                                        if(a<0)
                                       
                                        a=7;
                                        else
                                        if(a>7)
                                        a=0;
                               
                    }
                                        }

                                           void ky3() interrupt 0
                                        {
                               
                                        P1=1;
                                       
                                        }
                                       
                                        void delay(uint z)
                                        {
                                        uint x,y;
                                        for(x=z;x>0;x--)
                                          for(y=110;y>0;y--);
                                        }        //延迟


作者: 无量寿经    时间: 2016-7-22 12:36
本帖最后由 无量寿经 于 2016-7-22 12:38 编辑

EA=0;已将总开关关闭,自然不能产生中断。
这些是很简单基础的知识,建议阅读《51单片机轻松入门-基于STC15W4K系列》,不但基础知识讲解透彻,还有很多非常实用的高级技巧,配套视频地址:

http://pan.baidu.com/share/home?uk=4077802723&view=share#category/type=0
http://pan.baidu.com/share/home?uk=4077802723&view=share#category/type=0


作者: 谢幕芳华    时间: 2016-7-22 17:01
52单片机外部中断0,不是P3.2口吗,而却触发方式的设定
作者: /LU/    时间: 2016-7-22 20:48
谢幕芳华 发表于 2016-7-22 17:01
52单片机外部中断0,不是P3.2口吗,而却触发方式的设定

是P2^3啊,我设成的是跳变沿触发方式




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1