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
相关推荐
又见情义2 小时前
RK3568 Android 13 驱动适配实战:从零开始让SDK在自己的板子上跑起来
android·arm开发·驱动开发
振南的单片机世界3 小时前
看门狗硬核拆解:1.6秒不喂狗,硬件强制“掀桌子”
arm开发·stm32·单片机·嵌入式硬件
小嵌同学5 小时前
Linux 内核中的 Per-CPU 机制详解
linux·运维·arm开发·嵌入式
Jay丶ke6 小时前
arm ni-700
arm开发
振南的单片机世界1 天前
IDLE中断:串口收完一帧数据,硬件自动“吹哨”
arm开发·stm32·单片机·嵌入式硬件
zbyyd2 天前
Linux 基础与 Shell 命令
linux·运维·arm开发
振南的单片机世界3 天前
EXTI“一线多挂”陷阱:PA0和PB0同时触发,中断函数懵了
arm开发·stm32·单片机·嵌入式硬件
LCMICRO-133108477463 天前
国产长芯微LP4807完全P2P替代ADA4807,1mA、300MHz 增益带宽、电压反馈运算放大器
arm开发·嵌入式硬件·fpga开发·硬件工程·运算放大器·ada4807
LCMICRO-133108477463 天前
国产长芯微LP8628完全P2P替代AD8628,零漂移、单电源、输入输出轨到轨高精度运放
arm开发·嵌入式硬件·fpga开发·硬件工程·精密运放·ad8628
wechatbot8884 天前
极客互动企业微信 SCRM 私域运营实战效果全景
大数据·汇编·微信·自动化·企业微信·rpa