硬件:ATMeag128 频率8M 要求:1、数码管的显示范围为“00”-“59”;显示内容初始为“00”; 2、显示内容1s增加1,增到59后回00。 3、要求应用定时计数器1,普通方式,采用中断程序实现。(设系统时钟为内部8MHz时钟信号)软件:iccavr
时间: 2024-05-19 14:11:18 浏览: 79
//ATmega128定时器1定时器中断程序
#include <avr/io.h>
#include <avr/interrupt.h>
volatile unsigned char second = 0; //全局变量,保存秒数
void init_timer1()
{
TCCR1A = 0x00; //普通模式
TCCR1B = 0x04; //设置分频系数为1/256
TCNT1 = 0; //计数器初值为0
TIMSK = 0x04; //打开定时器1中断使能
}
ISR(TIMER1_OVF_vect) //定时器1中断服务程序
{
second++; //秒数加1
if (second >= 60) //如果秒数达到60
{
second = 0; //秒数清零
}
PORTA = second; //将秒数输出到数码管
}
int main(void)
{
DDRA = 0xFF; //将PORTA设为输出口
init_timer1(); //初始化定时器1
sei(); //开中断
while(1)
{
//程序不需要做任何事情
}
return 0;
}
阅读全文