day10.8ubentu流水灯

流水灯

复制代码
.text 
.global _start
_start: 
	@1.设置GPIOE寄存器的时钟使能  RCC_MP_AHB4ENSETR[4]->1     0x50000a28
	LDR R0,=0X50000A28
	LDR R1,[R0]  @从r0为起始地址的4字节数据取出放在R1
	ORR R1,R1,#(0x1<<4)  @第4位设置为1
	STR R1,[R0]  @写回

	@2.设置PE10管脚为输出模式  GPIOE_MODER[21:20]->01   0x50006000
	LDR R0,=0x50006000
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	ORR R1,R1,#(0X1<<20) @设置
	STR R1,[R0] 

	@3.设置PE10管脚为推挽输出  GPIOE_OTYPER[10]->0   0X50006004
	LDR R0,=0X50006004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10)
	STR R1,[R0] 


	@4.设置PE10管脚为低速输出   GPIOE_OSPEEDR[21:20]->00  0X50006008
	LDR R0,=0x50006008
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0] 

	@5.设置PE10管脚输出时没有上拉下拉电阻  GPIOE_PUPDR[21:20]->00  0X5000600C
	LDR R0,=0x5000600c
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0]

	@2.设置PE8管脚为输出模式  GPIOE_MODER[21:20]->01   0x50006000
	LDR R0,=0x50006000
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<16)@[21L20]清0
	ORR R1,R1,#(0X1<<16) @设置
	STR R1,[R0] 

	@3.设置PE8管脚为推挽输出  GPIOE_OTYPER[10]->0   0X50006004
	LDR R0,=0X50006004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<8)
	STR R1,[R0] 


	@4.设置PE8管脚为低速输出   GPIOE_OSPEEDR[21:20]->00  0X50006008
	LDR R0,=0x50006008
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<16)@[21L20]清0
	STR R1,[R0] 

	@5.设置PE8管脚输出时没有上拉下拉电阻  GPIOE_PUPDR[21:20]->00  0X5000600C
	LDR R0,=0x5000600c
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<16)@[21L20]清0
	STR R1,[R0] 

	@1.设置GPIOF寄存器的时钟使能  RCC_MP_AHB4ENSETR[5]->1     0x50000a28
	LDR R0,=0X50000A28
	LDR R1,[R0]  @从r0为起始地址的4字节数据取出放在R1
	ORR R1,R1,#(0x1<<5)  @第4位设置为1
	STR R1,[R0]  @写回

	@2.设置PF10管脚为输出模式  GPIOE_MODER[21:20]->01   0x50007000
	LDR R0,=0x50007000
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	ORR R1,R1,#(0X1<<20) @设置
	STR R1,[R0] 

	@3.设置PF10管脚为推挽输出  GPIOE_OTYPER[10]->0   0X50007004
	LDR R0,=0X50007004
	LDR R1,[R0]
	BIC R1,R1,#(0X1<<10)
	STR R1,[R0] 


	@4.设置PF10管脚为低速输出   GPIOE_OSPEEDR[21:20]->00  0X50007008
	LDR R0,=0x50007008
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0] 

	@5.设置PF10管脚输出时没有上拉下拉电阻  GPIOE_PUPDR[21:20]->00  0X5000700C
	LDR R0,=0x5000700c
	LDR R1,[R0]
	BIC R1,R1,#(0x3<<20)@[21L20]清0
	STR R1,[R0]



@  6.PE10输出高低电平      GPIOE_ODR[10]->1(高电平)  0(低电平)    0X50006014
@LED1亮灭交替
loop:
    @亮
    LDR R0,=0X50006014
    LDR R1,[R0]
    ORR R1,R1,#(0x1<<10)
    STR R1,[R0]
    BL delay
    @灭
    LDR R0,=0X50006014
    LDR R1,[R0]
    BIC R1,R1,#(0x1<<10)
    STR R1,[R0]
    BL delay
	@LED2亮灭交替
    @亮
    LDR R0,=0X50007014
    LDR R1,[R0]
    ORR R1,R1,#(0x1<<10)
    STR R1,[R0]
    BL delay
    @灭
    LDR R0,=0X50007014
    LDR R1,[R0]
    BIC R1,R1,#(0x1<<10)
    STR R1,[R0]
    BL delay
	@LED3亮灭交替
    @亮
    LDR R0,=0X50006014
    LDR R1,[R0]
    ORR R1,R1,#(0x1<<8)
    STR R1,[R0]
    BL delay
    @灭
    LDR R0,=0X50006014
    LDR R1,[R0]
    BIC R1,R1,#(0x1<<8)
    STR R1,[R0]
    BL delay



    b loop



@封装延时函数

delay:
    LDR R4,=0X10000000
mm:
    cmp r4,#0
    subne r4,r4,#1
    bne mm
    mov pc,lr  @程序返回
	

.end

相关推荐
2601_962296513 天前
C/C++:编译全过程——预处理、编译、汇编、链接(包含预处理指令:宏定义,文件包括、条件编译)
汇编·预处理·链接·c/c++·编译过程
Freak嵌入式3 天前
Pico PIO 汇编语法深度详解:标识符、指令、伪指令全解析
汇编·stm32·单片机·嵌入式硬件·fpga开发·硬件架构
kyle~9 天前
x86 汇编LOCK前缀 --- 硬件架构向软件提供的核心同步原语
汇编·c++·性能优化·硬件架构·实时系统
典典分享指南9 天前
飞书 + 企业微信 + 微信文档多端协同实践指南
汇编·flask·intellij-idea·fastapi
极客互动API14 天前
企业微信 iPad 协议服务搭建与 AI 回调实战
网络·汇编·人工智能·微信·企业微信·ipad
wechatbot88820 天前
极客互动企业微信 SCRM 私域运营实战效果全景
大数据·汇编·微信·自动化·企业微信·rpa
祈禾24 天前
计算机组成原理之编译、汇编、链接、解释
开发语言·汇编·笔记·学习
水饺编程1 个月前
AT&T 汇编语言学习笔记开篇语
c语言·汇编·c++
iCxhust1 个月前
8088单板机VScode集成开发环境使用方法二(汇编版)
汇编·单片机·微机原理·8088单板机
·薯条大王1 个月前
经济实惠玩云服务器|一台云服务器多人共用,子账号配置教程
java·linux·运维·服务器·汇编·c++·python