华清作业day46

华清作业day46_第1张图片


.text 
.global _start
_start: 
@led1
@设置时钟使能
ldr	 r0,=0x50000A28
ldr r1,[r0]
orr r1,r1,#(0x1<<4)
str r1,[r0]

@设置输出模式
ldr	 r0,=0x50006000
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
orr r1,r1,#(0x01<<20)
str r1,[r0]

@设置推挽输出
ldr r0,=0x50006004
ldr r1,[r0]
bic r1,r1,#(0x1<<10)
str r1,[r0]

@设置低速输出
ldr	 r0,=0x50006008
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
str r1,[r0]

@设置不上拉下拉电阻
ldr	 r0,=0x5000600C
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
str r1,[r0]


@led2
@设置时钟使能
ldr	 r0,=0x50000A28
ldr r1,[r0]
orr r1,r1,#(0x1<<5)
str r1,[r0]

@设置输出模式
ldr	 r0,=0x50007000
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
orr r1,r1,#(0x01<<20)
str r1,[r0]

@设置推挽输出
ldr r0,=0x50007004
ldr r1,[r0]
bic r1,r1,#(0x1<<10)
str r1,[r0]

@设置低速输出
ldr	 r0,=0x50007008
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
str r1,[r0]

@设置不上拉下拉电阻
ldr	 r0,=0x5000700C
ldr r1,[r0]
bic r1,r1,#(0x3<<20)
str r1,[r0]




@led3 时钟使能与led1相同
@设置输出模式
ldr	 r0,=0x50006000
ldr r1,[r0]
bic r1,r1,#(0x3<<16)
orr r1,r1,#(0x01<<16)
str r1,[r0]

@设置推挽输出
ldr r0,=0x50006004
ldr r1,[r0]
bic r1,r1,#(0x1<<8)
str r1,[r0]

@设置低速输出
ldr	 r0,=0x50006008
ldr r1,[r0]
bic r1,r1,#(0x3<<16)
str r1,[r0]

@设置不上拉下拉电阻
ldr	 r0,=0x5000600C
ldr r1,[r0]
bic r1,r1,#(0x3<<16)
str r1,[r0]


loop:

bl led1_on
bl delay
bl led1_off
bl delay
bl led2_on
bl delay
bl led2_off
bl delay
bl led3_on
bl delay
bl led3_off
bl delay

b loop

led1_on:
@设置高电平
ldr	 r0,=0x50006014
ldr r1,[r0]
orr r1,r1,#(0x1<<10)
str r1,[r0]
mov pc,lr

led1_off:
@设置低电平
ldr	 r0,=0x50006014
ldr r1,[r0]
bic r1,r1,#(0x1<<10)
str r1,[r0]
mov pc,lr

led2_on:
@设置高电平
ldr	 r0,=0x50007014
ldr r1,[r0]
orr r1,r1,#(0x1<<10)
str r1,[r0]
mov pc,lr

led2_off:
@设置低电平
ldr	 r0,=0x50007014
ldr r1,[r0]
bic r1,r1,#(0x1<<10)
str r1,[r0]
mov pc,lr


led3_on:
@设置高电平
ldr	 r0,=0x50006014
ldr r1,[r0]
orr r1,r1,#(0x1<<8)
str r1,[r0]
mov pc,lr

led3_off:
@设置低电平
ldr	 r0,=0x50006014
ldr r1,[r0]
bic r1,r1,#(0x1<<8)
str r1,[r0]
mov pc,lr


delay:
ldr r0,=0x1000000
mm:
cmp r0,#0
subne r0,r0,#1
bne mm
mov pc,lr


.end

华清作业day46_第2张图片

你可能感兴趣的:(程序人生)