两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1.卡頓的流水燈

我們用一個(gè)實(shí)驗(yàn)現(xiàn)象來(lái)再一次理解中斷函數(shù)。

在主函數(shù)里我們使八盞燈不停地左右快速流水,此時(shí)若是被外部因素觸發(fā)了中斷函數(shù)的執(zhí)行,我們就在中斷函數(shù)里實(shí)現(xiàn)蜂鳴器響一下,看看此時(shí)主函數(shù)里的流水燈是什么現(xiàn)象。

代碼下載進(jìn)去,我們隨意按K4,觀察流水燈。

#include <reg52.h> 
#include <function.h>//詳見(jiàn)第六章第8講

void main()
{  
    u8 i,dir;
    IT1 = 1;   //下降沿觸發(fā)模式
    EX1 = 1;
    EA  = 1;
  
    LED_Init();//初始化LED硬件模塊 
    KEY_Init();//初始化按鍵功能模塊
    
    while(1)
    {
        if(i<8)dir=0;//向左移
        if(dir==0)P0=~(0x01<<i);
    
        if(i>=8)dir=1;//向右移 
        if(dir==1)P0=~( 0x80>>(i-7) );//當(dāng)i大于等于8之后,(i-7)其實(shí)也還是在1~7之間變化
        delay_ms(50);
    
        i++;
        if(i>=15)i=1;//讓i一直在1~14之間變化
    }
}
 
//請(qǐng)把P3.3和P2.3用杜邦線連接起來(lái)
void EXTI1_IRQHandler() interrupt 2
{
    u16 i;
    u8 x;
    for(i=0;i<2000;i++)
    {
        BEEP=!BEEP;
        for(x=0;x<75;x++);
    } 
}

可以看到流水燈在K4按下的時(shí)候觸發(fā)了中斷函數(shù)的執(zhí)行,蜂鳴器響了一下,響的過(guò)程中流水燈停止了流水,說(shuō)明在主函數(shù)里的CPU使用權(quán)被剝奪給了中斷函數(shù),導(dǎo)致了主函數(shù)的執(zhí)行任務(wù)被暫停,蜂鳴器響完之后,也就是中斷函數(shù)執(zhí)行完了,CPU使用權(quán)給回了主函數(shù),于是又接著執(zhí)行流水燈的任務(wù)了,這些過(guò)程叫做保留現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。


2.中斷的好處

我們?cè)賮?lái)領(lǐng)略一下中斷的優(yōu)勢(shì)。

把下面的代碼下載進(jìn)去,蜂鳴器會(huì)一直響,然后隨意按K4。

#include <reg52.h> 
#include <function.h>//詳見(jiàn)第六章第8講

void main()
{  
    u8 x;
    IT1 = 1;   //下降沿觸發(fā)模式
    EX1 = 1;
    EA  = 1;
  
    LED_Init();//初始化LED硬件模塊 
    KEY_Init();//初始化按鍵功能模塊
    LED2=0;    //點(diǎn)亮LED2
    
    while(1)
    {
        BEEP=!BEEP;
        for(x=0;x<75;x++); 
    }
}
 
//請(qǐng)把P3.3和P2.3用杜邦線連接起來(lái)
void EXTI1_IRQHandler() interrupt 2
{
    static u8 i=1;
    P0=~(0x01<<i);
    i++;
    if(i>=8)i=0;
}

試想,我們沒(méi)學(xué)過(guò)中斷函數(shù),在前面幾章的基礎(chǔ)知識(shí)中只在主函數(shù)里實(shí)現(xiàn)蜂鳴器一直響,然后按鍵還可以切換小燈的跳轉(zhuǎn),這樣的功能我們可以做得到嗎,我想應(yīng)該有點(diǎn)難度。所以在中斷函數(shù)的幫助下有種任務(wù)并列執(zhí)行的優(yōu)勢(shì)。

點(diǎn)贊(0)

C語(yǔ)言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競(jìng)賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:

一點(diǎn)編程也不會(huì)寫(xiě)的:零基礎(chǔ)C語(yǔ)言學(xué)練課程

解決困擾你多年的C語(yǔ)言疑難雜癥特性的C語(yǔ)言進(jìn)階課程

從零到寫(xiě)出一個(gè)爬蟲(chóng)的Python編程課程

只會(huì)語(yǔ)法寫(xiě)不出代碼?手把手帶你寫(xiě)100個(gè)編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競(jìng)賽課入門(mén)課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運(yùn)行等待時(shí)間)