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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1832|回復: 5
收起左側

單片機程序出現問題 中斷不行,加載不了主程序里

[復制鏈接]
ID:278457 發表于 2024-1-23 08:00 | 顯示全部樓層 |閱讀模式
中斷不行,加載不了主程序里
51hei4.png
51hei3.png
51hei2.png
51hei1.png
回復

使用道具 舉報

ID:69038 發表于 2024-1-23 09:42 | 顯示全部樓層
中斷不用聲明;
中斷不應該放在main中,更不應該放在while(1)里。
回復

使用道具 舉報

ID:226055 發表于 2024-1-23 09:43 | 顯示全部樓層
    定時器初始化里面開啟中斷即可,程序主循環里面不需要調用中斷服務函數。換句話說,需要調用,那么中斷還有什么意義?
回復

使用道具 舉報

ID:1064915 發表于 2024-1-23 09:45 | 顯示全部樓層
中斷,當啟動位打開,CNT計數溢出的時候,會觸發溢出標志位置位,進而送入中斷系統(比如日常生活中,我們在做一件事,突然燒水壺開了,我們即要先暫時放棄做目前的事,轉而去處理燒開水這個中斷事件,當處理完成過后,又返回來繼續處理之前的事)
而這里的舉例:處理燒開水即中斷程序;之前所做的事即main函數里面的主程序#include<reg52.h>
sbit LED=P1^0;
sbit buzzer=P2^0;

void delay(void);
void main(void)
{       
        IT0=1;//設置外部中斷觸發方式為下降沿觸發
        EX0=1;//對應的中斷允許位打開
        EA=1;//總中斷打開
        PX0=0;//IE0低優先級
        buzzer=0;//開啟蜂鳴
        delay();
        buzzer=1;//關閉蜂鳴
        while(1)
        {
                LED=0;//點亮LED
                delay();
                LED=1;//熄滅LED
                delay();
    }       
}

//中斷服務程序
void INT0_ISR(void) interrupt 0
{
        //IE0=0;對應的中斷標志位是硬件自動清零,所以無需再軟件清零
        buzzer=0;//開啟蜂鳴
        delay();
        buzzer=1;//關閉蜂鳴
}

void delay(void)
{
        unsigned char i,j;
        for(i=0;i<200;i++)
        {
                for(j=0;j<200;j++){;}
        }
}


回復

使用道具 舉報

ID:883242 發表于 2024-1-23 13:02 | 顯示全部樓層
樓上說的對,就是沒有理解中斷在硬件上面的意義,才會寫出這么不符合邏輯的軟件。
回復

使用道具 舉報

ID:278457 發表于 2024-1-23 23:43 | 顯示全部樓層
謝謝各位
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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