日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]這一節(jié),介紹如何配置引腳上產(chǎn)生中斷來檢測引腳上的高低電平變化。單片機的任何一個IO口,都可以作為中斷引腳,所以,LPC1114一共有41個外部中斷引腳??梢栽O(shè)置為低電平引發(fā)中斷、高電平引發(fā)中斷、上升沿引發(fā)中斷、下

這一節(jié),介紹如何配置引腳上產(chǎn)生中斷來檢測引腳上的高低電平變化。

單片機的任何一個IO口,都可以作為中斷引腳,所以,LPC1114一共有41個外部中斷引腳。

可以設(shè)置為低電平引發(fā)中斷、高電平引發(fā)中斷、上升沿引發(fā)中斷、下降沿引發(fā)中斷、雙邊沿引發(fā)中斷,一共5種中斷方式。

下面,以下降沿中斷為例,進(jìn)行說明:

新建一個工程,結(jié)構(gòu)如下圖所示:

在main.c文件中,加入以下代碼:

#include"LPC11XX.H"#defineLED1_ONLPC_GPIO1->DATA&=~(1<<0)#defineLED1_OFFLPC_GPIO1->DATA|=(1<<0)#defineLED2_ONLPC_GPIO1->DATA&=~(1<<1)#defineLED2_OFFLPC_GPIO1->DATA|=(1<<1)#defineKEY1_DOWN(LPC_GPIO1->DATA&(1<<9))!=(1<<9)#defineKEY2_DOWN(LPC_GPIO1->DATA&(1<<10))!=(1<<10)voidled_init(){LPC_SYSCON->SYSAHBCLKCTRL|=(1<<16);//使能IOCON時鐘LPC_IOCON->R_PIO1_0&=~0x07;LPC_IOCON->R_PIO1_0|=0x01;//把P1.0腳設(shè)置為GPIOLPC_IOCON->R_PIO1_1&=~0x07;LPC_IOCON->R_PIO1_1|=0x01;//把P1.1腳設(shè)置為GPIOLPC_SYSCON->SYSAHBCLKCTRL&=~(1<<16);//禁能IOCON時鐘LPC_GPIO1->DIR|=(1<<0);//把P1.0設(shè)置為輸出引腳LPC_GPIO1->DATA|=(1<<0);//把P1.0設(shè)置為高電平LPC_GPIO1->DIR|=(1<<1);//把P1.1設(shè)置為輸出引腳LPC_GPIO1->DATA|=(1<<1);//把P1.1設(shè)置為高電平}voidPIOINT1_IRQHandler(){if((LPC_GPIO1->MIS&(1<<9))==(1<<9))//如果是P1.9引起的中斷{LED1_ON;while(KEY1_DOWN);LED1_OFF;LPC_GPIO1->IC=0XFFF;//清中斷}if((LPC_GPIO1->MIS&(1<<10))==(1<<10))//如果是P1.10引起的中斷{LED2_ON;while(KEY2_DOWN);LED2_OFF;LPC_GPIO1->IC=0XFFF;//清中斷}}intmain(){led_init();//配置LEDLPC_GPIO1->IE|=(1<<9);//允許P1.9引腳上的中斷LPC_GPIO1->IE|=(1<<10);//允許P1.10引腳上的中斷NVIC_EnableIRQ(EINT1_IRQn);//打開GPIO1中斷while(1){;}}

在main()函數(shù)中,第41和42行,給IE寄存器bit9和bit10寫1允許P1.9和P1.10引腳的中斷。第43行,開啟NVIC中斷。

第21~37是P1口的中斷服務(wù)函數(shù)。在中斷服務(wù)函數(shù)里面,讀取MIS寄存器來檢測是哪個引腳上產(chǎn)生的中斷。

IE就是MIS的開關(guān),MIS某位置1,引發(fā)進(jìn)入中斷服務(wù)函數(shù)事件。

如果要設(shè)置成其它中斷方式,可以給IS、IBE、IEV寄存器寫值。例如:

低電平中斷:

LPC_GPIO1->IS |= (1<<9);

LPC_GPIO1->IS |= (1<<10);

IS對應(yīng)位置1,IBE、IEV寄存器保持默認(rèn)值。

上升沿中斷:

LPC_GPIO1->IEV |= (1<<9);

LPC_GPIO1->IEV |= (1<<10);

IEV對應(yīng)位置1,IS、IBE保持默認(rèn)值。

雙邊沿中斷:

LPC_GPIO1->IBE |= (1<<9);

LPC_GPIO1->IBE |= (1<<10);

IBE對應(yīng)位置1,IS、IEV寄存器保持默認(rèn)值。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉