單片機(jī)C語言第4章中斷系統(tǒng)的C51編程ppt課件.ppt
《單片機(jī)C語言第4章中斷系統(tǒng)的C51編程ppt課件.ppt》由會員分享,可在線閱讀,更多相關(guān)《單片機(jī)C語言第4章中斷系統(tǒng)的C51編程ppt課件.ppt(22頁珍藏版)》請?jiān)趨R文網(wǎng)上搜索。
1、4.3 外部中斷源的C51編程,51單片機(jī)提供了2個外部中斷源 : 外部中斷0請求,占用P3.2引腳,其中斷請求號為0。 外部中斷1請求,占用P3.3引腳,其中斷請求號為2。 外部中斷源的初始化時通過設(shè)置相應(yīng)的特殊功能寄存器的相應(yīng)位來實(shí)現(xiàn)的。,(1)TCON寄存器中的IT0、IT1位,外部中斷0和外部中斷1的中斷觸發(fā)方式控制位。如: IT0=0;/外部中斷0為電平觸發(fā)方式 IT1=1;/外部中斷1為脈沖觸發(fā)方式(2)IP寄存器中的PX0、PX1位外部中斷0和外部中斷1的中斷優(yōu)先級的設(shè)定。如:PX0=0;/設(shè)定外部中斷0為低級中斷PX1=1;/設(shè)定外部中斷1為高級中斷,4.3.1 外部中斷源的初
2、始化,(3)IE寄存器中的EA、EX0、EX1位,EA為中斷允許總控制位;EX0、EX1為外部中斷0中斷和外部中斷1中斷的中斷允許位。如:EA=1;/開放總的中斷控制EX0=1;/允許外部中斷0中斷EX1=0;/禁止外部中斷1中斷,【例4-1】初始狀態(tài)時低4位燈亮,高4位的燈滅,編程實(shí)現(xiàn)按一下S0,P1口的發(fā)光狀態(tài)發(fā)生反轉(zhuǎn)。,#includevoid main( ) P1=0XF0; /高4位滅、低4位亮 IT1=1; /脈沖觸發(fā)方式 EA=1; EX1=1;/開放相應(yīng)的中斷 while(1); /等待中斷 void wint0(void)interrupt 2 /外部中斷1 P1=P1;,【
3、例4-2】利用S0按鈕控制P1口的燈,要求每按一下就點(diǎn)亮一盞燈(其余的燈是滅的)。,#include#include /內(nèi)部函數(shù) bit flag; /中斷標(biāo)志unsigned char ledstatus;void wint1( ) interrupt 2 flag=1; ,void main(void) P1=0 xff; ledstatus=0 xfe; IT1=1; EA=1; EX1=1; while(1) if(flag) P1=ledstatus; ledstatus=_crol_(ledstatus,1); flag=0; 修改:利用S0按鈕控制P1口的燈,要求每按一下就點(diǎn)亮一
4、盞燈(其余的燈保持亮的狀態(tài)) .。,【例4-3】當(dāng)S0動作時,P1.0端口的電平反向,當(dāng)外S1動作,P1.7端口的電平反向。,#includesbit LED0=P10;sbit LED7=P17;void IS0(void) interrupt 0/外部中斷0 LED0=LED0;void IS1(void) interrupt 2/外部中斷1 LED7=LED7;void main( ) P1=0 xFF; IT0=1; IT1=1; EX0=1; EX1=1; EA=1; while(1); ,修改:(1)S0控制P1.0P1.3的燈,S1控制P1.4P1.7的燈。 (2)按下S0后,點(diǎn)
5、亮8只LED;按下S1后,變?yōu)殚W爍狀態(tài)。,【例4-4】P1口控制的燈按一定的頻率閃爍,S0動作,實(shí)現(xiàn)單燈左移,而左移3圈結(jié)束。,#include #defineLEDP1 /定義LED接至P 1void delay1ms(int); /聲明延遲函數(shù) void left(int); /聲明單燈左移函數(shù) main( ) IE=0 x81; /準(zhǔn)許INT 0中斷LED=0 x00; /初值=0000 0000,燈全亮while(1) /無窮循環(huán),程序一直跑 delay1ms(250); /延遲250*1m=0.25s LED=LED; /LED反相 /* INT 0的中斷子程序 - 單燈左移3圈 *
6、/void my_int0(void) interrupt 0unsigned saveLED=LED; /儲存中斷前LED狀態(tài) left(3); /單燈左移3圈 LED=saveLED; /寫回中斷前LED狀態(tài) ,/* 延遲函數(shù),延遲約x 1ms */void delay1ms(int x) int i, j; /聲明整數(shù)變數(shù)i,j for (i=0;ix;i+) /計(jì)數(shù)x次,延遲x 1ms for (j=0;j120;j+); /計(jì)數(shù)120次,延遲1ms /* 單燈左移函數(shù),執(zhí)行x圈 */void left(int x) /單燈左移函數(shù)開始 int i, j; /聲明變數(shù)i,jfor(i=
- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
20 積分
下載 | 加入VIP,下載共享資源 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 單片機(jī) 語言 中斷 系統(tǒng) C51 編程 ppt 課件