欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3739|回復: 7
收起左側

單片機為什么P3.2口接地后不執行中斷呢?大神幫個忙

[復制鏈接]
ID:469255 發表于 2019-1-16 16:43 | 顯示全部樓層 |閱讀模式
1黑幣
郭天祥52單片機
設置 P1口第一個二極管燈的中斷。為什么P3.2口接地后不執行中斷呢??各位大神能幫下忙嗎?

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit d1=P1^0;
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void main()
{
EA=1;//?????ж?
EX0=1;//?????ж?0
//IT0=1;
TCON=0x01;
wela=1;//11101010
P0=0xea;
wela=0;
while(1)
{
  for(num=0;num<16;num++)
   {
    d1=1;
    dula=1;
    P0=table[num];
    dula=0;
    delay(1000);
   }
}
}
void delay(uint z)
{file:///C:/Users/付/Documents/Tencent%20Files/1256409389/Image/C2C/AF83C490B1F990BA7A0D21EFD2583A7E.png

uint x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void exter0() interrupt 0
{
d1=0;
}


回復

使用道具 舉報

ID:469283 發表于 2019-1-16 17:13 | 顯示全部樓層
中斷打開沒有,端口輸入輸出設置沒有
回復

使用道具 舉報

ID:469255 發表于 2019-1-16 18:34 | 顯示全部樓層
zuolin1234 發表于 2019-1-16 17:13
中斷打開沒有,端口輸入輸出設置沒有

輸入輸出設置?
回復

使用道具 舉報

ID:104395 發表于 2019-1-16 22:39 | 顯示全部樓層
中斷觸發方式最好用IT0單個寄存器設置,不要用TCON整體賦值。比如IT0=1,設置邊沿觸發。
回復

使用道具 舉報

ID:404797 發表于 2019-1-16 23:02 | 顯示全部樓層
    你這個程序p32接地后其實中斷觸發啦,只是你的程序看不出效果,是你的中斷程序沒編好,看不出效果。將中斷程序改為如下就可看出p32接地后產生的中斷效果。
void exter0() interrupt 0
{//d1=0;
P0=table[0];delay(1000);
}

回復

使用道具 舉報

ID:213173 發表于 2019-1-17 08:47 | 顯示全部樓層
程序沒有問題,改這樣可以觀察清楚。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit d1=P1^0;
uchar num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
void main()
{
        EA=1;//?????ж?
        EX0=1;//?????ж?0
        //IT0=1;
        TCON=0x01;
        wela=1;//11101010
        P0=0xea;
        wela=0;
        while(1)
        {
                for(num=0;num<16;num++)
                {
//                        d1=1;
                        dula=1;
                        P0=table[num];
                        dula=0;
                        delay(1000);
                }
        }
}
void delay(uint z)
{       
        uint x,y;
        for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}
void exter0() interrupt 0
{
        d1=~d1;
}
回復

使用道具 舉報

ID:469255 發表于 2019-1-17 10:01 | 顯示全部樓層
要接GND
回復

使用道具 舉報

ID:404797 發表于 2019-1-17 12:41 | 顯示全部樓層
      仔細看了你的程序,發現其實沒問題。我按你的意圖用proteus進行仿真,再導入你的程序,發現運行完全符合你的設想,p32接地后二極管滅。為了觀看效果更好,我將中斷程序改為:void exter0() interrupt 0{d1=0;
P0=table[0];
delay(1000);
      這樣當按下按鈕時,數碼管停止計數并顯示0一秒,二極管熄滅一秒。仿真截圖如下:
正常運行時:
ask1a.JPG

p32接地即按鍵按下時:
ask1b.JPG



回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表