1. 程式人生 > >#ARM開發# 點亮LED和操作蜂鳴器

#ARM開發# 點亮LED和操作蜂鳴器

例項:Mini2451_Led_s  (檔名)

裝置:ARM實驗板 PC

編譯環境:KEIL4   MiniTools

實驗前準備:

  實驗板接通電源(不需要開啟),連線電腦。開啟MiniTools,按住實驗板最邊上的按鈕同時開機,如顯示沒有連線成功,檢視驅動是否安裝完全,已經安裝驅動的就可以直接顯示connected。此時可以從Minitools中把 . bin  檔案燒錄到實驗板上。


KEIL4中新建工程Mini2451_Led_s 


編譯通過無誤後,在工程檔案output中查詢 .bin 檔案。

由實驗板的電路原理可知: 四個LED燈的介面分別是GPB5GPB6

GPA25GPA26口。當這四個口接低電平時,LED燈點亮,接高電平時,LED熄滅。


查詢實驗板的手冊:


找到對應的GPACON地址,GPADAT地址,GPA25GPA26口的設定方式 第2526位置0為輸出狀態



找到對應的GPBCON地址,GPBDAT地址,GPB5GPB26口的設定方式,第1011口置01為輸出狀態,第1213口置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.根據電路原理圖和實驗板手冊確定對應介面的高低電平的選擇實現對應的現象