1 實驗目的 通過實驗,掌握定時器的使用方法。著重掌握定時中斷的使用! 2 實驗內容- 使用Mega16單片機的timer0產生1ms間隔的定時中斷(建議采用application builder,既可以用Normal工作模式也可以使用CTC模式),(1)在定時中斷中實現4位數碼管的動態(tài)刷新。(2)在1ms的定時中斷中設計100mS的時間標志位,在主程序中查詢時間標志位,實現LED閃爍。
2、 重新配置TImer0工作在PWM模式,用按鍵改變PWM的占空比,調節(jié)電機轉速; 3 實驗預習要求仔細閱讀教材中定時中斷的范例; 4 實驗步驟1、啟動ICCAVR,創(chuàng)建一個工程文件,配置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位數碼管的動態(tài)刷新。(2)在1ms的定時中斷中設計100mS的時間標志位,在主程序中查詢時間標志位,實現LED閃爍。 2、重新配置TImer0工作在PWM模式,用按鍵改變PWM的占空比,調節(jié)電機轉速; 3 使用Mega16單片機的timer0產生1ms間隔的定時中斷(建議采用application builder,既可以用Normal工作模式也可以使用CTC模式),寫出采用的工作模式,以及定時器各個寄存器的值。 |
- #include <iom16v.h>
- #include <macros.h>
- 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位數碼管的動態(tài)刷新。(只寫出定時中斷相關的代碼,本部分要借用上次實驗課實現的HC595的驅動函數)
5、在1ms的定時中斷中設計1000mS的時間標志位,在主程序中查詢時間標志位,秒表功能。(只寫定時中斷服務程序和實現秒表的功能代碼)
完整的Word格式文檔51黑下載地址:
實驗三 定時器實驗.doc
(62 KB, 下載次數: 13)
2018-6-26 00:14 上傳
點擊文件名下載附件
avr
|