找回密码
 立即注册

QQ登录

只需一步,快速开始

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

为什么无法进入中断?

[复制链接]
跳转到指定楼层
楼主
        #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--);
                                        }        //延迟

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:60379 发表于 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

回复

使用道具 举报

板凳
ID:134450 发表于 2016-7-22 17:01 | 只看该作者
52单片机外部中断0,不是P3.2口吗,而却触发方式的设定
回复

使用道具 举报

地板
ID:130508 发表于 2016-7-22 20:48 | 只看该作者
谢幕芳华 发表于 2016-7-22 17:01
52单片机外部中断0,不是P3.2口吗,而却触发方式的设定

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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