久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3167|回復: 8
打印 上一主題 下一主題
收起左側

STC8G單片機自動進入外部中斷是怎么回事?附程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:909797 發表于 2021-4-21 18:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STC8芯片會自動進入外部中斷是怎么回事?P3口外面沒接任何東西,還是能自動進入到中斷中。  下面是我的代碼。哪位大神能幫我解答下呢
void INT0_init()
{
    EA = 0;
    IT1 = 1;
    EX1 = 1;
    EA = 1;
}

void main()
{
    INT0_init();
    P1M0 |=0X1C;
    P1M1 &=0XE3;
//    PCON = 0X02;
    _nop_();
    _nop_();
   
    while(1)
    {
        RED = 0;
        GREEN = BLUE = 1;
//        PCON = 0X02;
        _nop_();
        _nop_();         
    }
}
void Int0_inter() interrupt 2
{
      delay(100);
      RED = GREEN = BLUE = 0;
      delay(3000);
}


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

使用道具 舉報

沙發
ID:87000 發表于 2023-5-18 11:44 | 只看該作者
解決了沒有了?我也遇到這個問題
回復

使用道具 舉報

板凳
ID:213173 發表于 2023-5-18 14:25 | 只看該作者
西點鐘靈毓秀 發表于 2023-5-18 11:44
解決了沒有了?我也遇到這個問題

樓主main函數初始化不當。STC8系列速度太快,端口還沒有穩定就開中斷導致開機外部中斷誤觸發。
啟動順序調整一下,注意要清0中斷標志。
void main()
{
        P0M0 = 0x00;
        P0M1 = 0x00;
        P1M0 = 0x00;
        P1M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
        P3M0 = 0x00;
        P3M1 = 0x00;
        P4M0 = 0x00;
        P4M1 = 0x00;
        P5M0 = 0x00;
        P5M1 = 0x00;
        P6M0 = 0x00;
        P6M1 = 0x00;
        P7M0 = 0x00;
        P7M1 = 0x00;
        Delay_ms(100);//長延時100ms               
        IT0 = 1;
        EX0 = 1;
        IE0 = 0;//INT0中斷請求標志清0
        EA = 1;
        while(1)
        {
回復

使用道具 舉報

地板
ID:1034262 發表于 2023-5-18 17:36 | 只看該作者
外中斷是硬件在每個時鐘檢測邊沿,需要有邊沿出現才會設置中斷標志,沒有邊沿出現是不會觸發中斷的。
樓主所謂自動進入中斷,則肯定檢測到了邊沿,以下情況要注意:
1、上電時,有上升沿動作,所以會有中斷標志。允許中斷前,先清除標志,至少3個時鐘周期后再允許外中斷。
2、IO設置為高阻,并且懸空,則IO浮動,就會檢測到邊沿,觸發中斷。
回復

使用道具 舉報

5#
ID:87000 發表于 2023-5-23 09:29 | 只看該作者
coody_sz 發表于 2023-5-18 17:36
外中斷是硬件在每個時鐘檢測邊沿,需要有邊沿出現才會設置中斷標志,沒有邊沿出現是不會觸發中斷的。
樓主 ...

這算不算STC的一個小BUG了?畢竟,上電延時后,再開啟外部中斷也會產生這個現象。
回復

使用道具 舉報

6#
ID:879348 發表于 2023-5-23 10:34 | 只看該作者
初始化以后要清除中斷標志位,基本所有單片機都有這個要求
回復

使用道具 舉報

7#
ID:526543 發表于 2023-5-23 10:38 | 只看該作者
STC8芯片自動進入外部中斷的原因可能是因為存在干擾信號或者噪聲,導致中斷引腳觸發。即使P3口沒有連接任何外部設備,但是由于芯片內部的電路特性,可能會引發一些干擾信號。

你的代碼中使用了INT0外部中斷,但在初始化函數INT0_init()中,只進行了相關的中斷配置,沒有對中斷觸發方式進行設置。根據你的代碼,INT0的中斷觸發方式(IT0)并沒有設置,默認為電平觸發方式。可能會因為外部信號的波動導致中斷觸發。

為了解決這個問題,你可以在INT0_init()函數中添加設置中斷觸發方式的代碼。例如,如果你希望使用下降沿觸發方式,可以修改代碼如下:void INT0_init()
{
    EA = 0;
    IT0 = 1;  // 設置INT0為下降沿觸發方式
    EX0 = 1;  // 允許INT0中斷
    EA = 1;
}
這樣設置后,只有當INT0引腳檢測到下降沿時才會觸發中斷。
回復

使用道具 舉報

8#
ID:1034262 發表于 2023-5-23 10:50 | 只看該作者
西點鐘靈毓秀 發表于 2023-5-23 09:29
這算不算STC的一個小BUG了?畢竟,上電延時后,再開啟外部中斷也會產生這個現象。

不是BUG。不管什么時候開啟哪個中斷,都要先清除中斷標志。
回復

使用道具 舉報

9#
ID:1095571 發表于 2023-10-10 13:36 來自手機 | 只看該作者
今天測試了下,開啟外部中斷0,使用準雙向口模式下,外部中斷0管腳上接了一個電解質電容,正極接管腳,負極接地,可以解決抗干擾性差的問題呦,你試試呢,我測試了,必須拉低管腳,才能觸發中斷,不過還有個問題,電容大小的選擇,影響外部中斷的采集頻率。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青久久久 | 精品亚洲一区二区 | 国产国产精品久久久久 | 超碰97人人人人人蜜桃 | 爱爱免费视频网站 | xxx视频| 日韩精品二区 | 一级一片在线观看 | 欧日韩在线观看 | 成人影院在线视频 | 国产精品三级久久久久久电影 | 亚洲视频免费在线看 | 一区二区三区四区在线 | 国产精品三级 | 久久a久久| 国产成人精品久久二区二区 | 国产成人综合亚洲欧美94在线 | 欧美日韩淫片 | 午夜天堂精品久久久久 | 日韩精品在线看 | 精品一级 | www.国产精| 国产精品视频导航 | 欧美日韩精品影院 | 中文字幕一区二区三区日韩精品 | 亚洲精品乱码久久久久久蜜桃 | 久久亚洲国产精品 | 亚洲精品1区 | 日韩免费一区二区 | 日本不卡一区二区三区在线观看 | 欧美激情在线播放 | 男女羞羞视频在线 | 欧美亚洲高清 | 亚洲欧美视频一区二区 | 特级生活片 | 狠狠入ady亚洲精品经典电影 | 日本高清在线一区 | 日韩一区二区三区在线观看 | 久久久久国产视频 | 四虎影院久久 | 国产在线看片 |