ARM_汇编流水灯

ARM_汇编流水灯

复制代码
.text 
.global _start
_start: 
	@设置GPIOE寄存器的时钟使能
	ldr r0,=0x50000A28
	ldr r1,[r0] 		@从r0为起始地址的4字节数据取出存入r1
	orr r1,r1,#(0x01<<4)  @第4位设置为1 表示开启时钟使能
	orr r1,r1,#(0x01<<5)  @第5位设置为1 表示开启时钟使能
	str r1,[r0]   @写入

	@设置PE10的管脚为输出模式
	ldr r0 , =0x50006000
	ldr r1,[r0]
	bic r1,r1,#(0x03<<20) @清零
	orr r1,r1,#(0x01<<20) @01 输出模式
	str r1,[r0]

	ldr r0 , =0x50007000
	ldr r1,[r0]
	bic r1,r1,#(0x03<<20) @清零
	orr r1,r1,#(0x01<<20) @01 输出模式
	str r1,[r0]

	ldr r0 , =0x50006000
	ldr r1,[r0]
	bic r1,r1,#(0x03<<16) @清零
	orr r1,r1,#(0x01<<16) @01 输出模式
	str r1,[r0]

	@设置PE10的管脚为推挽输出
	ldr r0, = 0x50006004
	ldr r1,[r0]
	bic r1,r1,#(0x01<<10) @清零
	str r1,[r0]

	ldr r0, = 0x50007004
	ldr r1,[r0]
	bic r1,r1,#(0x01<<10) @清零
	str r1,[r0]

	
	ldr r0, = 0x50006004
	ldr r1,[r0]
	bic r1,r1,#(0x01<<8) @清零
	str r1,[r0]

	@设置PE10的管脚为底速模式
	ldr r0, = 0x50006008
	ldr r1,[r0]
	bic r1,r1,#(0x03<<20) @清零
	str r1,[r0]

	ldr r0, = 0x50007008
	ldr r1,[r0]
	bic r1,r1,#(0x03<<20) @清零
	str r1,[r0]

	ldr r0, = 0x50006008
	ldr r1,[r0]
	bic r1,r1,#(0x03<<16) @清零
	str r1,[r0]

	@设置PE10的管脚输出时没有上拉下拉电阻
	ldr r0, = 0x5000600C
	ldr r1,[r0]
	bic r1,r1,#(0x03<<20) @清零
	str r1,[r0]
	
	ldr r0, = 0x5000700C
	ldr r1,[r0]
	bic r1,r1,#(0x03<<20) @清零
	str r1,[r0]
	
	ldr r0, = 0x5000600C
	ldr r1,[r0]
	bic r1,r1,#(0x03<<16) @清零
	str r1,[r0]


	@PE10输出高低电平
loop:
	@1亮
	ldr r0, = 0x50006014
	ldr r1,[r0]
	orr r1,r1,#(0x01<<10)
	str r1,[r0]
	bl dealy
	
	@1灭
	ldr r0, = 0x50006014
	ldr r1,[r0]
	bic r1,r1,#(0x01<<10)
	str r1,[r0]
	bl dealy
	
	@2亮
	ldr r0, = 0x50007014
	ldr r1,[r0]
	orr r1,r1,#(0x01<<10)
	str r1,[r0]
	bl dealy
	
	@2灭
	ldr r0, = 0x50007014
	ldr r1,[r0]
	bic r1,r1,#(0x01<<10)
	str r1,[r0]
	bl dealy

	@3亮
	ldr r0, = 0x50006014
	ldr r1,[r0]
	orr r1,r1,#(0x01<<8)
	str r1,[r0]
	bl dealy
	
	@3灭
	ldr r0, = 0x50006014
	ldr r1,[r0]
	bic r1,r1,#(0x01<<8)
	str r1,[r0]
	bl dealy

	b loop


dealy:
	ldr r4,=0x10000000

mm:
	cmp r4,#0
	subne r4,r4,#1
	bne mm
	mov pc,lr

.end
相关推荐
达帮主20 小时前
25.C语言 递归函数
c语言·开发语言·汇编
想放学的刺客21 小时前
单片机嵌入式试题(第34期)嵌入式开发的利器:逻辑分析仪与示波器深度解析
arm开发·stm32·单片机·嵌入式硬件·物联网
CinzWS1 天前
A53电源管理(下):DVFS与热管理的硬件实现——ARM芯片的“冷静艺术“
arm开发·嵌入式·芯片验证·原型验证·a53
誰能久伴不乏2 天前
剥开协议的伪装:用 Wireshark 显微镜级拆解 TCP 握手与挥手
arm开发·tcp/ip·wireshark
somi72 天前
ARM-驱动-10自定义通信协议
linux·arm开发·自用
疏星浅月2 天前
虚拟内存三大核心作用详解
linux·c语言·arm开发·嵌入式硬件
somi73 天前
ARM-驱动-08-LM75(I2C)和 ADXL345(SPI)
arm开发
somi73 天前
ARM-驱动-09-LCD FrameBuffer
arm开发·驱动开发·算法·自用
aq55356003 天前
Laravel2.x:被遗忘的PHP框架遗珠
开发语言·汇编·c#
每天进步一点点️3 天前
透视 SOC 内部:APU Cluster 如何驱动 DB15 的 CAN/ETH 信号输出
arm开发·soc·芯片