程序太简单啦,就不说啦,自己看吧
ATMEGA16用ICCAVR编译器
1、外部中断
AVR之最简单外部中断、定时器0、定时器1程序_定时器#include<iom16v.h>
AVR之最简单外部中断、定时器0、定时器1程序_定时器#include <AVRdef.h>
AVR之最简单外部中断、定时器0、定时器1程序_定时器unsigned char temp=0x80;
AVR之最简单外部中断、定时器0、定时器1程序_定时器void main()
AVR之最简单外部中断、定时器0、定时器1程序_定时器{    
AVR之最简单外部中断、定时器0、定时器1程序_定时器    DDRA=0xff;
AVR之最简单外部中断、定时器0、定时器1程序_定时器    GICR|=0x40;//使能外部INT0
AVR之最简单外部中断、定时器0、定时器1程序_定时器    MCUCR|=0x01;//INT0下降沿触发
AVR之最简单外部中断、定时器0、定时器1程序_定时器    SEI();//总中断
AVR之最简单外部中断、定时器0、定时器1程序_定时器    while(1);
AVR之最简单外部中断、定时器0、定时器1程序_定时器}
AVR之最简单外部中断、定时器0、定时器1程序_定时器#pragma interrupt_handler int0_isr:iv_INT0
AVR之最简单外部中断、定时器0、定时器1程序_定时器void int0_isr(void)
AVR之最简单外部中断、定时器0、定时器1程序_定时器{
AVR之最简单外部中断、定时器0、定时器1程序_定时器    PORTA=temp;
AVR之最简单外部中断、定时器0、定时器1程序_定时器    temp=temp>>7|temp<<1;
AVR之最简单外部中断、定时器0、定时器1程序_定时器}
AVR之最简单外部中断、定时器0、定时器1程序_定时器
2、定时器0--普通模式
AVR之最简单外部中断、定时器0、定时器1程序_定时器#include<iom16v.h>
AVR之最简单外部中断、定时器0、定时器1程序_定时器#include <AVRdef.h>
AVR之最简单外部中断、定时器0、定时器1程序_定时器unsigned char count;
AVR之最简单外部中断、定时器0、定时器1程序_定时器void main()
AVR之最简单外部中断、定时器0、定时器1程序_定时器{
AVR之最简单外部中断、定时器0、定时器1程序_定时器    //TCCR0=0;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  TCNT0=12;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  //OCR0=244;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  TCCR0=0x05;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  TIMSK=0x01;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  SEI();
AVR之最简单外部中断、定时器0、定时器1程序_定时器  DDRA=0xff;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  PORTA=0;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  while(1);
AVR之最简单外部中断、定时器0、定时器1程序_定时器}
AVR之最简单外部中断、定时器0、定时器1程序_定时器#pragma interrupt_handler Timer0:iv_TIMER0_OVF
AVR之最简单外部中断、定时器0、定时器1程序_定时器void Timer0()
AVR之最简单外部中断、定时器0、定时器1程序_定时器{
AVR之最简单外部中断、定时器0、定时器1程序_定时器     TCNT0=12;
AVR之最简单外部中断、定时器0、定时器1程序_定时器     count++;
AVR之最简单外部中断、定时器0、定时器1程序_定时器    if(count==2)
AVR之最简单外部中断、定时器0、定时器1程序_定时器    {
AVR之最简单外部中断、定时器0、定时器1程序_定时器      PORTA=~PORTA;
AVR之最简单外部中断、定时器0、定时器1程序_定时器    count=0;
AVR之最简单外部中断、定时器0、定时器1程序_定时器    }
AVR之最简单外部中断、定时器0、定时器1程序_定时器}
3、定时器0--匹配模式
AVR之最简单外部中断、定时器0、定时器1程序_定时器#include<iom16v.h>
AVR之最简单外部中断、定时器0、定时器1程序_定时器#include <AVRdef.h>
AVR之最简单外部中断、定时器0、定时器1程序_定时器void main()
AVR之最简单外部中断、定时器0、定时器1程序_定时器{
AVR之最简单外部中断、定时器0、定时器1程序_定时器    //TCCR0=0;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  TCNT0=12;//设置计数初值,计数244后清零申请中断
AVR之最简单外部中断、定时器0、定时器1程序_定时器  OCR0=244;//从0计数到244,匹配申请中断
AVR之最简单外部中断、定时器0、定时器1程序_定时器  TCCR0=0x0d;//CTC模式,1024预分频
AVR之最简单外部中断、定时器0、定时器1程序_定时器  TIMSK=0x02;//使能输出比较匹配中断
AVR之最简单外部中断、定时器0、定时器1程序_定时器  SEI();
AVR之最简单外部中断、定时器0、定时器1程序_定时器  DDRA=0xff;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  PORTA=0;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  while(1);
AVR之最简单外部中断、定时器0、定时器1程序_定时器}
AVR之最简单外部中断、定时器0、定时器1程序_定时器#pragma interrupt_handler Timer0:iv_TIMER0_COMP
AVR之最简单外部中断、定时器0、定时器1程序_定时器void Timer0()
AVR之最简单外部中断、定时器0、定时器1程序_定时器{
AVR之最简单外部中断、定时器0、定时器1程序_定时器     count++;
AVR之最简单外部中断、定时器0、定时器1程序_定时器    if(count==2)
AVR之最简单外部中断、定时器0、定时器1程序_定时器    {
AVR之最简单外部中断、定时器0、定时器1程序_定时器      PORTA=~PORTA;
AVR之最简单外部中断、定时器0、定时器1程序_定时器    count=0;
AVR之最简单外部中断、定时器0、定时器1程序_定时器    }
AVR之最简单外部中断、定时器0、定时器1程序_定时器}
4、定时器1
AVR之最简单外部中断、定时器0、定时器1程序_定时器#include<iom16v.h>
AVR之最简单外部中断、定时器0、定时器1程序_定时器#include<AVRdef.h>
AVR之最简单外部中断、定时器0、定时器1程序_定时器void main()
AVR之最简单外部中断、定时器0、定时器1程序_定时器{
AVR之最简单外部中断、定时器0、定时器1程序_定时器    TCCR1A=0;//WGM11、10清零
AVR之最简单外部中断、定时器0、定时器1程序_定时器  TCCR1B=0;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  TCNT1H=0x0b;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  TCNT1L=0xdb;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  TCCR1B=2;//WGM13、12清零,为普通模式,时钟选择CS02~00:8预分频
AVR之最简单外部中断、定时器0、定时器1程序_定时器    TIMSK=0x04;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  SEI();
AVR之最简单外部中断、定时器0、定时器1程序_定时器  DDRA=0xff;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  PORTA=0;
AVR之最简单外部中断、定时器0、定时器1程序_定时器  while(1);
AVR之最简单外部中断、定时器0、定时器1程序_定时器}
AVR之最简单外部中断、定时器0、定时器1程序_定时器#pragma interrupt_handler timer1:iv_TIMER1_OVF
AVR之最简单外部中断、定时器0、定时器1程序_定时器void timer1()
AVR之最简单外部中断、定时器0、定时器1程序_定时器{
AVR之最简单外部中断、定时器0、定时器1程序_定时器     TCNT1H=0x0b;
AVR之最简单外部中断、定时器0、定时器1程序_定时器    TCNT1L=0xdb;
AVR之最简单外部中断、定时器0、定时器1程序_定时器    PORTA=~PORTA;
AVR之最简单外部中断、定时器0、定时器1程序_定时器}