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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

AVR單片機(jī)外部中斷觸發(fā)的流水燈程序

作者:huqin   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年02月24日   【字體:

/*   program name : 外部中斷程序;
                              這費(fèi)了我好幾個(gè)小時(shí)的心血!成功的喜悅難以用言語表達(dá)! 
              概述:
        8位流水非精確定時(shí),一秒循環(huán)燈閃爍,等待外部中斷一下降沿中斷觸發(fā)信號(hào),
    外部中斷一旦觸發(fā),等待觸發(fā)按鍵彈起(此時(shí)流水燈暫停狀態(tài)),中斷按鍵一旦彈
起,繼續(xù)運(yùn)行上一級(jí)程序(流水燈繼續(xù)運(yùn)行);
                                
               accomplish time : 2014-2-7 22:47:15;
*/


#include <avr/io.h>
#include <avr/interrupt.h>  //中斷必備的頭文件;

typedef unsigned char uint8;
typedef unsigned int uint16;


void init_io()     //所有io口初始化函數(shù);
{
    DDRA=0XFF;
PORTA=0X00;   //PA口輸出0;

DDRB=0XFF;
PORTB=0X00;   //PB口輸出0;

DDRC=0XFF;
PORTC=0X00;   //PC口輸出0;

DDRD=~(1<<3);    //INT1引腳設(shè)為輸入狀態(tài);
PORTD=0XFF;      //INT1引腳內(nèi)部有上拉,其他引腳輸出1;

 

}

void delay()
{
   uint16 u=0 ;
   uint8 s=0;

  for(s=0;s<200;s++)
   {
     for(u=0;u<50000;u++);   //5毫秒左右;
 
   }

}


void buzz()
{
   uint16 s=0;
   uint8 i=0;

   PORTC|=0X80;
   for(i=0;i<10;i++)
   {
   for(s=0;s<50000;s++);
    }
   PORTC&=~0X80;
}


int main(void)
{
     init_io();  //初始化io口;


             //* 1. 先設(shè)置好由那個(gè)引腳來觸發(fā)外部中斷, 和觸發(fā)方式;
 
                  //  MCUCR 是中斷觸發(fā)模式控制寄存器;
     MCUCR|=1<<3;   //ISC11 被置一,其他位全部是零,代表 INT1 (外部中斷1)下降沿產(chǎn)生異步中斷;
                    //一旦 INT1 被拉低,就會(huì)進(jìn)入中斷子程序;
            //*  2. 開啟中斷使能位;
 
     GICR |=0X80;  //  GICR是中斷使能寄存器,最高位被置一,表示外部INT1中斷使能
                 //  (在MCUCR寄存器中,INT1被設(shè)置為下降沿異步中斷觸發(fā)方式);

     sei();//全局中斷使能函數(shù).沒有此函數(shù),中斷將無法執(zhí)行.(我不知道為什么!或許是甲魚的屁股--規(guī)定!)
   

    while(1)
 {
    PORTB|=1<<2;  //使能流水燈,此時(shí)PA口為全零(流水燈全亮);

    delay();  //非精確延時(shí)1秒左右;

         PORTB&=~(1<<2);  //關(guān)閉流水燈;

delay();  //非精確延時(shí)1秒左右;

 }


}
//==================中斷服務(wù)子程序=============================

SIGNAL(SIG_INTERRUPT1) //外部中斷INT1 中斷服務(wù)子程序函數(shù)(中斷一旦被觸發(fā),cpu將會(huì)進(jìn)入此函數(shù));
{
     buzz();
    while((PIND&(1<<3))==0);

}

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 男女下面一进一出网站 | 日韩视频一级 | 在线成人 | 国产精选一区 | 一区二区三区四区国产精品 | 色综合久久天天综合网 | 毛片一级片 | 国产精品美女久久久久aⅴ国产馆 | 99r在线 | 欧美一区二区三区在线 | 久久五月婷 | 久久久久久女 | 亚洲欧美一区二区三区在线 | 成人午夜网站 | 久久久久国产一区二区三区 | 九九爱这里只有精品 | 成年人精品视频在线观看 | 伊人久久免费视频 | 日韩精品一区二区三区久久 | 国产99久久精品 | 精品一区二区三区免费毛片 | 亚洲欧美一区二区三区在线 | 国产精品久久久爽爽爽麻豆色哟哟 | 久久久中文| 日日夜夜免费精品视频 | jizz在线免费观看 | 国产成人精品久久二区二区91 | 中文字幕av免费 | 久久综合一区 | 一区二区三区在线免费观看 | 99久久精品免费视频 | 黄在线 | 亚洲综合首页 | 超碰人人爱| 国产一区二区在线91 | 中文字幕久久精品 | 亚洲一区二区三区四区五区午夜 | 一区二区中文 | 色爱综合| 五月婷婷在线播放 | 在线成人 |