您的位置 首页 编程

AVR 守时记数器0 一般形式的简略使用

includeavrioh>includeutildelayh>includeavrinterrupth>defineling0x80这里是设制从最高位一个一个的点亮vola

#include <avr/io.h>
#include
#include interrupt.h>

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

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/262351.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部