打印
[51单片机]

请问这个现象是怎么回事?

[复制链接]
594|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
loveteda|  楼主 | 2016-5-17 23:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
extern void display(unsigned char shi,unsigned char ge);
unsigned char num;
unsigned char count_num;
void init()
{
        TMOD=0x01;
        TH0=0x4c;
        TL0=0x00;//50msT0Òç³ö,½øÈëÖжϳÌÐò
        EA=1;
        ET0=1;
        EX1=1;
        EX0=1;
        TR0=1;
}
void main()
{
        init();
        while(1)
        {
                if(num==100)
                {
                        num=0;
                }
                if(num%5==0&&num!=0)//¼ÆÊý¼Æµ½5µÄ±¶ÊýµÄʱºò½øÈëµôµçģʽ¡£
                {
                        ET0=0;
                        PCON=0x02;
                }
                display(num/10,num%10);
        }
}
void T0_inter() interrupt 1
{
        TH0=0x40;
        TL0=0x00;
        ++count_num;
        if(count_num==20)
        {
                count_num=0;
                ++num;
        }
}
void INT0_inter() interrupt 0
{
        PCON=0;
        ET0=1;
}
void INT1_inter() interrupt 2
{
        PCON=0;
        ET0=1;
}

程序的目的就是1s钟num的值+1,2个数码管显示num的数值。然后num是5的倍数的时候单片机进入掉电模式。当有外部中断的时候唤醒单片机,显示的数值继续加1。实际运行的时候,数码管显示4的时候休眠,只有一个数码管显示4.我用导线一端接地,另外一端去触碰INT0或者INT1,用导线触碰INT1的时候没问题正常运行。用导线触碰INT0的时候,数码管会显示5,但是之后数值不再改变了。这个是怎么回事?是硬件问题吗还是别的什么?

相关帖子

沙发
-Hans-| | 2016-5-19 15:45 | 只看该作者
外部中断1启动    进入中断程序你把 ET0=0 而没把ET1=1

使用特权

评论回复
板凳
loveteda|  楼主 | 2016-5-20 16:10 | 只看该作者
-Hans- 发表于 2016-5-19 15:45
外部中断1启动    进入中断程序你把 ET0=0 而没把ET1=1


啊??啥意思?不懂。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

14

帖子

0

粉丝