1 實驗?zāi)康?/strong> 通過實驗,掌握定時器的使用方法。著重掌握定時中斷的使用! 2 實驗內(nèi)容- 使用Mega16單片機的timer0產(chǎn)生1ms間隔的定時中斷(建議采用application builder,既可以用Normal工作模式也可以使用CTC模式),(1)在定時中斷中實現(xiàn)4位數(shù)碼管的動態(tài)刷新。(2)在1ms的定時中斷中設(shè)計100mS的時間標(biāo)志位,在主程序中查詢時間標(biāo)志位,實現(xiàn)LED閃爍。
2、 重新配置TImer0工作在PWM模式,用按鍵改變PWM的占空比,調(diào)節(jié)電機轉(zhuǎn)速; 3 實驗預(yù)習(xí)要求仔細閱讀教材中定時中斷的范例; 4 實驗步驟1、啟動ICCAVR,創(chuàng)建一個工程文件,配置timer0,實現(xiàn)10ms的定時中斷,采用Application Builder來生成初始化代碼。注意:本次實驗使用的IO口也要初始化,包括數(shù)碼管驅(qū)動所使用的IO,按鍵等。 2、在定時中斷中實現(xiàn)四位數(shù)碼管的定時刷新(注:要使用上次實驗課的HC595的驅(qū)動),并在定時中斷中實現(xiàn)100ms的時間標(biāo)志(時標(biāo)),在主程序中查詢時標(biāo),實現(xiàn)led(PORTC口任何一個LED都可)閃爍; 3、重新配置TImer0工作在PWM模式,初始占空比設(shè)置為10%,然后使用按鍵INT1(在原理圖中為SW8,連接到了單片機的PD3引腳上』來改變占空比,例如每按一次按鍵,占空比增加10%。 注:實驗中要使用的管腳有:PD4、PD5、PD6、PD7、PB0、PB1、PA0,PD3,各管腳連接請參照原理圖。
實驗三 定時器應(yīng)用實驗
| 1 實驗?zāi)康?/strong> 通過實驗,掌握定時器的使用方法。著重掌握定時中斷的使用! 2 實驗內(nèi)容 1、使用Mega16單片機的timer0產(chǎn)生1ms間隔的定時中斷(建議采用application builder,既可以用Normal工作模式也可以使用CTC模式),(1)在定時中斷中實現(xiàn)4位數(shù)碼管的動態(tài)刷新。(2)在1ms的定時中斷中設(shè)計100mS的時間標(biāo)志位,在主程序中查詢時間標(biāo)志位,實現(xiàn)LED閃爍。 2、重新配置TImer0工作在PWM模式,用按鍵改變PWM的占空比,調(diào)節(jié)電機轉(zhuǎn)速; 3 使用Mega16單片機的timer0產(chǎn)生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計數(shù)
- 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
- }
復(fù)制代碼
4 在定時中斷中實現(xiàn)4位數(shù)碼管的動態(tài)刷新。(只寫出定時中斷相關(guān)的代碼,本部分要借用上次實驗課實現(xiàn)的HC595的驅(qū)動函數(shù))
5、在1ms的定時中斷中設(shè)計1000mS的時間標(biāo)志位,在主程序中查詢時間標(biāo)志位,秒表功能。(只寫定時中斷服務(wù)程序和實現(xiàn)秒表的功能代碼)
完整的Word格式文檔51黑下載地址:
實驗三 定時器實驗.doc
(62 KB, 下載次數(shù): 13)
2018-6-26 00:14 上傳
點擊文件名下載附件
avr 下載積分: 黑幣 -5
|