資源描述:
《實(shí)驗(yàn)三 中斷、定時(shí)器實(shí)驗(yàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、評(píng)閱單片機(jī)實(shí)驗(yàn)報(bào)告三姓名學(xué)號(hào)時(shí)間地點(diǎn)B526實(shí)驗(yàn)題目實(shí)驗(yàn)三中斷、定時(shí)器實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.學(xué)習(xí)外部中斷和定時(shí)器的工作原理及使用方法。2.學(xué)習(xí)外部中斷和定時(shí)器的初始化程序、應(yīng)用程序的編寫(xiě)和調(diào)試。二、實(shí)驗(yàn)主要儀器和環(huán)境PC機(jī)、WAVE軟件、仿真器+仿真頭、實(shí)驗(yàn)板、電源等。三、實(shí)驗(yàn)說(shuō)明本實(shí)驗(yàn)1通過(guò)開(kāi)關(guān)向單片機(jī)提出中斷請(qǐng)求,單片機(jī)響應(yīng)中斷進(jìn)行計(jì)數(shù),并通過(guò)LED數(shù)碼管指示出計(jì)數(shù)值,從而觀察中斷的請(qǐng)求、響應(yīng)的過(guò)程。實(shí)驗(yàn)2通過(guò)單片機(jī)的定時(shí)器產(chǎn)生延時(shí),模擬交通燈控制的方法。通過(guò)本實(shí)驗(yàn)學(xué)生可以掌握單片機(jī)中斷和定時(shí)器的工作原理及使用方法以及中斷和定時(shí)器的初始化程序、應(yīng)用程序的編寫(xiě)和調(diào)試。四、實(shí)驗(yàn)內(nèi)容1、開(kāi)關(guān)S
2、0—S1連接P3口做輸入,P0輸出接LED數(shù)碼管,通過(guò)S2產(chǎn)生外部中斷請(qǐng)求(/INT0)信號(hào),在中斷服務(wù)程序中完成十進(jìn)制遞增計(jì)數(shù),并將計(jì)數(shù)值顯示在LED數(shù)碼管上,要求分別采用電平觸發(fā)和邊沿觸發(fā)。按上述要求完成S3產(chǎn)生外部中斷請(qǐng)求。編寫(xiě)初始化程序和中斷服務(wù)程序。(注意開(kāi)關(guān)抖動(dòng)處理)2、P1.0--P1.7作輸入口接撥動(dòng)開(kāi)關(guān)S0--S7;P0.0--P0.7作輸出口,接發(fā)光二極管L1—L8,編寫(xiě)程序讀取開(kāi)關(guān)狀態(tài),將此狀態(tài)在對(duì)應(yīng)的發(fā)光二極管上顯示出來(lái),要求發(fā)光二極管(LED)按亮0.5秒、暗0.5秒閃爍,LED亮的同時(shí),從P2.0送出1kHz的音頻信號(hào)到音頻驅(qū)動(dòng)電路發(fā)聲(持續(xù)0.5秒),將開(kāi)關(guān)編
3、號(hào)(0—7)顯示在LED數(shù)碼管上。要求延時(shí)采用內(nèi)部定時(shí)器T0,音頻的產(chǎn)生采用內(nèi)部定時(shí)器T1。編寫(xiě)初始化程序和中斷服務(wù)程序。五、實(shí)驗(yàn)1電路連線P0.0----LED0P3.2(/INT0)-----S2P0.1----LED1P0.2----LED2P0.3----LED3P0.4----LED4P0.5----LED5P0.6----LED6P0.7----LED7外部中斷請(qǐng)求輸入abcdefgh(dp)abcdefgh(dp)P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0實(shí)驗(yàn)2:LED數(shù)碼管各段與I/O的連接六、實(shí)驗(yàn)程序流程框圖、實(shí)驗(yàn)程序?qū)嶒?yàn)一:ORG0000H;設(shè)定程
4、序起始地址為0000HAJMPMAINORG0003HAJMPINT_0ORG0013HAJMPINT_1ORG0100HMAIN:CLREA;關(guān)CPU中斷SETBEX0;開(kāi)外部中斷0SETBEX1;開(kāi)外部中斷1CLRIT0;設(shè)置外部中斷0為電平觸發(fā)方式SETBIT1;設(shè)置外部中斷1為跳沿觸發(fā)方式MOVR0,#00H;R0設(shè)初值為0MOVDPTR,#TABLE;DPTR指向表頭ACALLDISP;初始顯示0SETBEA;開(kāi)總中斷SJMP$;等待中斷INT_0:CLREA;關(guān)總中斷ACALLDELAY;延時(shí)消抖JBP3.2,OUT0;判斷是否真的觸發(fā),P3.2為1時(shí)跳轉(zhuǎn)至OUT0,為0時(shí)繼續(xù)
5、執(zhí)行INCR0;R0加一CJNER0,#0AH,DISP0;若R0不等于10則跳轉(zhuǎn)到DISP0顯示MOVR0,#00H;R0等于10時(shí)清零DISP0:ACALLDISP;調(diào)用顯示子程序OUT0:SETBEA;重開(kāi)總中斷RETIINT_1:CLREA;邊緣觸發(fā)ACALLDELAYJBP3.3,OUT1INCR0CJNER0,#0AH,DISP1MOVR0,#00HDISP1:ACALLDISPOUT1:SETBEARETI;顯示子程序DISP:MOVA,R0MOVCA,@A+DPTRMOVP0,ARET;延時(shí)子程序DELAY:MOVR5,#100;D1:MOVR6,#20D2:MOVR7,#
6、248DJNZR7,$DJNZR6,D2DJNZR5,D1RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;數(shù)碼管編碼數(shù)表END程序流程圖:實(shí)驗(yàn)二:ORG0000H;設(shè)定程序起始地址為0000HAJMPMAINORG000BH;中斷一入口地址AJMPT0ORG001BH;中斷二入口地址AJMPT1ORG0100HMAIN:MOVSP,#66H;設(shè)置堆棧指針MOVTMOD,#11H;設(shè)置定時(shí)器中斷0、1都工作在方式1MOVTL0,#0B0H;TL0裝初值MOVTH0,#03CH;TH0裝初值,3CB0H=15536,故定時(shí)50msMOVTL
7、1,#0CH;TL1裝初值MOVTH1,#0FEH;TH1裝初值,F(xiàn)E0CH=65036,故定時(shí)0.5ms,產(chǎn)生1KHz的信號(hào)SETBPT1MOVIE,#0AH;允許T0、T1中斷SETBEA;開(kāi)總中斷SETBTR0;開(kāi)中斷T0,CLRTR1;關(guān)閉T1MOVR2,#00H;R2計(jì)數(shù)清0MOVR0,#10;設(shè)置T0中斷次數(shù)MOVP1,#0ffH;P1口先賦1SEARCH:MOVA,P1CJNEA,#0FFH,LOOK;判斷