找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5812|回復: 2
打印 上一主題 下一主題
收起左側(cè)

mega32單片機最簡單的中斷程序——外部中斷

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:68618 發(fā)表于 2014-11-11 22:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
學單片機的第二條檻:中斷,每次我都選最簡單的中斷——外部中斷。

*****************************************************************
//CPU:mega32
//編譯器:iar

#include <ioavr.h>
void eint0_init(void);
int main(void)
{
  
  DDRD |= (1 << 7);     //PD7置為輸出
  
  eint0_init();         //外部中斷0初始化
  
  asm("sei");           //開中斷
   
  while(1);
}

#pragma vector = INT0_vect    //預編譯指令,聲明中斷向量
__interrupt void eint0(void) //外部中斷0中斷例程
{
  PORTD ^= 1<<7;            //PD7取反
}
        
        
void eint0_init(void)
{
  DDRD &= ~(1 << 2);          //INT0腳輸入
  
  PORTD |= (1 << 2);          //INT0腳內(nèi)部上拉電阻有效
  
  MCUCR |= (1 << ISC01) | (1 << ISC00);   //INT0下降沿觸發(fā)
  
  GICR |= (1 << INT0);        //使能INT0
}
******************************************************************

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

使用道具 舉報

沙發(fā)
ID:106866 發(fā)表于 2016-3-1 16:09 | 只看該作者
你好,請問用keil軟件寫mega32的程序時,創(chuàng)建新的project選哪一個?
回復

使用道具 舉報

板凳
ID:108076 發(fā)表于 2016-3-10 11:20 | 只看該作者
謝謝樓主分享剛開始學習AVR單片機中斷這是一個很好的參考程序
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

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