电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

AVR定时器T1中断示例程序

来源:-- 作者:-- 浏览:1296

标签:

摘要: AVR定时器T1中断示例程序使用AVR的定时器T1做1S定时,并使用PD口的LED指示灯做简单指示。 #include <iom16v.h> #include <macros.h>

AVR定时器T1中断示例程序使用AVR的定时器T1做1S定时,并使用PD口的LED指示灯做简单指示。

      #include <iom16v.h>
      #include <macros.h>

      #define DISP_DDR   DDRD

 

      #define DISP_PORT  PORTD

      /*-----------------------------------------------------------------
      程序名称:定时器1初始化程序
      程序功能:
      注意事项:基于7.3728M晶振
      提示说明:晶振不要买到假的,要不然,调不出来还以为电脑有鬼!
      输    入:
      返    回:
      --------------------------------------------------------------------*/
      void timer1_init(void)
      {
       TCCR1B = 0x00;  //stop timer

       TCNT1H = 0xE3;  //设置 TC1 的 计数寄存器 高8位值,基于7.3728M晶振
       TCNT1L = 0xE1;  //设置 TC1 的 计数寄存器 低8位值,基于7.3728M晶振

       //OCR1AH = 0x1C; //设置 TC1 的 输出比较寄存器A 高8位值
       //OCR1AL = 0x20; //设置 TC1 的 输出比较寄存器A 低8位值

       //OCR1BH = 0x1C; //设置 TC1 的 输出比较寄存器B 高8位值
       //OCR1BL = 0x20; //设置 TC1 的 输出比较寄存器B 低8位值

       //ICR1H  = 0x1C; //设置 TC1 的 输入捕获寄存器 高8位值
       //ICR1L  = 0x20; //设置 TC1 的 输入捕获寄存器 低8位值

       TCCR1A = 0x00;
       TCCR1B = 0x05;  //设置TC1 为 CLK/1024分频,启动TC1

       MCUCR = 0x00;  //设置 MCU 的 控制寄存器
       GICR  = 0x00;  //设置 中断控制寄存器
       TIMSK = 0x04;  //设置 定时计数器 的 屏蔽寄存器
       //SEI();  //enable interrupts
      }
      /*--------------------------------------------------------------------
      程序名称:定时器1中断服务程序
      程序功能:
      注意事项:
      提示说明:
      输    入:
      返    回:
      --------------------------------------------------------------------*/
      #pragma interrupt_handler timer1_ovf_isr:9
      void timer1_ovf_isr(void)
      {
       TCNT1H = 0xE3;  //reload counter high value
       TCNT1L = 0xE1;  //reload counter low value
       DISP_PORT++;  //每加1S,显示加1
      }
      /*--------------------------------------------------------------------
      程序名称:
      程序功能:
      注意事项:没什么好注意的,不要直接对 单片机 控制板加220V电压就行了!
      提示说明:
      输    入:
      返    回:
      --------------------------------------------------------------------*/
      void main(void)
      {
       DISP_DDR = 0XFF; //设置显示口为输出
       timer1_init();
       SEI();
       while(1);
      }

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67