📄 deng.asm
字号:
/* asm.s */
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,=0xf0
str r1,[r2] ;使GPF7输出高电平,D9-D12灯会灭
bl delay1 ;调用延迟子程序
ledloop2
ldr r1,=0x0
str r1,[r2] ;使GPE7输出低电平 D9-D12灯亮
bl delay2 ;调用延迟
;延迟程序
delay1
ldr r3,=0x1ffff ;设置延迟的时间
delay3
sub r3,r3,#1 ;r3=r3-1
cmp r3,#0x0 ;将r3的值与0相比较
bne delay3 ;比较的结果不为0(r3不为0),继续调用delay1,否则执行下一条语句
b ledloop2
mov pc,lr ;返回
;延迟程序
delay2
ldr r3,=0x2ffff ;设置延迟的时间
delay4
sub r3,r3,#1 ;r3=r3-1
cmp r3,#0x0 ;将r3的值与0相比较
bne delay4 ;比较的结果不为0(r3不为0),继续调用delay1,否则执行下一条语句
b ledloop1
mov pc,lr ;返回
END ;程序结束符
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -