⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deng.asm

📁 arm-led汇编程序
💻 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 + -