×
单片机 > 单片机程序设计 > 详情

AVR 定时记数器0 普通模式的简单应用

发布时间:2020-08-31 发布时间:
|
#include
#include
#include

#define ling 0x80        //这里是设制从最高位一个一个的点亮
volatile unsigned char count,i = 0,j = 0;   //设制两个变量
 

void Timer0_Init(void)   //定时器0的初始化
{
    TCNT0 = 0x3d;   //给计数器赋初值
    TCCR0 = 0x05;   //CLK/1024分频
    TIMSK = 0x01;   //始能定时器0的溢出中断
    sei();          //置位总中断
}

int main(void)
{
    DDRB = 0xff;     //PB口设制为输出
    PORTB = 0xff;    //PB口初始化为FF
    Timer0_Init();    //调用定时器0的初始化
    
    while(1);

        
}

ISR(TIMER0_OVF_vect)    //定时器溢出中断函数
{
    //unsigned char i;
    TCNT0 = 0x3d;      //重装载计数器的值a
    i++;               //标志位加1
    if(i == 20)
    {
        
        //PORTB = 0xff;
        i = 0;
        count++;
        if(count > 7)    //点亮8个LED的循环
            {
                count = 0;
                j =!j;
            }
        
    }
    if(j == 0)
         PORTB &= ~(ling >> count);
    else PORTB |= (1 << count);
    
}
关键字:AVR  定时记数器0  普通模式 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址