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
相关推荐
AndyHeee3 天前
【SVC、PendSV(系统异常) 与 外设 IRQ 、NVIC笔记】
arm开发
暮云星影3 天前
瑞芯微rk3588利用Rockchip NPU运行大语言模型(LLM)
arm开发·人工智能·语言模型·自然语言处理
techdashen3 天前
绕过系统 ICMP:用 rawsock、Npcap 和 WMI 找到默认网卡
开发语言·arm开发·rust
ThornArmor3 天前
【工具篇·番外】跨语言生态的主权回收:基于 ISA 说明书的 4-bit 双向汇编系统全线封顶
c语言·开发语言·汇编·c++·重构·架构
振南的单片机世界3 天前
ARM中断比51快在哪?硬件压栈+NVIC集中管理
arm开发·stm32·单片机·嵌入式硬件
墨绿色的摆渡人3 天前
论文笔记(一百三十七)Learning Dual-Arm Push and Grasp Synergy in Dense Clutter
arm开发·论文阅读
暮云星影4 天前
全志linux开发屏幕适配(一)屏幕参数设置说明
linux·arm开发
是星辰吖~4 天前
WIN32_线程(下)
汇编
m0_547486664 天前
《ARM Cortex-M4嵌入式应用技术——基于STM32F407、STM32CubeMX与Proteus》全套PPT课件
arm开发·stm32·proteus
Lanceli_van4 天前
SQLite 3.45.2(sqlite-autoconf-3450200)ARM 交叉编译完整步骤
arm开发·sqlite