資源描述:
《單片機(jī)實(shí)驗(yàn)三 中斷中斷、定時(shí)器》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、實(shí)驗(yàn)三中斷、定時(shí)器實(shí)驗(yàn)?zāi)康模赫莆諈R編語言綜合編程方法,掌握并行I/O口、定時(shí)器、中斷等功能部件的使用規(guī)則和應(yīng)用方法,熟悉中斷處理程序的安排。實(shí)驗(yàn)環(huán)境:CodeWarriorIDE仿真調(diào)試軟件+XDT512開發(fā)板套件;編程語言選擇:匯編語言(Assembly);調(diào)試連接選擇:FullChipSimulation+P&EMultilink;工程目標(biāo)選擇:硬件連接調(diào)試(P&EMultilink);實(shí)驗(yàn)內(nèi)容:1、外部中斷IRQ觸發(fā)的LED跑馬燈。核心板上4個(gè)LED已接B口高4位,B口位輸出低電平時(shí)點(diǎn)亮,IRQ引腳下降沿引發(fā)中斷。使用導(dǎo)線連接
2、核心板MCU的IRQ引腳(插口J1=J5=J6=J7的2號(hào)腳)和目標(biāo)板上的按鍵PB1(USERI/O插口的PB1),按動(dòng)PB1即能給IRQ引腳施加帶有下降沿的低電平。調(diào)試時(shí),可在中斷服務(wù)程序中設(shè)置斷點(diǎn),以方便觀察是否進(jìn)入中斷。在此程序正常運(yùn)行的基礎(chǔ)上再加入對(duì)核心板按鍵SW1(P口最低位,按下時(shí)接地)的檢測(cè),當(dāng)其按下時(shí)取消跑馬燈顯示,IRQ再次按下時(shí)繼續(xù)顯示跑馬燈。LDS#__SEG_END_SSTACK;initializethestackpointerLDAA#$FFSTAADDRBLDAA#$C0STAAIRQCRCLILDAA
3、#$FFSTAAPORTBLDAA#$00STAAFLAGWAIT:CMPAFLAGBEQWAITSECLDAA#$FESHIFT:STAAPORTBBSRDELAYROLABRCLRPTP,#$01,CANCELBRASHIFTCANCEL:LDAA#$00STAAFLAGBRAWAITIRQ_ISR:LDAA#$FFSTAAFLAGRTIDELAY:PSHXPSHYLDX#200DL1:LDY#200DL2:NOPNOPDBNEY,DL2DBNEX,DL1PULXPULYRTS2、利用MCU的TIM定時(shí)器、中斷功能部件,實(shí)現(xiàn)3s
4、精確定時(shí)(2MHz總線頻率),每定時(shí)時(shí)間到,使核心板上接B口高4位的最高位的LED亮滅一下,觀察是否進(jìn)入中斷。調(diào)試時(shí),可在中斷服務(wù)程序中設(shè)置斷點(diǎn),以方便觀察是否進(jìn)入中斷。LDS#__SEG_END_SSTACK;initializethestackpointerSEI;enableinterruptsLDAA#$FFSTAADDRBLDAA#$FFSTAAPORTBLDAA#$07STAATSCR2LDAA#$01STAATIOSLDAA#$00STAATCTL2LDAA#$01STAATFLG1LDAA#$01STAATIELDX
5、#93750ADDXTCNTSTXTC0LDAA#$80STAATSCR1CLIWAIT:BRAWAITTC0_ISR:SEILDAA#$01STAATFLG1LDX#93750ADDXTCNTSTXTC0LDAA#$7FSTAAPORTBBSRDELAYLDAA#$FESTAAPORTBCLIRTIDELAY:PSHXPSHYLDX#200DL1:LDY#200DL2:NOPNOPDBNEY,DL2DBNEX,DL1PULXPULYRTSORG$FFEEFDBTC0_ISR3、利用MCU的PIT定時(shí)器、中斷功能部件,實(shí)現(xiàn)3s精確定
6、時(shí)(2MHz總線頻率),每定時(shí)時(shí)間到,使核心板上接B口高4位的最高位的LED亮滅一下,觀察是否進(jìn)入中斷。調(diào)試時(shí),可在中斷服務(wù)程序中設(shè)置斷點(diǎn),以方便觀察是否進(jìn)入中斷。DisableInterrupts;DDRB=0xFF;PORTB=0xFF;PITCFLMT=0x00;PITTF=0x01;PITMUX=0x00;PITMTLD0=99;PITLD0=19999;PITINTE=0x01;PITCE=0X01;PITCFLMT=0x80;EnableInterrupts;for(;;){//...}}#pragmaCODE_SEGN
7、ON_BANKEDinterrupt66voidPIT0_ISR(){inta;PITTF=0x01;PORTB=PORTB&0x7F;For(a=10000;a>0;a--)PORTB=0xFF;}第三個(gè)程序可以改寫成匯編,我這個(gè)現(xiàn)象不大明顯,延時(shí)a太大,系統(tǒng)會(huì)報(bào)錯(cuò),太小又看不到燈亮,所以將就了,老師說OK就行了實(shí)驗(yàn)參考:本書第4章“仿真、調(diào)試與C語言編程”,以及相關(guān)章節(jié)。實(shí)驗(yàn)附1:XDT512核心板接口資源及相關(guān)跳線設(shè)置。實(shí)驗(yàn)附2:XDT512核心板與目標(biāo)板的連接插口(J1)引腳定義。實(shí)驗(yàn)附3:XDT512核心板上主要接口電路圖
8、。