新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > arm匯編實(shí)現(xiàn)的跑馬燈實(shí)驗(yàn)

arm匯編實(shí)現(xiàn)的跑馬燈實(shí)驗(yàn)

作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
平臺(tái):fs2410

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

本文引用地址:http://butianyuan.cn/article/201611/316933.htm

GPFCON EQU 0x56000050
GPFDAT EQU 0x56000054
GPFUP EQU 0x56000058
EXPORT LEDTEST
AREA LEDTESTASM,CODE,READONLY ;定義了一個(gè)代碼段,段名為L(zhǎng)EDTESTASM,屬性只讀

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

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

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

;跑馬燈循環(huán)
ledloop1
ldr r1,=0xef
str r1,[r2] ;使GPF4輸出低電平,燈亮
bl delay1;調(diào)用延遲
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 ;設(shè)置延遲的時(shí)間
delay5
sub r3,r3,#1 ;r3=r3-1
cmp r3,#0x0 ;將r3的值與0相比較
bne delay5;比較的結(jié)果不為0(r3不為0),繼續(xù)調(diào)用delay1,否則執(zhí)行下一條語(yǔ)句
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 ;程序結(jié)束符



關(guān)鍵詞: arm匯編跑馬

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉