AVR外部中断实验程序

来源:本站
导读:目前正在解读《AVR外部中断实验程序》的相关信息,《AVR外部中断实验程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《AVR外部中断实验程序》的详细说明。
简介:用按键控制 1位led数码管显示,只是简单的测试对外部中断的响应。
程序没加按键消抖处理,果然抖得厉害。

/*****************************************************

This program was produced by the

CodeWizardAVR V2.05.5a Evaluation

Date : 2011/12/13

Author : Freeware, for evaluation and

non-commercial use only

Chip type : ATmega16

Program type : Application

AVR Core Clock frequency: 4.000000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

*****************************************************/

#include <mega16.h>

flash unsigned char led_7[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

unsigned char counter;

// External Interrupt 0 service routine

interrupt [EXT_INT0] void ext_int0_isr(void)

{

if(++counter >=16) counter = 0;

}

// External Interrupt 1 service routine

interrupt [EXT_INT1] void ext_int1_isr(void)

{

if (counter) -- counter;

else counter = 15 ;

}

void main(void)

{

PORTA=0xFF;

DDRA=0xFF;

// External Interrupt(s) initialization

// INT0: On

// INT0 Mode: Falling Edge

// INT1: On

// INT1 Mode: Falling Edge

// INT2: Off

GICR|=0xC0;

MCUCR=0x0A;

MCUCSR=0x00;

GIFR=0xC0;

counter = 0;

// Global enable interrupts

#asm("sei")

while (1)

{

PORTA = led_7[counter];

}

}

提醒:《AVR外部中断实验程序》最后刷新时间 2024-03-14 01:08:29,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《AVR外部中断实验程序》该内容的真实性请自行鉴别。