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

相关推荐
水饺编程4 天前
第2章:Linux 基础,解压缩【.tar.bz2】压缩包文件
linux·c语言·汇编
Zevalin爱灰灰4 天前
Linux入门第二部分(ARM裸机篇) 第二章 Cortex-A7 MPCore架构与ARM汇编基础
linux·汇编·arm开发·嵌入式
Zevalin爱灰灰4 天前
Linux入门第二部分(ARM裸机篇) 第三章 汇编LED驱动实验
linux·汇编·arm开发
水饺编程5 天前
第2章:Linux 基础,制作【.tar.xz】压缩包文件
linux·c语言·汇编
小向是个Der7 天前
嵌入式进阶——编译与链接
汇编·单片机·学习·编译原理·交叉编译
二十七日秋7 天前
算法刷题笔记「Day 1|四道 OJ 入门题里的深坑」
c语言·汇编·数据结构·c++·笔记·python·算法
银河麒麟操作系统7 天前
两案例入选全球计算联盟年度产业应用案例汇编
大数据·汇编·人工智能
abc light7 天前
ARM 裸机开发(2)——ARM 汇编与启动代码
汇编·arm开发
soso19688 天前
Modbus协议开发实战指南
汇编
水饺编程9 天前
第2章:Linux 基础,解压缩【.tar.gz】压缩包
linux·c语言·汇编