實(shí)驗(yàn)二 按鍵中斷實(shí)驗(yàn)

實(shí)驗(yàn)二 按鍵中斷實(shí)驗(yàn)

ID:14395510

大?。?18.57 KB

頁(yè)數(shù):4頁(yè)

時(shí)間:2018-07-28

實(shí)驗(yàn)二  按鍵中斷實(shí)驗(yàn)_第1頁(yè)
實(shí)驗(yàn)二  按鍵中斷實(shí)驗(yàn)_第2頁(yè)
實(shí)驗(yàn)二  按鍵中斷實(shí)驗(yàn)_第3頁(yè)
實(shí)驗(yàn)二  按鍵中斷實(shí)驗(yàn)_第4頁(yè)
資源描述:

《實(shí)驗(yàn)二 按鍵中斷實(shí)驗(yàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、實(shí)驗(yàn)二按鍵中斷實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康牧私庵袛嗟暮x二、實(shí)驗(yàn)內(nèi)容板子加電后,按動(dòng)板子上K1-K3按鍵,可控制對(duì)應(yīng)的LED1-LED3的亮滅,該實(shí)驗(yàn)學(xué)習(xí)了外部中斷(EXTI)程序的編制及控制流程。三、實(shí)驗(yàn)儀器、設(shè)備計(jì)算機(jī)、開(kāi)發(fā)板、keil軟件四、硬件設(shè)計(jì)在開(kāi)發(fā)板上V6、V7、V8分別與MCU的PB5、PD6、PD3相連,如下圖所示鍵盤部分如下圖所示:例程所用到的列掃描線:PC5,PC2,PC3。例程所用到的行掃描線(EXTI中斷線):PE2。五、實(shí)驗(yàn)要求和步驟開(kāi)發(fā)板上有3個(gè)藍(lán)色狀態(tài)指示燈V6(LED1),V7(LED2),V8(LED3),通過(guò)對(duì)應(yīng)

2、的按鍵K1-K3,控制LED的亮滅,將PE2引腳配置為外部中斷,當(dāng)其上出現(xiàn)下降沿時(shí)產(chǎn)生一個(gè)中斷,根據(jù)掃描PC5,PC2,PC3來(lái)判別是哪個(gè)按鍵按下。首先我們了解一下什么是外部中斷/事件控制器(EXTI)。外部中斷/事件控制器由19個(gè)產(chǎn)生事件/中斷要求的邊沿檢測(cè)器組成。每個(gè)輸入線可以獨(dú)立地配置輸入類型(脈沖或掛起)和對(duì)應(yīng)的觸發(fā)事件(上升沿或下降沿或者雙邊沿都觸發(fā))。每個(gè)輸入線都可以被獨(dú)立的屏蔽。掛起寄存器保持著狀態(tài)線的中斷要求。EXTI控制器的主要特性如下:每個(gè)中斷/事件都有獨(dú)立的觸發(fā)和屏蔽每個(gè)中斷線都有專用的狀態(tài)位支持多達(dá)19個(gè)中斷/

3、事件請(qǐng)求檢測(cè)脈沖寬度低于APB2時(shí)種寬度的外部信號(hào)如要產(chǎn)生中斷,中斷線必須事先配置好并被激活。這是根據(jù)需要的邊沿檢測(cè)通過(guò)設(shè)置2個(gè)觸發(fā)寄存器,和在中斷屏蔽寄存器的相應(yīng)位寫(xiě)“1”到來(lái)允許中斷請(qǐng)求。當(dāng)需要的邊沿在外部中斷線上發(fā)生時(shí),將產(chǎn)生一個(gè)中斷請(qǐng)求,對(duì)應(yīng)的掛起位也隨之被置1。通過(guò)寫(xiě)“1”到掛起寄存器,可以清除該中斷請(qǐng)求。為產(chǎn)生事件觸發(fā),事件連接線必須事先配置好并被激活。這是根據(jù)需要的邊沿檢測(cè)通過(guò)設(shè)置2個(gè)觸發(fā)寄存器,和在事件屏蔽寄存器的相應(yīng)位寫(xiě)“1”到來(lái)允許事件請(qǐng)求。當(dāng)需要的邊沿在事件連線上發(fā)生時(shí),將產(chǎn)生一個(gè)事件請(qǐng)求脈沖,對(duì)應(yīng)的掛起位不被置1

4、。通過(guò)在軟件中斷/事件寄存器寫(xiě)“1”,一個(gè)中斷/事件請(qǐng)求也可以通過(guò)軟件來(lái)產(chǎn)生。本次實(shí)驗(yàn)需要組件的工程文件文檔如下:USER--stm32f10x_it.c為中斷服務(wù)程序主程序,我們對(duì)主程序進(jìn)行一次詳細(xì)的注釋。//______________________主程序____________________________________________________________________intmain(void){unsignedchara=0,b=0,c=0;/*完成對(duì)系統(tǒng)時(shí)鐘的設(shè)置,例程中通過(guò)系統(tǒng)時(shí)鐘設(shè)置函數(shù),外接晶振采用8M

5、hz,經(jīng)過(guò)片內(nèi)頻率合成,9倍頻,設(shè)置為72MHz的時(shí)鐘。*/RCC_Configuration();/*嵌套向量中斷控制器說(shuō)明了EXTI2搶占優(yōu)先級(jí)級(jí)別0(最多1位),和子優(yōu)先級(jí)級(jí)別0(最多7位)*/NVIC_Configuration();/*對(duì)控制3個(gè)LED指示燈的IO口進(jìn)行了初始化,將3個(gè)端口配置為推挽上拉輸出,口線速度為50Mhz。將中斷線PE2配置為輸入模式。將鍵盤掃描列線PC5,PC2,PC3設(shè)置為推挽上拉輸出。在配置某個(gè)口線時(shí),首先應(yīng)對(duì)它所在的端口的時(shí)鐘進(jìn)行使能。否則無(wú)法配置成功,由于用到了端口B和端口D,C,D,因此要對(duì)這

6、4個(gè)端口的時(shí)鐘進(jìn)行使能,同時(shí)由于用到復(fù)用IO口功能用于配置外部中斷。因此還要使能AFIO(復(fù)用功能IO)時(shí)鐘。*/GPIO_Configuration();//用于配置AFIO外部中斷配置寄存器AFIO_EXTICR1,用于選擇EXTI2外部中斷的輸入源是PE2。GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);EXTI_InitStructure.EXTI_Line=EXTI_Line2;//PE2作為鍵盤的行線。檢測(cè)狀態(tài)EXTI_InitStructure.EXTI_M

7、ode=EXTI_Mode_Interrupt;//中斷模式EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;//下降沿觸發(fā)EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);/*置3根鍵盤列掃描線為0,以便在按鍵按下時(shí)產(chǎn)生中斷GPIO_ResetBits(GPIOC,GPIO_Pin_2);GPIO_ResetBits(GPIOC,GPIO_Pin_3);GPIO_ResetBits(GPIOC

8、,GPIO_Pin_5);while(1){GPIO_ResetBits(GPIOC,GPIO_Pin_2);GPIO_ResetBits(GPIOC,GPIO_Pin_3);GPIO_Res

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。