找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5121|回复: 2
打印 上一主题 下一主题
收起左侧

mega32单片机最简单的中断程序——外部中断

[复制链接]
跳转到指定楼层
楼主
ID:68618 发表于 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脚内部上拉电阻有效
  
  MCUCR |= (1 << ISC01) | (1 << ISC00);   //INT0下降沿触发
  
  GICR |= (1 << INT0);        //使能INT0
}
******************************************************************

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:106866 发表于 2016-3-1 16:09 | 只看该作者
你好,请问用keil软件写mega32的程序时,创建新的project选哪一个?
回复

使用道具 举报

板凳
ID:108076 发表于 2016-3-10 11:20 | 只看该作者
谢谢楼主分享刚开始学习AVR单片机中断这是一个很好的参考程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表