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
相关推荐
wechatbot88811 小时前
企业微信API开发:登录-联系人查询-消息发送完整开发流程分享
汇编·微信·自动化·企业微信·ai编程·rpa
亿道电子Emdoor18 小时前
【Arm】MSP和PSP的区别简介
c语言·arm开发·单片机·mcu
00后程序员张21 小时前
iOS加固技术路线全面解析:Bitcode模式、源码模式与汇编模式对比及爱加密优势
android·汇编·ios·小程序·uni-app·cocoa·iphone
Lee_jerome1 天前
《C/C++编译全家桶:g++四阶段、.a与.so区别、CMake构建、ARM交叉编译,这篇全讲透了》
c语言·开发语言·arm开发·c++·编译·cmake·cmakelists
Dlrb12112 天前
ARM---IMX6ULL的LCD模块简介及LCD驱动程序的编写
arm开发·lcd·arm·imx6ull·显存·像素
深信达沙箱2 天前
漏洞修不完、合规过不了?先御OS如何让嵌入式设备‘出厂即合规
arm开发·操作系统·嵌入式操作系统
木木_王3 天前
嵌入式学习 | STM32 裸板驱动开发(Day05)超详细复习笔记外部中断 EXTI、NVIC 优先级、串口中断实战
arm开发·stm32·学习
振南的单片机世界3 天前
3.5T静默分帧,CRC16校验:Modbus-RTU帧结构解析
arm开发·stm32·单片机·嵌入式硬件
m0_547486663 天前
《Arm Cortex-M4嵌入式系统-STM32G4系列微控制器的原理架构与开发》全套PPT课件
arm开发·stm32·嵌入式硬件
工业设备方案笔记3 天前
RK3588 AI部署实战:如何在ARM设备上运行AI模型?——从模型转换到边缘推理全过程解析
arm开发·人工智能·边缘计算