![嵌入式流水燈實(shí)驗(yàn)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/6fe351d0-6f9d-4d10-af33-8e110cc2f88e/6fe351d0-6f9d-4d10-af33-8e110cc2f88e1.gif)
![嵌入式流水燈實(shí)驗(yàn)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/6fe351d0-6f9d-4d10-af33-8e110cc2f88e/6fe351d0-6f9d-4d10-af33-8e110cc2f88e2.gif)
![嵌入式流水燈實(shí)驗(yàn)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/6fe351d0-6f9d-4d10-af33-8e110cc2f88e/6fe351d0-6f9d-4d10-af33-8e110cc2f88e3.gif)
![嵌入式流水燈實(shí)驗(yàn)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/6fe351d0-6f9d-4d10-af33-8e110cc2f88e/6fe351d0-6f9d-4d10-af33-8e110cc2f88e4.gif)
![嵌入式流水燈實(shí)驗(yàn)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/23/6fe351d0-6f9d-4d10-af33-8e110cc2f88e/6fe351d0-6f9d-4d10-af33-8e110cc2f88e5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)驗(yàn)三 GPIO輸出控制實(shí)驗(yàn)一、 實(shí)驗(yàn)?zāi)康氖煜PC2000系列ARM7微控制器的GPIO輸入控制。二、實(shí)驗(yàn)設(shè)備l 硬件:PC機(jī) 一臺(tái)LPC2131教學(xué)實(shí)驗(yàn)開(kāi)發(fā)平臺(tái) 一套l 軟件:Windows 98/XP/2000系統(tǒng),ADS1.2集成開(kāi)發(fā)環(huán)境。三、實(shí)驗(yàn)內(nèi)容1. P0.7管腳控制EasyARM教學(xué)實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)上的蜂鳴器報(bào)警。2. GPIO 輸出實(shí)驗(yàn)流水燈實(shí)驗(yàn)實(shí)驗(yàn)預(yù)習(xí)要求:LPC2000 GPIO管腳的設(shè)置和控制。四、實(shí)驗(yàn)原理1.GPIO 輸出實(shí)驗(yàn),蜂鳴器控制在 EasyARM2131 開(kāi)發(fā)板上,接有一個(gè)蜂鳴器,由P0.7 控制,通過(guò)跳線JP11 選擇連接。蜂鳴器控制電路如所示。圖 3-1 蜂
2、鳴器控制電路如果跳線JP11 選擇蜂鳴器,當(dāng)P0.7 輸出低電平時(shí),蜂鳴器鳴叫,當(dāng)P0.7 輸出高電平則停止鳴叫。程序設(shè)置PINSEL0 使P0.7 連接GPIO,并通過(guò)IO0DIR將其設(shè)置為輸出狀態(tài),然后通過(guò)IO0CLR和IO0SET清零和置位P0.7 口,控制蜂鳴器,流程圖見(jiàn)圖 3-2。圖 3-2 蜂鳴器控制實(shí)驗(yàn)流程圖2 GPIO 輸出實(shí)驗(yàn)流水燈實(shí)驗(yàn)單路LED 控制EasyARM2131 開(kāi)發(fā)板上有8 個(gè)獨(dú)立的LED,分別由8 個(gè)GPIO口控制,現(xiàn)在使用其中一路進(jìn)行實(shí)驗(yàn),使用的電路如圖 3-3所示。圖 3-3 單路LED 電路圖當(dāng)跳線 JP12 連接LED1 時(shí),P1.18 采用灌電流方式
3、驅(qū)動(dòng)LED1,當(dāng)P1.18 輸出低電平時(shí),LED1 點(diǎn)亮,當(dāng)P1.18 輸出高電平時(shí),LED1 熄滅。實(shí)驗(yàn)程序首先設(shè)置管腳連接GPIO,接著設(shè)置P1.18 口為輸出模式,然后通過(guò)IO1CLR和IO1SET控制P1.18,驅(qū)動(dòng)LED1 的亮滅。GPIO 輸出實(shí)驗(yàn)流水燈實(shí)驗(yàn)EasyARM2131 開(kāi)發(fā)板上的8 路LED(LED8LED1)分別可選擇P125:18進(jìn)行控制,電路如圖 3-4 所示。圖 3-4 8 路LED 控制電路當(dāng)跳線JP12 全部選擇LED8LED1 后,P1.25P1.18 分別控制這8 路LED,就可以進(jìn)行流水燈實(shí)驗(yàn)。流水燈顯示花樣可以通過(guò)數(shù)組人為定義,亦可通過(guò)一定的算法計(jì)算
4、,程序清單所示為采用人為定義數(shù)組控制顯示花樣的實(shí)驗(yàn)程序,流程圖如圖 3-5 所示。圖 3-5 流水燈花樣顯示流程圖五、實(shí)驗(yàn)步驟實(shí)驗(yàn)內(nèi)容1步驟 啟動(dòng)ADS1.2IDE集成開(kāi)發(fā)環(huán)境,選擇ARM Executable Image for lpc2131工程模板建立一個(gè)工程BeepCon_C。 在user組里編寫主程序代碼main.c。將EasyARM教學(xué)實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)上的P0.7管腳與Beep跳線短接gde臺(tái)ngtheng 444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444
5、444444444444。 選擇Project->Debug,啟動(dòng)AXD進(jìn)行JLINK仿真調(diào)試。在工程窗口中選擇DebugInRAM生成目標(biāo),然后編譯連接工程(單擊Make按鈕)。如圖所示。選擇 DebugInRAM 生成目標(biāo)時(shí),編譯連接生成的目標(biāo)代碼就是用于在片內(nèi)RAM 調(diào)試。打開(kāi)ADS開(kāi)發(fā)環(huán)境下的【Edit】->【DebugInFLASH Settings.】,在”ARM fromELF”下Output format做如圖選擇,輸出文件選擇你的文件同一目錄下,擴(kuò)展名.HEX 全速運(yùn)行程序,程序?qū)?huì)在main.c的主函數(shù)中停止(因?yàn)閙ain函數(shù)起始處默認(rèn)設(shè)置有斷點(diǎn))。 單擊Con
6、text Variable圖標(biāo)按鈕(或者選擇Processor Views->Variables)打開(kāi)變量觀察窗口,通過(guò)此窗口可以觀察局部變量和全局變量。選擇System Views->Debugger Internals 即可打開(kāi)LPC2000系列ARM7微控制器的片內(nèi)外寄存器窗口。 可以單步運(yùn)行程序,可以設(shè)置/取消斷點(diǎn);或者全速運(yùn)行程序,停止程序運(yùn)行,觀察變量的值,判斷蜂鳴器控制是否正確。在FLASH 中調(diào)試在工程窗口中選擇 DebugInFLASH 生成目標(biāo),然后編譯連接工程(單擊Make 按鈕)。選擇 DebugInFLASH 生成目標(biāo)時(shí),編譯連接生成的目標(biāo)代碼就是用于在片
7、內(nèi)FLASH 調(diào)試。編譯連接通過(guò)后,按鍵盤的F5 鍵,啟動(dòng)AXD進(jìn)行調(diào)試。注意,由于程序要燒寫到片內(nèi)FLASH,默認(rèn)選項(xiàng)在每次裝載FLASH 地址的調(diào)試文件時(shí),將會(huì)擦除FLASH 并下載代碼到FLASH 中。脫機(jī)運(yùn)行使用 DebugInFLASH 生成目標(biāo),并進(jìn)行調(diào)試后(使用JLINK 仿真器),程序即燒寫到片內(nèi)FLASH 中。將JLINK 電源斷開(kāi),重新上電,程序?qū)⒚摍C(jī)運(yùn)行;實(shí)驗(yàn)內(nèi)容2實(shí)驗(yàn)步驟 啟動(dòng)ADS1.2IDE集成開(kāi)發(fā)環(huán)境,選擇ARM Executable Image for lpc2131工程模板建立一個(gè)工程LedDisp_C。 在user組里編寫主程序代碼main.c。 選用Deb
8、ugInRam生成目標(biāo),然后編譯鏈接工程。 將EasyARM教學(xué)實(shí)驗(yàn)開(kāi)發(fā)平臺(tái)上的P1.18:25管腳對(duì)應(yīng)與LED1:8跳線短接gde臺(tái)ngtheng 666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666。 選擇Project->Debug,啟動(dòng)AXD進(jìn)行JLINK仿真調(diào)試。 全速運(yùn)行程序,程序?qū)?huì)在main.c的主函數(shù)中停止。 單擊Context Variable圖標(biāo)按鈕(或者選擇Processor Views->Variables
9、)打開(kāi)變量觀察窗口,通過(guò)此窗口可以觀察局部變量和全局變量。選擇System Views->Debugger Internals 即可打開(kāi)LPC2000系列ARM7微控制器的片內(nèi)外寄存器窗口。 可以單步運(yùn)行程序,可以設(shè)置/取消斷點(diǎn);或者全速運(yùn)行程序,停止程序運(yùn)行,觀察變量的值,判斷LED1LED8控制是否正確。(3)實(shí)驗(yàn)參考程序GPIO輸出控制實(shí)驗(yàn)的參考程序見(jiàn)3-1。程序清單1 Error! No text of specified style in document.GPIO輸出控制實(shí)驗(yàn)1的參考程序/* 文件名:main.c* 功 能:蜂鳴器控制。對(duì)蜂鳴器進(jìn)行控制,采用軟件延時(shí)方法。*
10、使用I/O口直接控制,采用灌電流方式。* 說(shuō) 明:將P0.7與Beep短接。*/#include "config.h"#define BEEPCON 1<<7/ P0.7引腳控制Beep,低電平蜂鳴/* 名 稱:DelayNS()* 功 能:長(zhǎng)軟件延時(shí)。* 入口參數(shù):dly延時(shí)參數(shù),值越大,延時(shí)越久* 出口參數(shù):無(wú)*/void DelayNS(uint32 dly) uint32 i; for(; dly>0; dly-) for(i=0; i<5000; i+); /* 名 稱:main()* 功 能:控制蜂鳴器蜂鳴。*/int main(void
11、) PINSEL0 = 0x00000000; / 設(shè)置管腳連接GPIO IO0DIR = BEEPCON; / 設(shè)置I/O為輸出 while(1) IO0SET = BEEPCON;/ BEEPCON = 1 DelayNS(200); IO0CLR = BEEPCON;/ BEEPCON = 0 DelayNS(200); return(0);程序清單 2#include "config.h"/* LED8LED1 8 個(gè)LED 分別由P1.25P1.18 控制 */const uint32 LEDS8 = (0xFF << 18); / P125:18控制
12、LED8LED1,低電平點(diǎn)亮/* 函數(shù)名稱:DelayNS()* 函數(shù)功能:長(zhǎng)軟件延時(shí)* 入口參數(shù):dly 延時(shí)參數(shù),值越大,延時(shí)越久* 出口參數(shù):無(wú)*/void DelayNS (uint32 dly) uint32 i;for ( ; dly>0; dly-)for (i=0; i<50000; i+);/* 函數(shù)名稱:main()* 函數(shù)功能:流水燈顯示實(shí)驗(yàn)。* 調(diào)試說(shuō)明:連接跳線 JP12 至LED8LED1。*/* 流水燈花樣,低電平點(diǎn)亮,注意調(diào)用時(shí)候用了取反操作 */const uint32 LED_TBL = 0x00, 0xFF, / 全部熄滅后,再全部點(diǎn)亮0x01
13、, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, / 依次逐個(gè)點(diǎn)亮0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, / 依次逐個(gè)疊加0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, / 依次逐個(gè)遞減0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81, / 兩個(gè)靠攏后分開(kāi)0x81, 0xC3, 0xE7, 0xFF, 0xFF, 0xE7, 0xC3, 0x81 / 從兩邊疊加后遞減;int main (void) uint8
14、 i;PINSEL1 = 0x00000000; / 設(shè)置管腳連接GPIOIO1DIR = LEDS8; / 設(shè)置LED 控制口為輸出while (1) for (i=0; i<42; i+) /* 流水燈花樣顯示 */IO1SET = (LED_TBLi) << 18);DelayNS(20);IO1CLR = (LED_TBLi) << 18);DelayNS(20);return 0;參考程序3/* 文 件 名:main.c* 功 能:LED顯示控制。* 通過(guò)GPIO直接控制8個(gè)LED產(chǎn)生流水燈效果* 說(shuō) 明:P1.18:25管腳對(duì)應(yīng)與LED1:8跳線短接,
15、把P0.16與KEY跳線短接,* 使用KEY1鍵來(lái)操作流水燈的運(yùn)行方向*/#include "config.h"const uint32 LEDS8 = 0xFF << 18;/P125:18控制LED1LED8,低電平點(diǎn)亮const uint32 KEY = 1 << 16;/P0.16連接KEY1const uint32 DISP_TAB10 = 0x01, 0x02, 0x04, 0x08,0x10,0x20,0x40,0x80, 0xff, 0xff;const uint32 DISP_TAB210 = 0x80 , 0x40, 0x20,
16、0x10, 0x08,0x04, 0x02,0x01, 0xff, 0xff;/ 兩個(gè) LED 圖案 碼表/* 名 稱:DelayNS()* 功 能:長(zhǎng)軟件延時(shí)* 入口參數(shù):dly-延時(shí)參數(shù),值越大,延時(shí)越久* 出口參數(shù):無(wú)*/void DelayNS(uint32 dly) uint32 i; for(; dly>0; dly-) for(i=0; i<5000; i+); /* 名 稱:main()* 功 能:根據(jù)表DISP_TAB來(lái)控制LED顯示。*/int main(void) uint8 i; PINSEL0 = 0x00;/ P015:0 用作GPIOPINSEL1 =
17、 0x00;/ P031:16 用作GPIO PINSEL2 = PINSEL2 & (0x08);/ P125:16連接GPIOIO1DIR = LEDS8;/ 設(shè)置P125:18為輸出口,控制LED7:0 while(1) if(IO0PIN&KEY)!=0) / 測(cè)試KEY 按鍵 for(i=0; i<8; i+)IO1CLR = DISP_TABi<<18;DelayNS(50);IO1SET = 0xffffffff; DelayNS(10); if(IO0PIN&KEY)=0) / 測(cè)試KEY 按鍵 for(i=0; i<8; i+)
18、IO1CLR = DISP_TAB2i<<18;DelayNS(50);IO1SET = 0xffffffff; DelayNS(10); return(0);參考程序 41./* 文件名:LEDCON.C* 功能:LED閃爍控制。對(duì)發(fā)光二極管LED4進(jìn)行控制,采用軟件延時(shí)方法。* 使用I/O口直接控制LED,采用灌電流方式。* 說(shuō)明:將跳線器JP4_LED4短接。*/#include "config.h"#define LEDCON0x02000000/* P0.25引腳控制LED4,低電平點(diǎn)亮 */* 名稱:DelayNS()* 功能:長(zhǎng)軟件延時(shí)* 入口參數(shù):dly延時(shí)參數(shù),值越大,延時(shí)越久* 出口參數(shù):無(wú)*/void DelayNS(uint32 dly) uint32 i; for(; dly>0; dly-) for(i=0; i<50000; i+); /* 名稱:main()* 功能:控制LED閃爍*/int main(void) PINSEL0 = 0x00000000;/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度幼兒園兒童安全教育教材及課程開(kāi)發(fā)協(xié)議
- 2025年度城市綜合體物業(yè)管理服務(wù)合同協(xié)議范本
- 2025年產(chǎn)品質(zhì)量保證協(xié)議文本
- 2025年倉(cāng)儲(chǔ)場(chǎng)地續(xù)租合同樣本
- 2025年市場(chǎng)擴(kuò)張戰(zhàn)略策劃咨詢協(xié)議
- 市場(chǎng)調(diào)研與分析服務(wù)框架協(xié)議
- 2025年飲料酒項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模范
- 2025年中藥材市場(chǎng)分析與采購(gòu)服務(wù)合同
- 2025年滌綸短纖項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模范
- 2025年鼻毛修剪器項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模稿
- 醫(yī)院感染的中心靜脈導(dǎo)管相關(guān)血流感染預(yù)防
- 2025版茅臺(tái)酒出口業(yè)務(wù)代理及銷售合同模板4篇
- 新版《醫(yī)療器械經(jīng)營(yíng)質(zhì)量管理規(guī)范》(2024)培訓(xùn)試題及答案
- 2025年人教版數(shù)學(xué)五年級(jí)下冊(cè)教學(xué)計(jì)劃(含進(jìn)度表)
- 北師大版七年級(jí)上冊(cè)數(shù)學(xué)期末考試試題及答案
- 初中信息技術(shù)課堂中的項(xiàng)目式學(xué)習(xí)實(shí)踐研究結(jié)題報(bào)告
- 《工業(yè)廢水臭氧催化氧化深度處理技術(shù)規(guī)程》(T-SDEPI 030-2022)
- 2025年初級(jí)社會(huì)工作者綜合能力全國(guó)考試題庫(kù)(含答案)
- 復(fù)工復(fù)產(chǎn)安全培訓(xùn)考試題
- 最新短視頻運(yùn)營(yíng)績(jī)效考核表KPI(優(yōu)選.)
- 設(shè)備基礎(chǔ)隔振設(shè)計(jì)探討
評(píng)論
0/150
提交評(píng)論