您的位置:首页单片机AVR单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

AVR单片机外部中断INT0示例程序

[日期:2008-08-01 ] [来源:东哥单片机学习网 www.picavr.com 作者:佚名] [字体: (投递新闻)

/*AVR单片机外部中断INT0示例程序晶振为1 MHz 
INT0最好接一个4.7K的上拉电阻,按键对地有效  
没有使用延时/通信语句,所以使用内部/外部时钟都可以  
每按动INT0按键一次,PD3的电平就翻转一次  
本例子没有考虑太多的按键防抖动功能*/  

#include <mega48.h>  

interrupt [2] void INT0_isr(void) //INT0的中断向量是2,请参考M48数据手册的48页  
{  
  PORTD.3=~PORTD.3;               //电平取反  
  EIFR|=1;                        //清除INT0中断触发标记,防止按键抖动  
}  

void main(void)  
{   
  PORTD.2=1;  
  DDRD.2=0;                       //设置INT0端口为输入,上拉电阻有效  
  PORTD.3=0;                        
  DDRD.3 =1;                      //设置PD3输出低电平,准备驱动蜂鸣器  
    
  EIMSK|=1;                       //打开INT0中断  
  EICRA|=3;                       //INT0上升沿触发  
  #asm("sei")                     //插入汇编语句,打开全局中断     
    
  while (1)                       //循环,等待中断   
        {  
           #asm("nop")            //空操作的汇编代码,等待中断发生  
        };  
    } 

阅读:
录入:petta

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
赞助商广告