例項:mini2451_led_s (檔名)
裝置:arm實驗板 pc機
編譯環境:keil4 minitools
實驗前準備:
實驗板接通電源(不需要開啟),連線電腦。開啟minitools,按住實驗板最邊上的按鈕同時開機,如顯示沒有連線成功,檢視驅動是否安裝完全,已經安裝驅動的就可以直接顯示
connected
。此時可以從
minitools
中把 . bin
檔案燒錄到實驗板上。
在keil4中新建工程mini2451_led_s
編譯通過無誤後,在工程檔案output中查詢 .bin 檔案。
由實驗板的電路原理可知: 四個
led燈的介面分別是
gpb5
,gpb6
,gpa25
,gpa26
口。當這四個口接低電平時,
led燈點亮,接高電平時,
led熄滅。
查詢實驗板的手冊:
找到對應的gpacon位址,
gpadat
位址,gpa25
,gpa26
口的設定方式 第25,
26位置
0為輸出狀態
找到對應的gpbcon位址,
gpbdat
位址,gpb5
,gpb26
口的設定方式,第10,
11口置
01為輸出狀態,第12,
13口置
01為輸出狀態
下面是原始碼加注釋:
area init, code ,readonly
entry
start
ldr r0,=0x53000000
ldr r1,=0
str r1,[r0] ;關閉看門狗
ldr r0, = 0x56000000 ; gpacon位址賦值
ldr r1, = 0
str r1, [r0]; r1的值依次賦給r0
ldr r0, = 0x56000010 ;gpbcon位址賦值
ldr r1, = 0x1401 ; 0001010000000001 對應的狀態位設定
str r1, [r0]; r1的值依次賦給r0
ldr r0, = 0x5600001c ; 特殊狀態位設定
ldr r1, = 0x0
str r1, [r0];
led_blink
;led on
ldr r0, = 0x56000004 ;gpadat對應位賦值
ldr r1, = 0
str r1, [r0]; gpadat
ldr r0, = 0x56000014 ;gpbdat對應位賦值
ldr r1, = 0x01
str r1, [r0]; gpbdat
end
程式設計需要舉一反三,上面的就是使用
arm組合語言編寫的實驗程式,實現的思路分倆點:
1.根據實驗板手冊設定對應介面i/o狀態
2.根據電路原理圖和實驗板手冊確定對應介面的高低電平的選擇實現對應的現象
ARM邏輯 點亮LED
一.led的工作特性及原理圖 d26為電源指示燈 其他led正極接到vdd3.3v 負極接到4個io口 要點亮led要將負極所接到額io口為低電平 發現gpio 通用輸入輸出 口之後需要去找到控制響應io的暫存器 gpio就是晶元的引腳 作為gpio的這類引腳,功能和特點是可以被程式設計控制它的工作...
ARM裸機之點亮LED
實驗開發版 s5pv210 1 什麼是gpio?general purpose input output 通用輸入 輸出 簡稱為gpio,屬於晶元引腳的一部分。嵌入式系統中常常有數量眾多,但是結構卻比較簡單的外部裝置 電路,對這些裝置 電路有的需要cpu為之提供控制手段,有的則需要被cpu用作輸入訊...
ARM彙編控制led點亮或熄滅
1.檢視開發板原理圖,由原理圖知led2由gpx2 7控制。2.檢視exynos 4412 scp晶元手冊,gpx2控制器位址及含義 由手冊知,gpx2con 位址為0x1100 0c40,gpx2con 7 0x1時,gpx2 7為輸出 示例彙編 led2 初始化ldr r0,0x11000c40...