您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机AVR定时器T1中断示例程序 正文
AVR定时器T1中断示例程序

AVR定时器T1中断示例程序

点击数:7818 次   录入时间:03-04 11:48:48   整理:http://www.55dianzi.com   AVR单片机

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);
      }




本文关键字:程序  定时器  AVR单片机单片机-工控设备 - AVR单片机