嵌入式流水燈實驗

2022-10-17 18:18:17 字數 3516 閱讀 4949

一、 實驗目的

熟悉lpc2000系列arm7微控制器的gpio輸入控制。

二、實驗裝置

● 硬體:pc機一台

lpc2131教學實驗開發平台一套

● 軟體:windows 98/xp/2000系統,ads1.2整合開發環境。

三、實驗內容

1. p0.7管腳控制easyarm教學實驗開發平台上的蜂鳴器報警。

2. gpio 輸出實驗-流水燈實驗

實驗預習要求:

lpc2000 gpio管腳的設定和控制。

四、實驗原理

輸出實驗,蜂鳴器控制

在 easyarm2131 開發板上,接有乙個蜂鳴器,由p0.7 控制,通過跳線jp11 選擇連線。

蜂鳴器控制電路如所示。

圖 3-1 蜂鳴器控制電路

如果跳線jp11 選擇蜂鳴器,當p0.7 輸出低電平時,蜂鳴器鳴叫,當p0.7 輸出高電平則停止鳴叫。

程式設定pinsel0 使p0.7 連線gpio,並通過io0dir將其設定為輸出狀態,然後通過io0clr和io0set清零和置位p0.7 口,控制蜂鳴器,流程圖見圖 3-2。

圖 3-2 蜂鳴器控制實驗流程圖

2. gpio 輸出實驗-流水燈實驗

單路led 控制

easyarm2131 開發板上有8 個獨立的led,分別由8 個gpio口控制,現在使用其中一路進行實驗,使用的電路如圖 3-3所示。

圖 3-3 單路led 電路圖

當跳線 jp12 連線led1 時,p1.18 採用灌電流方式驅動led1,當p1.18 輸出低電平時,led1 點亮,當p1.

18 輸出高電平時,led1 熄滅。實驗程式首先設定管腳連線gpio,接著設定p1.18 口為輸出模式,然後通過io1clr和io1set控制p1.

18,驅動led1 的亮滅。

gpio 輸出實驗-流水燈實驗

easyarm2131 開發板上的8 路led(led8~led1)分別可選擇p1[25:18]進行控制,電路如圖 3-4 所示。

圖 3-4 8 路led 控制電路

當跳線jp12 全部選擇led8~led1 後,p1.25~p1.18 分別控制這8 路led,就可以進行流水燈實驗。

流水燈顯示花樣可以通過陣列人為定義,亦可通過一定的演算法計算,程式清單所示為採用人為定義陣列控制顯示花樣的實驗程式,流程圖如圖 3-5 所示。

圖 3-5 流水燈花樣顯示流程圖

五、實驗步驟

實驗內容1步驟

① 啟動ads1.2ide整合開發環境,選擇arm executable image for lpc2131工程模板建立乙個工程beepcon_c。

② 在user組裡編寫主程式**

③將easyarm教學實驗開發平台上的p0.7管腳與beep跳線短接gde臺ngtheng

④選擇project->debug,啟動axd進行jlink**除錯。在工程視窗中選擇debuginram生成目標,然後編譯連線工程(單擊make按鈕)。如圖所示。

選擇 debuginram 生成目標時,編譯連線生成的目標**就是用於在片內ram 除錯。

開啟ads開發環境下的【edit】->【debuginflash settings...】,在」arm fromelf」下output format做如圖選擇,輸出檔案選擇你的檔案同一目錄下,副檔名』.hex』

⑥ 全速執行程式,程式將會在的主函式中停止(因為main函式起始處預設設定有斷點)。

⑦ 單擊context variable圖示按鈕(或者選擇processor views->variables)開啟變數觀察視窗,通過此視窗可以觀察區域性變數和全域性變數。選擇system views->debugger internals 即可開啟lpc2000系列arm7微控制器的片內外暫存器視窗。

⑧ 可以單步執行程式,可以設定/取消斷點;或者全速執行程式,停止程式執行,觀察變數的值,判斷蜂鳴器控制是否正確。

在flash 中除錯

在工程視窗中選擇 debuginflash 生成目標,然後編譯連線工程(單擊make 按鈕)。

選擇 debuginflash 生成目標時,編譯連線生成的目標**就是用於在片內flash 除錯。

編譯連線通過後,按鍵盤的f5 鍵,啟動axd進行除錯。注意,由於程式要燒寫到片內flash,預設選項在每次裝載flash 位址的除錯檔案時,將會擦除flash 並****到flash 中。

離線執行

使用 debuginflash 生成目標,並進行除錯後(使用jlink **器),程式即燒寫到片內flash 中。將jlink 電源斷開,重新上電,程式將離線執行;

實驗內容2實驗步驟

① 啟動ads1.2ide整合開發環境,選擇arm executable image for lpc2131工程模板建立乙個工程leddisp_c。

② 在user組裡編寫主程式**

③ 選用debuginram生成目標,然後編譯鏈結工程。

④ 將easyarm教學實驗開發平台上的p1.[18:25]管腳對應與led[1:8]跳線短接gde臺ngtheng

⑤ 選擇project->debug,啟動axd進行jlink**除錯。

⑥ 全速執行程式,程式將會在的主函式中停止。

⑦ 單擊context variable圖示按鈕(或者選擇processor views->variables)開啟變數觀察視窗,通過此視窗可以觀察區域性變數和全域性變數。選擇system views->debugger internals 即可開啟lpc2000系列arm7微控制器的片內外暫存器視窗。

⑧ 可以單步執行程式,可以設定/取消斷點;或者全速執行程式,停止程式執行,觀察變數的值,判斷led1~led8控制是否正確。

(3)實驗參考程式

gpio輸出控制實驗的參考程式見3-1。

程式清單1 gpio輸出控制實驗1的參考程式

* 檔名:

* 功能:蜂鳴器控制。對蜂鳴器進行控制,採用軟體延時方法。

使用i/o口直接控制,採用灌電流方式。

* 說明:將p0.7與beep短接。

#include ""

#define beepcon 1<<7p0.7引腳控制beep,低電平蜂鳴

* 名稱:delayns()

* 功能:長軟體延時。

* 入口引數:dly 延時引數,值越大,延時越久

* 出口引數:無

void delayns(uint32 dly)

}* 名稱:main()

* 功能:控制蜂鳴器蜂鳴。

int main(void)

return(0);

}程式清單 2

#include ""

/* led8~led1 8 個led 分別由p1.25~p1.18 控制 */

const uint32 leds8 = (0xff << 18); // p1[25:18]控制led8~led1,低電平點亮

函式名稱:delayns()

** 函式功能:長軟體延時

** 入口引數:dly 延時引數,值越大,延時越久

** 出口引數:無

void delayns (uint32 dly)

嵌入式實驗

1 實驗目的 1 學會qt e在arm裝置上的移植方法與步驟 2 學習qt中訊號與槽的程式設計 3 掌握qt e在arm裝置上的常用輸入輸出裝置移植方法。2 實驗內容 1 移植qt e到up arm2410cl上 2 在qt e中新增觸控螢幕滑鼠等裝置支援 3 在qt designer下編寫程式,a...

嵌入式 實驗三

嵌入式處理器實驗 指導書 掌握pcb檔案的新建和pcb基本設定 介紹如如何新建pcb檔案以及載入封裝圖。通過實驗聯絡,掌握實驗內容。1.實驗三新建pcb檔案以及pcb基本設定 2.實驗目的 掌握pcb檔案的新建以及pcb基本設定 3.實驗要求 通過實驗,達到實驗目的。4.實驗原理及內容 在prote...

嵌入式系統實驗指導書 熟悉嵌入式Linux開發環境

linux虛擬機器ip 192.168.0.12 windows主機ip 192.168.0.45 目標機 實驗箱 ip 192.168.0.121 root arm cd home root zxt home mkdir hello root zxt home cd hello 在 linux 下...