新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > arm匯編實現的跑馬燈實驗

        arm匯編實現的跑馬燈實驗

        作者: 時間:2016-11-11 來源:網絡 收藏
        平臺:fs2410

        arm匯編編寫的跑馬燈單文件可以很好運行,不需要包其他的頭文件和一些初始化函數。

        本文引用地址:http://www.104case.com/article/201611/316933.htm

        GPFCON EQU 0x56000050
        GPFDAT EQU 0x56000054
        GPFUP EQU 0x56000058
        EXPORT LEDTEST
        AREA LEDTESTASM,CODE,READONLY ;定義了一個代碼段,段名為LEDTESTASM,屬性只讀

        LEDTEST
        ;設置GPF4-GPF7為output
        ldr r0,=GPFCON
        ldr r1,=0x5500
        str r1,[r0]

        ;禁止GPF4-GPF7端口的上拉電阻
        ldr r0,=GPFUP
        ldr r1,=0xff00
        str r1,[r0]

        ;將數據端口F的數據寄存器的地址賦值給寄存器r2
        ldr r2,=GPFDAT

        ;跑馬燈循環
        ledloop1
        ldr r1,=0xef
        str r1,[r2] ;使GPF4輸出低電平,燈亮
        bl delay1;調用延遲
        ledloop2
        ldr r1,=0xdf
        str r1,[r2]
        bl delay2
        ledloop3
        ldr r1,=0x7f
        str r1,[r2]
        bl delay3
        ledloop4
        ldr r1,=0xbf
        str r1,[r2]
        bl delay4

        ;延遲程序
        delay1
        ldr r3,=0x8ffff ;設置延遲的時間
        delay5
        sub r3,r3,#1 ;r3=r3-1
        cmp r3,#0x0 ;將r3的值與0相比較
        bne delay5;比較的結果不為0(r3不為0),繼續調用delay1,否則執行下一條語句
        b ledloop2
        mov pc,lr ;返回

        ;延遲程序
        delay2
        ldr r3,=0x8ffff
        delay6
        sub r3,r3,#1
        cmp r3,#0x0
        bne delay6
        b ledloop3
        mov pc,lr

        delay3
        ldr r3,=0x8ffff
        delay7
        sub r3,r3,#1
        cmp r3,#0x0
        bne delay7
        b ledloop4
        mov pc,lr


        delay4
        ldr r3,=0x8ffff
        delay8
        sub r3,r3,#1
        cmp r3,#0x0
        bne delay8
        b ledloop1
        mov pc,lr


        END ;程序結束符



        關鍵詞: arm匯編跑馬

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 南宁市| 和林格尔县| 富裕县| 沂水县| 本溪市| 通化市| 衡南县| 永定县| 锦州市| 甘孜| 湘阴县| 乌审旗| 平果县| 洛浦县| 延寿县| 泗阳县| 江北区| 崇信县| 吴江市| 商水县| 丹阳市| 闽清县| 准格尔旗| 丽水市| 象山县| 保定市| 阳原县| 左权县| 舟山市| 曲阳县| 衡南县| 西城区| 松滋市| 徐水县| 瑞丽市| 长岭县| 县级市| 尚志市| 平邑县| 安化县| 尼木县|