锦州网站制作公司南昌seo排名收费
1.实验工具:FSMP1A开发板
核心板:
拓展板:
2.实验要求:编写汇编程序,实现三盏灯流水
程序代码:
.text
.global _start
_start: @将RCC_MP_AHB4ENSET寄存器第4位设置为1,使能GPIO外设时钟 地址:0X50000A28
LDR R0,=0X50000A28
LDR R1,[R0]
ORR R1,R1,#(0X1<<4)
STR R1,[R0]@LED1
@1.将PE10设置为输出模式 GPIOE_MODER[21:20]->01 0x50006000
LDR R0,=0X50006000
LDR R1,[R0]
BIC R1,R1,#(0X3<<20)
ORR R1,R1,#(0X1<<20)
STR R1,[R0]@2.将PE10设置为推挽输出 GPIOE_OTYPER[10]->0 0x50006004
LDR R0,=0X50006004
LDR R1,[R0]
BIC R1,R1,#(0X1<<10)
STR R1,[R0]@3.将PE10设置为低速输出 GPIOE_OSPEEDR[21:20]->00 0x50006008
LDR R0,=0X50006008
LDR R1,[R0]
BIC R1,R1,#(0X3<<20)
STR R1,[R0]@4.将PE10设置为无上拉下拉GPIOE_PUPDR[21:20]->00 0x5000600c
LDR R0,=0X5000600C
LDR R1,[R0]
BIC R1,R1,#(0X3<<20)
STR R1,[R0]@LED3
@1.将PE8设置为输出模式 GPIOE_MODER[17:16]->01 0x50006000
LDR R0,=0X50006000
LDR R1,[R0]
BIC R1,R1,#(0X3<<16)
ORR R1,R1,#(0X1<<16)
STR R1,[R0]@2.将PE8设置为推挽输出 GPIOE_OTYPER[8]->0 0x50006004
LDR R0,=0X50006004
LDR R1,[R0]
BIC R1,R1,#(0X1<<8)
STR R1,[R0]@3.将PE8设置为低速输出 GPIOE_OSPEEDR[17:16]->00 0x50006008
LDR R0,=0X50006008
LDR R1,[R0]
BIC R1,R1,#(0X3<<16)
STR R1,[R0]@4.将PE8设置为无上拉下拉GPIOE_PUPDR[17:16]->00 0x5000600c
LDR R0,=0X5000600C
LDR R1,[R0]
BIC R1,R1,#(0X3<<16)
STR R1,[R0]@LED2
@将RCC_MP_AHB4ENSET寄存器第5位设置为1,使能GPIO外设时钟 地址:0X50000A28
LDR R0,=0X50000A28
LDR R1,[R0]
ORR R1,R1,#(0X1<<5)
STR R1,[R0]@1.将PF10设置为输出模式 GPIOE_MODER[21:20]->01 0x50007000
LDR R0,=0X50007000
LDR R1,[R0]
BIC R1,R1,#(0X3<<20)
ORR R1,R1,#(0X1<<20)
STR R1,[R0]@2.将PF10设置为推挽输出 GPIOE_OTYPER[10]->0 0x50007004
LDR R0,=0X50007004
LDR R1,[R0]
BIC R1,R1,#(0X1<<10)
STR R1,[R0]@3.将PF10设置为低速输出 GPIOE_OSPEEDR[21:20]->00 0x50007008
LDR R0,=0X50007008
LDR R1,[R0]
BIC R1,R1,#(0X3<<20)
STR R1,[R0]@4.将PF10设置为无上拉下拉GPIOE_PUPDR[21:20]->00 0x5000700c
LDR R0,=0X5000700C
LDR R1,[R0]
BIC R1,R1,#(0X3<<20)
STR R1,[R0]LOOP:BL LED1_ONBL DELAYBL LED1_OFFBL DELAYBL LED2_ONBL DELAYBL LED2_OFFBL DELAYBL LED3_ONBL DELAYBL LED3_OFFBL DELAYB LOOP@将PE10输出高电平 GPIOE_ODR[10]->1 0x50006014
@LED1开
LED1_ON:
LDR R0,=0X50006014
LDR R1,[R0]
ORR R1,R1,#(0X1<<10)
STR R1,[R0]
MOV PC,LR@LED1关
LED1_OFF:
LDR R0,=0X50006014
LDR R1,[R0]
BIC R1,R1,#(0X1<<10)
STR R1,[R0]
MOV PC,LR@LED2开
LED2_ON:
LDR R0,=0X50007014
LDR R1,[R0]
ORR R1,R1,#(0X1<<10)
STR R1,[R0]
MOV PC,LR@LED2关
LED2_OFF:
LDR R0,=0X50007014
LDR R1,[R0]
BIC R1,R1,#(0X1<<10)
STR R1,[R0]
MOV PC,LR@LED3开
LED3_ON:
LDR R0,=0X50006014
LDR R1,[R0]
ORR R1,R1,#(0X1<<8)
STR R1,[R0]
MOV PC,LR@LED3关
LED3_OFF:
LDR R0,=0X50006014
LDR R1,[R0]
BIC R1,R1,#(0X1<<8)
STR R1,[R0]
MOV PC,LR@延时标签
DELAY:MOV R3,#0X10000000
MM:CMP R3,#0SUBNE R3,R3,#1BNE MMMOV PC,LR.end