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

avr单片机 Mega16定时器实验报告

发布时间:2020-06-18 发布时间:
|

1、实验目的

通过实验,掌握定时器的使用方法。着重掌握定时中断的使用!


2、实验内容

    1 使用Mega16单片机的timer0产生1ms间隔的定时中断(建议采用application builder,既可以用Normal工作模式也可以使用CTC模式),(1)在定时中断中实现4位数码管的动态刷新。(2)在1ms的定时中断中设计100mS的时间标志位,在主程序中查询时间标志位,实现LED闪烁。

    2 重新配置TImer0工作在PWM模式,用按键改变PWM的占空比,调节电机转速;


3、实验预习要求

仔细阅读教材中定时中断的范例;


4、实验步骤

    1 启动ICCAVR,创建一个工程文件,配置timer0,实现10ms的定时中断,采用Application Builder来生成初始化代码。注意:本次实验使用的IO口也要初始化,包括数码管驱动所使用的IO,按键等。

    2 在定时中断中实现四位数码管的定时刷新(注:要使用上次实验课的HC595的驱动),并在定时中断中实现100ms的时间标志(时标),在主程序中查询时标,实现led(PORTC口任何一个LED都可)闪烁;

    3 重新配置TImer0工作在PWM模式,初始占空比设置为10%,然后使用按键INT1(在原理图中为SW8,连接到了单片机的PD3引脚上』来改变占空比,例如每按一次按键,占空比增加10%。


注:实验中要使用的管脚有:PD4、PD5、PD6、PD7、PB0、PB1、PA0,PD3,各管脚连接请参照原理图。


实验三 定时器应用实验

报 告 内 容


1  实验目的

   通过实验,掌握定时器的使用方法。着重掌握定时中断的使用!

2  实验内容

    1、使用Mega16单片机的timer0产生1ms间隔的定时中断(建议采用application builder,既可以用Normal工作模式也可以使用CTC模式),(1)在定时中断中实现4位数码管的动态刷新。(2)在1ms的定时中断中设计100mS的时间标志位,在主程序中查询时间标志位,实现LED闪烁。

2、重新配置TImer0工作在PWM模式,用按键改变PWM的占空比,调节电机转速;

3  使用Mega16单片机的timer0产生1ms间隔的定时中断(建议采用application builder,既可以用Normal工作模式也可以使用CTC模式),写出采用的工作模式,以及定时器各个寄存器的值。


#include

#include


void port_init(void)

{

PORTA = 0x00;

DDRA  = 0x00;

PORTB = 0x00;

DDRB  = 0x00;

PORTC = 0x00; //m103 output only

DDRC  = 0x00;

PORTD = 0x00;

DDRD  = 0x00;

}


//TIMER0 initialize - prescale:8

// WGM: CTC

// desired value: 1000Hz

// actual value: 992.063Hz (-0.8%)

void timer0_init(void)

{

TCCR0 = 0x00; //stop

TCNT0 = 0x83; //set count计数

OCR0  = 0x7D;  //set compare匹配

TCCR0 = 0x0A; //start timer

}


//call this routine to initialize all peripherals

void init_devices(void)

{

//stop errant interrupts until set up

CLI(); //disable all interrupts

port_init();

timer0_init();


MCUCR = 0x00;

GICR  = 0x00;

TIMSK = 0x00; //timer interrupt sources

SEI(); //re-enable interrupts

//all peripherals are now initialized

}


4  在定时中断中实现4位数码管的动态刷新。(只写出定时中断相关的代码,本部分要借用上次实验课实现的HC595的驱动函数)


5、在1ms的定时中断中设计1000mS的时间标志位,在主程序中查询时间标志位,秒表功能。(只写定时中断服务程序和实现秒表的功能代码)



关键字:avr单片机  Mega16  定时器

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

热门文章 更多
基于AT91M42800A的LED显示系统设计