![嵌入式系統(tǒng)GPIO 輸入輸出實驗報告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/a405db2f-2800-4dcc-904a-f4b202a1adaf/a405db2f-2800-4dcc-904a-f4b202a1adaf1.gif)
![嵌入式系統(tǒng)GPIO 輸入輸出實驗報告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/a405db2f-2800-4dcc-904a-f4b202a1adaf/a405db2f-2800-4dcc-904a-f4b202a1adaf2.gif)
![嵌入式系統(tǒng)GPIO 輸入輸出實驗報告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/a405db2f-2800-4dcc-904a-f4b202a1adaf/a405db2f-2800-4dcc-904a-f4b202a1adaf3.gif)
![嵌入式系統(tǒng)GPIO 輸入輸出實驗報告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/a405db2f-2800-4dcc-904a-f4b202a1adaf/a405db2f-2800-4dcc-904a-f4b202a1adaf4.gif)
![嵌入式系統(tǒng)GPIO 輸入輸出實驗報告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/5/a405db2f-2800-4dcc-904a-f4b202a1adaf/a405db2f-2800-4dcc-904a-f4b202a1adaf5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、試驗四 GPIO 輸入試驗一、試驗目的1、能夠使用GPIO的輸入模式讀取開關(guān)信號。2、把握GPIO相關(guān)寄存器的用法和設置。3、把握用C語言編寫程序把握GPIO。二、試驗環(huán)境 PC機 一臺 ADS 1.2集成開發(fā)環(huán)境 一套EasyARM2131教學試驗平臺 一套 三、試驗內(nèi)容1.試驗通過跳線 JP8 連接KEY1與P0.16,程序檢測按鍵KEY1 的狀態(tài),把握蜂鳴器BEEP 的鳴叫。按下KEY1,蜂鳴器鳴叫,松開后停止蜂鳴。(調(diào)通試驗后,改為KEY3鍵進行輸入)。 2.當檢測到KEY1有按鍵輸入時點亮發(fā)光二極管LED4并把握蜂鳴器響,軟件延時后關(guān)掉發(fā)光管并停止蜂鳴,然后循環(huán)這一過程直到檢測按鍵沒
2、有輸入。(鍵輸入改為鍵KEY4,發(fā)光管改為LED6)。3.結(jié)合試驗三,當按下按鍵Key1時,啟動跑馬燈程序并把握蜂鳴器響,軟件延時后關(guān)掉發(fā)光管并停止蜂鳴,然后循環(huán)這一過程直到檢測按鍵再次按下。四、試驗原理當P0 口用于GPIO輸入時(如按鍵輸入),內(nèi)部無上拉電阻,需要加上拉電阻,電路圖參見圖 4.2。進行 GPIO 輸入試驗時,先要設置IODIR 使接口線成為輸入方式,然后讀取IOPIN 的值即可。圖 4.2按鍵電路原理圖試驗通過跳線 JP8 連接KEY1_P0.16,程序檢測按鍵KEY1 的狀態(tài),把握蜂鳴器BEEP 的鳴叫。按下KEY1,蜂鳴器鳴叫,松開后停止蜂鳴。在這個試驗中,需要將按鍵K
3、EY1 輸入口P0.16 設為輸入口而蜂鳴器把握口P0.7 設置為輸出口。蜂鳴器電路如圖 4.3 所示,當跳線JP6 連接蜂鳴器時,P0.7 把握蜂鳴器,低電平常蜂鳴器鳴叫。LED燈電路如圖4.4所示,低電平常燈亮。圖 4.3 蜂鳴器把握電路圖 4.4 LED 把握電路程序首先設置管腳連接寄存器PINSEL0 和PINSEL1,設置P0.16 為輸入,設置P0.7,P1.21 為輸出。然后檢測端口P0.16 的電平,對P0.7, P1.21進行相應的把握,流程圖如圖 4.5 所示,實現(xiàn)程序見程序清單 4.1。圖 4.5 按鍵輸入試驗流程圖5、 試驗步驟、源代碼及調(diào)試結(jié)果內(nèi)容1試驗步驟 啟動AD
4、S1.2IDE集成開發(fā)環(huán)境,選擇ARM Executable Image for lpc2131工程模板建立一個工程BEEP_key。 在user組里編寫主程序代碼main.c。 選用DebugInFLASH生成目標,然后編譯鏈接工程。 將EasyARM教學試驗開發(fā)平臺上的相應管腳跳線短接gde臺ngtheng 444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444。 選擇Project->Debug,啟動AXD進行JLINK仿真調(diào)試。 全
5、速運行程序,程序?qū)趍ain.c的主函數(shù)中停止。如下圖所示: 單擊Context Variable圖標按鈕(或者選擇Processor Views->Variables)打開變量觀看窗口,通過此窗口可以觀看局部變量和全局變量。選擇System Views->Debugger Internals 即可打開LPC2000系列ARM7微把握器的片內(nèi)外寄存器窗口。通過變量窗口可以觀看變量BEEP、KEY1等的值和ARM7微把握器的片內(nèi)外寄存器窗口。如下圖所示: 可以單步運行程序,先按下Key1,觀看IO0PIN寄存器的值,然后斷開Key1,觀看IO0PIN寄存器的值??梢栽O置/取消斷點;
6、或者全速運行程序,停止程序運行,觀看變量的值,推斷蜂鳴器把握是否正確。如下圖所示: 圖4.6 未按下Key1時IO0PIN的值 圖4.7 按下Key1時IO0PIN的值 由上兩圖可知,當按下Key1時,IO0PIN寄存器的第16位由1變?yōu)?(F變?yōu)镋),key1與P0.16相連,按下Key1時,P0.16管腳輸出電平由1變?yōu)?,寄存器值變化,蜂鳴器響,說明把握是正確的?,F(xiàn)象描述:按下KEY1,蜂鳴器鳴叫,松開后停止蜂鳴。源代碼:#include "config.h"const uint32 BEEP = 1 << 7; / P0.7 把握蜂鳴器const uin
7、t32 KEY1 = 1 << 16; / P0.16 連接KEY1 (改為KEY3時,只需“const uint32 KEY1 = 1 << 16”改為“const uint32 KEY3 = 1 << 18”,其余不變。)/* 函數(shù)名稱:main()* 函數(shù)功能:GPIO 輸入試驗測試。* 檢測按鍵KEY1。KEY1 按下,蜂鳴器蜂鳴,松開后停止蜂鳴。* 跳線說明:把 JP8 的KEY1 跳線短接,JP11 連接蜂鳴器。*/int main (void) PINSEL0 = 0x00000000; / 全部管腳連接GPIOPINSEL1 = 0x0000
8、0000;IO0DIR = BEEP; / 蜂鳴器把握口輸出,其余輸入while (1) if (IO0PIN & KEY1) = 0) IO0CLR = BEEP; / 假如KEY1 按下,蜂鳴器鳴叫else IO0SET = BEEP; / 松開則停止蜂鳴return 0;內(nèi)容二試驗步驟 啟動ADS1.2IDE集成開發(fā)環(huán)境,選擇ARM Executable Image for lpc2131工程模板建立一個工程BEEP_key。 在user組里編寫主程序代碼main.c。 選用DebugInFLASH生成目標,然后編譯鏈接工程。 將EasyARM教學試驗開發(fā)平臺上的相應管腳跳線短接
9、gde臺ngtheng 777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777。 選擇Project->Debug,啟動AXD進行JLINK仿真調(diào)試。 全速運行程序,程序?qū)趍ain.c的主函數(shù)中停止。如下圖所示: 單擊Context Variable圖標按鈕(或者選擇Processor Views->Variables)打開變量觀看窗口,通過此窗口可以觀看局部變量和全局變量。選擇System Views->Debugger
10、Internals 即可打開LPC2000系列ARM7微把握器的片內(nèi)外寄存器窗口。通過變量窗口可以觀看變量BEEP、KEY1等全局變量、i等本地變量和ARM7微把握器的片內(nèi)外寄存器窗口。如下圖所示: 左圖所示為ARM7微把握器的片內(nèi)寄存器窗口。 圖4.9 本地變量 圖4.8 全局變量 可以單步運行程序,先按下Key1,觀看IO0PIN寄存器的值,然后斷開Key1,觀看IO0PIN寄存器的值??梢栽O置/取消斷點;或者全速運行程序,停止程序運行,觀看變量的值,推斷蜂鳴器把握是否正確。如下圖所示:.圖4.10 未按下KEY1時IO0PIN的值 圖4.11 按下KEY1后IO0PIN的值對比圖4.10
11、和4.11,發(fā)覺按下KEY1后,IO0PIN寄存器的第16位由1變?yōu)?;而KEY1對應管腳P0.16,當按下時輸入低電平,這說明KEY1的把握是正確的。 上圖所示為運行 “IO0CLR = BEEP”后IO0PIN寄存器的值,與圖4.10對比,發(fā)覺第8位由1變?yōu)?,BEEP對應P0.7管腳,這說明BEEP的把握是對的。現(xiàn)象描述:當按下KEY1時,蜂鳴器鳴響,LED4亮;當松開KEY1后,蜂鳴器靜音,LED4滅。源代碼如下:#include "config.h"const uint32 BEEP = 1 << 7; / P0.7 把握蜂鳴器const uint32
12、 KEY1 = 1 << 16; / P0.16 連接KEY1 (改為KEY4按鍵時,只需把上句代碼改為“const uint32 KEY4=1<<19”,其余不變)const uint32 LEDS4= 1 << 21; / P121把握LED4,低電平點亮(改為LED6時,只需把上句代碼改為“const uint32 LED6=1<<23”,其余不變。)/* 函數(shù)名稱:main()* 函數(shù)功能:GPIO 輸入試驗測試。* 檢測按鍵KEY1。KEY1 按下,蜂鳴器蜂鳴,松開后停止蜂鳴。* 跳線說明:把 JP8 的KEY1 跳線短接,JP11 連
13、接蜂鳴器。*/int main (void) Uint32 i; PINSEL0 = 0x00000000; / 全部管腳連接GPIOPINSEL1 = 0x00000000;IO0DIR = BEEP; / 蜂鳴器把握口輸出0IO1DIR = LEDS4; / 設置LED4 燈亮while (1) if (IO0PIN & KEY1) = 0)for(i=0; i<1000; i+); / 軟件延時IO0CLR = BEEP; / 假如KEY1 按下,蜂鳴器鳴叫IO1DCLR = LEDS4; / 設置LED4 燈亮else IO0SET = BEEP; / 松開則停止蜂鳴IO
14、1SET= LEDS4; / 設置LED4 燈滅for(i=0; i<1000; i+); / 軟件延時return 0;內(nèi)容三試驗步驟 啟動ADS1.2IDE集成開發(fā)環(huán)境,選擇ARM Executable Image for lpc2131工程模板建立一個工程BEEP_key。 在user組里編寫主程序代碼main.c。 選用DebugInFLASH生成目標,然后編譯鏈接工程。 將EasyARM教學試驗開發(fā)平臺上的相應管腳跳線短接gde臺ngtheng 1111111111111111111111111111111111111111111111111111111111111111111
15、11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111。 選擇Project->Debug,啟動AXD進行JLINK仿真調(diào)試。 全速運行程序,程序?qū)趍ain.c的主函數(shù)中停止。如下圖所示: 單擊Context Variable圖標按鈕(或者選擇Processor Views->Variables)打開變量觀看窗口,通過此窗口可以觀看局部變量和全局變量。選擇Sys
16、tem Views->Debugger Internals 即可打開LPC2000系列ARM7微把握器的片內(nèi)外寄存器窗口。通過變量窗口可以觀看變量BEEP、KEY1等的值和ARM7微把握器的片內(nèi)外寄存器窗口。如下圖所示: 可以單步運行程序,先按下Key1,觀看IO0PIN寄存器的值,然后斷開Key1,觀看IO0PIN寄存器的值??梢栽O置/取消斷點;或者全速運行程序,停止程序運行,觀看變量的值,推斷蜂鳴器把握是否正確。如下圖所示: 圖4.12未按下Key1時IO0PIN的值 圖4.13按下Key1時IO0PIN的值 由上兩圖可知,當按下Key1時,IO0PIN寄存器的第16位由1變?yōu)?(F
17、變?yōu)镋),key1與P0.16相連,按下Key1時,P0.16管腳輸出電平由1變?yōu)?,寄存器值變化,蜂鳴器響,流水燈亮,說明把握是正確的?,F(xiàn)象描述:當按下按鍵KEY1時,蜂鳴器鳴響,流水燈亮;松開后,蜂鳴器靜音,流水燈滅。源代碼如下:#include "config.h"const uint32 BEEP = 1 << 7; / P0.7 把握蜂鳴器const uint32 KEY = 1 << 16; / P0.16 連接KEY1const uint32 LEDS8 = 0xFF << 18; / P125:18把握LED8LED1,低
18、電平點亮void DelayNS(uint32 dly) uint32 i; for(; dly>0; dly-) for(i=0; i<50000; i+); /* 函數(shù)名稱:liushuideng()* 函數(shù)功能:流水燈顯示試驗。* 調(diào)試說明:連接跳線 JP12 至LED8LED1。*/* 流水燈花樣,低電平點亮,留意調(diào)用時候用了取反操作 */const uint32 LED_TBL = 0x00, 0xFF, / 全部熄滅后,再全部點亮0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, / 依次逐個點亮0x01, 0x03, 0x0
19、7, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, / 依次逐個疊加0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, / 依次逐個遞減0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81, / 兩個靠攏后分開0x81, 0xC3, 0xE7, 0xFF, 0xFF, 0xE7, 0xC3, 0x81 / 從兩邊疊加后遞減;int liushuideng(void) uint8 i;PINSEL1 = 0x00000000; / 設置管腳連接GPIOIO1DIR = LEDS8; / 設置LED 把握口為輸出while (1) for
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 水泥沙子采購合同
- 授權(quán)經(jīng)銷合同協(xié)議
- 農(nóng)業(yè)科技園區(qū)綜合開發(fā)合同
- 短期租賃服務意外免責協(xié)議
- 網(wǎng)絡信息技術(shù)支持協(xié)議
- 商場裝修合同與商場裝修合同
- 打井承包合同
- 手房轉(zhuǎn)讓買賣協(xié)議
- 新版不定期勞動合同書(33篇)
- 瓦工貼磚施工合同
- 城市綠化與生態(tài)環(huán)境改善
- 2024-2025學年中小學校第二學期師德師風工作計劃:必看!新學期師德師風建設秘籍大公開(附2月-7月工作安排表)
- 《急性心力衰竭的急救處理》課件
- 2025年高壓電工作業(yè)考試國家總局題庫及答案(共280題)
- 2024年中國養(yǎng)老產(chǎn)業(yè)商學研究報告-銀發(fā)經(jīng)濟專題
- 印刷公司生產(chǎn)部2025年年度工作總結(jié)及2025年工作計劃
- 2025年中考語文一輪復習:八年級下冊知識點梳理
- 小班孵雞蛋課程設計
- 糖尿病的麻醉管理
- 高教版2023年中職教科書《語文》(基礎模塊)下冊教案全冊
- word上機操作題
評論
0/150
提交評論