找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5645|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

STC15F104W單片機(jī)外部中斷怎么不工作呢?程序如下,求大神幫我看看

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 cfancfan 于 2018-6-30 09:49 編輯

#include <STC15F2K60S2.H>
#define uchar unsigned char

sbit Inductorium = P3^4;         //土壤濕度感應(yīng)器
sbit WaterPump = P3^0;                 //接水泵控制繼電器
sbit LED = P3^5;                        //水泵工作指示燈
uchar temp = 0x00;
uchar cnt = 0;
void main()
{
        WaterPump = 1;
        Inductorium = 1;
        LED = 1;
        TMOD = 0x01;
        TH0 = (65536-10000)/255;
        TL0 = (65536-10000)%255;        //設(shè)定內(nèi)部晶振為12MHz剛好0.01秒

        EX0 = 1;                                        //打開外部中斷0
        ET0 = 1;                                        //打開定時(shí)器中斷0

        IT0 = 0;                                        //外部中斷0采用低電平觸發(fā)
        TR0 = 1;                                        //定時(shí)器開始計(jì)時(shí)
        EA = 1;                                                //中斷總開關(guān)
        while(1)
        {
                if(temp == 0x00)
                {
                        LED = 1;
                        WaterPump = 1;
                }
                else if(temp == 0xFF)
                {
                        LED = 0;
                        WaterPump = 0;
                }
                else
                {
                }
        }
}

void intautorun() interrupt 1 //定時(shí)器中斷函數(shù)
{
        TH0 = (65536-10000)/255;
        TL0 = (65536-10000)%255;
        cnt ++;
        if(cnt >= 5)
        {
                cnt = 0;
                temp = (temp << 1)|Inductorium;
        }
}
void interrupt_INT0() interrupt 0 //外部中斷函數(shù)
{
        LED = 0;
        WaterPump = 0;
}
外部中斷采用2引腳按鍵連接GND,也在P3^2引腳上加過(guò)上拉電阻試過(guò),還是沒用。
在按下外部中斷上的按鍵時(shí)LED燈閃了一下,繼電器沒反應(yīng),放開按鍵時(shí)也LED燈也閃了一下。但是不管IT0 = 1還是 IT0 = 0 都一樣的情況



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:302494 發(fā)表于 2018-6-29 22:14 | 只看該作者
在按下外部中斷上的按鍵時(shí)LED燈閃了一下,繼電器沒反應(yīng),放開按鍵時(shí)也LED燈也閃了一下。但是不管IT0 = 1還是 IT0 = 0 都一樣的情況
回復(fù)

使用道具 舉報(bào)

板凳
ID:302494 發(fā)表于 2018-6-30 16:42 | 只看該作者
問(wèn)題自己找到了,但是沒有解決辦法了吧,15F104W這芯片不支持低電平觸發(fā)中斷,只能邊緣觸發(fā)。而以前我用的89C52RC是支持低電平觸發(fā)中斷的。我在資料里面已經(jīng)找到答案了。該如何解決這問(wèn)題?

89C52RC.png (10.17 KB, 下載次數(shù): 56)

89C52RC支持電平觸發(fā)

89C52RC支持電平觸發(fā)

15F104W.png (86.2 KB, 下載次數(shù): 64)

15F104W不支持電平觸發(fā)

15F104W不支持電平觸發(fā)
回復(fù)

使用道具 舉報(bào)

地板
ID:362379 發(fā)表于 2018-6-30 17:57 | 只看該作者
用邊沿觸發(fā)咯
回復(fù)

使用道具 舉報(bào)

5#
ID:56665 發(fā)表于 2019-5-31 14:11 | 只看該作者
手冊(cè)上說(shuō)IT0被置1,下降沿中斷,IT0=1; 對(duì)應(yīng)開關(guān)接的情況,開關(guān)斷開是外部中斷腳高電平,開關(guān)接通才是低電平,從高到低組成下降沿。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表