AVR之最简单外部中断、定时器0、定时器1程序

发布者:SereneMeadow7最新更新时间:2021-06-21 来源: eefocus关键字:外部中断  定时器0  定时器1 手机看文章 扫描二维码
随时随地手机看文章

程序太简单啦,就不说啦,自己看吧

ATMEGA16用ICCAVR编译器

1、外部中断

#include

#include

unsigned char temp=0x80;

void main()

{    

    DDRA=0xff;

    GICR|=0x40;//使能外部INT0

    MCUCR|=0x01;//INT0下降沿触发

    SEI();//总中断

    while(1);

}

#pragma interrupt_handler int0_isr:iv_INT0

void int0_isr(void)

{

    PORTA=temp;

    temp=temp>>7|temp<<1;

}


2、定时器0--普通模式

#include

#include

unsigned char count;

void main()

{

    //TCCR0=0;

  TCNT0=12;

  //OCR0=244;

  TCCR0=0x05;

  TIMSK=0x01;

  SEI();

  DDRA=0xff;

  PORTA=0;

  while(1);

}

#pragma interrupt_handler Timer0:iv_TIMER0_OVF

void Timer0()

{

     TCNT0=12;

     count++;

    if(count==2)

    {

      PORTA=~PORTA;

    count=0;

    }

}

3、定时器0--匹配模式

#include

#include

void main()

{

    //TCCR0=0;

  TCNT0=12;//设置计数初值,计数244后清零申请中断

  OCR0=244;//从0计数到244,匹配申请中断

  TCCR0=0x0d;//CTC模式,1024预分频

  TIMSK=0x02;//使能输出比较匹配中断

  SEI();

  DDRA=0xff;

  PORTA=0;

  while(1);

}

#pragma interrupt_handler Timer0:iv_TIMER0_COMP

void Timer0()

{

     count++;

    if(count==2)

    {

      PORTA=~PORTA;

    count=0;

    }

}

4、定时器1

#include

#include

void main()

{

    TCCR1A=0;//WGM11、10清零

  TCCR1B=0;

  TCNT1H=0x0b;

  TCNT1L=0xdb;

  TCCR1B=2;//WGM13、12清零,为普通模式,时钟选择CS02~00:8预分频

    TIMSK=0x04;

  SEI();

  DDRA=0xff;

  PORTA=0;

  while(1);

}

#pragma interrupt_handler timer1:iv_TIMER1_OVF

void timer1()

{

     TCNT1H=0x0b;

    TCNT1L=0xdb;

    PORTA=~PORTA;

}


关键字:外部中断  定时器0  定时器1 引用地址:AVR之最简单外部中断、定时器0、定时器1程序

上一篇:Arduino+Avr libc制作Badusb原理及示例讲解
下一篇:CVAVR编译在proteus7.4中无法正确运行问题

推荐阅读最新更新时间:2024-11-07 01:40

STM32F407 外部中断配置步骤
介绍STM32F407外部中断配置步骤,以按键为例,实现外部中断配置,使用按键触发中断进行LED灯控制。 【1】外部中断相关知识介绍 CM4 内核支持 256 个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256级的可编程中断设置。但 STM32F4 并没有使用 CM4 内核的全部东西,而是只用了它的一部分。 STM32F40xx/STM32F41xx 总共有 92 个中断, STM32F42xx/STM32F43xx 则总共有 96 个中断,以下仅以 STM32F40xx/41xx 为例讲解。 STM32F40xx/STM32F41xx 的 92 个中断里面, 包括 10 个内核中断和 8
[单片机]
STM32F407 <font color='red'>外部中断</font>配置步骤
嵌入式学习笔记9——51单片机之中断外部中断
1. 中断的原理: CPU暂时中断当前的工作(这叫中断响应),转去处理事件B(这叫中断服务)。 2. 89C51的中断系统有5个中断源(按优先级高低排序为:外部中断0、计时器中断0、外部中断1、计时器中断1、串口中断),2个优先级,可实现二级中断嵌套(中断处理过程又有优先级更高的中断发生)。高级单片机中可能有更多的中断源和更多的优先级等。 3. 89C51单片机的中断优先级有三个原则: (1)CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。 (2)正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。 (3)正在进行的低优先级中断服务,能被高优先级中断请求所中断。(为实现后两个原则,系
[单片机]
嵌入式学习笔记9——51单片机之中断<font color='red'>外部中断</font>
6. avr定时器/计数器1 --TC1 --输入捕捉模式 (捕获外部事件模式)
T/C 的输入捕捉单元可用来捕获外部事件,并为其赋予时间标记以说明此时间的发生时刻。外部事件发生的触发信号由引脚ICP1 (PD6)输入,也可通过模拟比较器单元来实现。时间标记可用来计算频率、占空比及信号的其它特征,以及为事件创建日志。当引脚ICP1 上的逻辑电平( 事件) 发生了变化,或模拟比较器输出ACO 电平发生了变化,并且这个电平变化为边沿检测器所证实,输入捕捉即被激发:16 位的TCNT1 数据被拷贝到输入捕捉寄存器ICR1,同时输入捕捉标志位ICF1 置位。如果此时ICIE1 = 1,输入捕捉标志将产生输入捕捉中断。中断执行时ICF1 自动清零,或者也可通过软件在其对应的I/O 位置写入逻辑 1” 清零。读取ICR1
[单片机]
AVR定时器1的相位修正PWM模式设置
简单归纳一下 相位修正PWM 与快速PWM 一样,不同的方波产生模式决定了TOP值是固定的,还是任意的。如在试验中选择11(任意的TOP), OC1A 就要作为牺牲,仅能输出50%占空比的方波,OCR1A 决定了输出频率,而OCR1B 决定了PWM 的占空比。OCR1A可以作为OCR1B 的参考值,相位修正PWM 有低频率而且PWM 精确度高的特性。除此之外,既然OC1A 被牺牲了,那么COM1A1:0 的设置也需要合理。 我们稍微整理一下编程时的步骤: 1. 将PD4~PD5 引脚设置为输出(默认为低电平)。DDRD|=BIT(4)|BIT(5); 2. 设置方波产生模式,WGM12~10,试验中是以模式11 为例。TCCR1
[单片机]
STM32开发板学习笔记--外部中断
1、先去掉 stm32f10x_conf.h 中TIM前的注释符号 2、在NVIC_Configuration();中加入 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);// 选择使用优先级分组第1组 //使能EXTI3中断 NVIC_InitStructure.NVIC_IRQChannel=EXTI3_IRQChannel; //设置通道 NVIC_InitStructure.NVIC_IRQChannelPreemptionPrio rity=0; //指定抢占式优先级别0 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; //
[单片机]
外部中断0/1实现点亮LED代码
1 #include reg52.h 2 #include stdio.h 3 sbit LED = P2^0; 4 //初始化函数 5 void init(){ 6 //打开外部中断1的分开关 7 EX1=1; 8 //打开外部中断总开关 9 EA=1; 10 //外部中断1的标志位,标志着外部中断在响应中断 11 IT1=1; 12 } 13 //主函数 14 void main(void){ 15 //调用初始化函数 16 init(); 17 /*兜底循环,因为主函数是死循环的,我们需要初始化函数只初始化一次,所以需要兜底循环, 18 后边的中断也是在这个兜底循环下
[单片机]
MSP430用按键中断控制定时器产生持续 1s 的周期信号
////////////////////////////////////////////////////////////////////////////////////////////////////// // 2012 年吉林省大学生电子设计大赛 C题 声源定位系统 ----(声源部分) // 要求: 有信号产生电路, 放大电路, 声音频率 800Hz 左右, 按一次键响声持续 1 秒. // 声源模块体积不超过 4cm*4cm*4cm. //======================================================================================
[单片机]
芯海单片机外部中断程序
;============================================ ; filename: 外部中断.asm ; chip : csu1181b ; author : ; date : 2012-08-14 ;本例代码从此处可下载http://www.51hei.com/f/adcsde.rar include csu1181b.inc ;============================================ ; program start ;============================================ org 000h GOTO A1 ORG 0
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved