單片機(jī)基礎(chǔ)與Arduino應(yīng)用(第2版)課件28 Avr 中斷_第1頁
單片機(jī)基礎(chǔ)與Arduino應(yīng)用(第2版)課件28 Avr 中斷_第2頁
單片機(jī)基礎(chǔ)與Arduino應(yīng)用(第2版)課件28 Avr 中斷_第3頁
單片機(jī)基礎(chǔ)與Arduino應(yīng)用(第2版)課件28 Avr 中斷_第4頁
單片機(jī)基礎(chǔ)與Arduino應(yīng)用(第2版)課件28 Avr 中斷_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單片機(jī)之中斷電子信息工程學(xué)院空天電子信息國家級實驗教學(xué)示范中心空天電子信息國家級虛擬仿真實驗教學(xué)中心中斷的原理單片機(jī)之中斷Command1主程序中斷服務(wù)程序(ISR)Command2Command3Command4Command5閃燈閃燈鬧鐘響了(中斷源)單片機(jī)之中斷中斷向量表定時器1的三個中斷源TIMER1COMPATIMER1COMPBTIMER1OVFPC指針跳轉(zhuǎn)到中斷服務(wù)程序中斷名稱中斷向量RESET中斷0x0000INT00x0002INT10x0004……TIMER1

COMPA0x0016TIMER1

COMPB0x0018TIMER1OVF0x001A…單片機(jī)之中斷中斷向量表中斷優(yōu)先級RESET擁有最高優(yōu)先級地址越低中斷優(yōu)先級越高高優(yōu)先級低優(yōu)先級中斷名稱中斷向量RESET中斷0x0000INT00x0002INT10x0004……TIMER1

COMPA0x0016TIMER1

COMPB0x0018TIMER1OVF0x001A…單片機(jī)之中斷內(nèi)部與外部中斷RESET+2外部中斷23內(nèi)部中斷(滿足條件時觸發(fā))AddressLabelsCodeComments0x0000jmpRESET;ResetHandler0x0002jmpEXT_INT0;IRQ0Handler0x0004jmpEXT_INT1;IRQ1Handler0x0006jmpPCINT0;PCINT0Handler0x0008jmpPCINT1;PCINT1Handler0x000AjmpPCINT2;PCINT2Handler0x000CjmpWDT;WatchdogTimerHandler0x000EjmpTIM2_COMPA;Timer2CompareAHandler0x0010jmpTIM2_COMPB;Timer2CompareBHandler0x0012jmpTIM2_OVF;Timer2OverflowHandler0x0014jmpTIM1_CAPT;Timer1CaptureHandler0x0016jmpTIM1_COMPA;Timer1CompareAHandler0x0018jmpTIM1_COMPB;Timer1CompareBHandler0x001AjmpTIM1_OVF;Timer1OverflowHandler0x001CjmpTIM0_COMPA;Timer0CompareAHandler0x001EjmpTIM0_COMPB;Timer0CompareBHandler0x0020jmpTIM0_OVF;Timer0OverflowHandler0x0022jmpSPI_STC;SPITransferCompleteHandler0x0024jmpUSART_RXC;USART,RXCompleteHandler0x0026jmpUSART_UDRE;USART,UDREmptyHandler0x0028jmpUSART_TXC;USART,TXCompleteHandler0x002AjmpADC;ADCConversionCompleteHandler0x002CjmpEE_RDY;EEPROMReadyHandler0x002EjmpANA_COMP;AnalogComparatorHandler0x0030jmpTWI;2-wireSerialInterfaceHandler0x0032jmpSPM_RDY;StoreProgramMemoryReadyHandler;0x0033RESET:ldir16,high(RAMEND);Mainprogramstart0x0034outSPH,r16;SetStackPointertotopofRAM0x0035ldir16,low(RAMEND)0x0036outSPL,r160x0037sei;Enableinterrupts0x0038<instr>xxx............外部中斷內(nèi)部中斷外部中斷內(nèi)部中斷單片機(jī)之中斷外部中斷通過寄存器配置觸發(fā)外部中斷觸發(fā)類型:上升沿/下降沿/低電平觸發(fā)外部中斷使能寄存器外部中斷標(biāo)志寄存器管腳電平變化中斷使能寄存器管腳電平變化中斷標(biāo)志寄存器單片機(jī)之中斷中斷觸發(fā)條件AddressLabelsCodeComments0x0000jmpRESET;ResetHandler0x0002jmpEXT_INT0;IRQ0Handler0x0004jmpEXT_INT1;IRQ1Handler…0x0016jmpTIM1_COMPA;Timer1CompareAHandler0x0018jmpTIM1_COMPB;Timer1CompareBHandler0x001AjmpTIM1_OVF;Timer1OverflowHandler總開關(guān)中斷查詢模式void

setup(){//

Serial.begin(9600);

cli();pinMode(13,

OUTPUT);

/*

9600

baud

*/

//設(shè)置定時器1為1Hz

TCCR1A

=

0;//將整個TCCR1A寄存器設(shè)置為0

TCCR1B

=

0;//將整個TCCR1B寄存器設(shè)置為0

TCNT1

=

0;//將計數(shù)器值初始化為0

uint32_t

ms

=

1000;

ms

=

1000

*

(16000

/

1024);

OCR1AH

=

((ms-1)

&

0xff00)

>>

8;//

15625

高位

OCR1AL

=

(ms-1)

&

0x00ff;

//

15625

低位

TCCR1B

|=

(1

<<

WGM12);//打開CTC模式

TCCR1B

|=

(1

<<

CS12)

|

(1

<<

CS10);//(1024倍預(yù)分頻)

TIMSK1

|=

(1

<<

OCIE1A);

sei();//打開全局中斷}//中斷服務(wù)程序ISR(TIMER1_COMPA_vect)

{

digitalWrite(13,

flag

?

HIGH

:

LOW);

flag

=

!flag;}單片機(jī)之中斷中斷程序編寫int

flag

=

0;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論