@***************
@file:head.s
@功能:点亮两个led灯
@***************
@下面三行为工业流程,固定写法
.text
.global _start
_start:
ldr r0,=0x56000010 @将r0设置为GPBCON寄存器,并装载GPBCON寄存器的地址
ldr r1,=0x15400@设置GPB5-8四个引脚为输出状态(CPU发出信号给GPB引脚)
str r1,[r0]@把寄存器中的数据r1写道内存中去
ldr r0,=0x56000014 @将r0设置为GPBDAT寄存器,并装载GPBDAT寄存器的地址
flash:
ldr r1,=0x180 @对GPBDAT寄存器的5-8位进行设置
str r1,[r0]@把寄存器中的数据r1写道唤纳内存中去,四个灯的状态两不亮
bl wait@跳转的同时保存下一条指令的地址给链接寄存器
ldr r1,=0x1e0 @对GPBDAT寄存器的5-8位进行设置
str r1,[r0]@把寄存器中的数据r1写道内存中去,四个灯的状态全不亮
bl wait
b flash
@下面一个循环(相当延时)
wait:
ldr r2,=0xfff0
loop:
subs r2,r2,#1
bne loop
mov pc,lr@利用链接寄存器跳回去
stop:
b stop
"每按一下复位键灯亮一个,按12下复位键,亮12个LED灯",“复位键”?!如果是这样,恐怕很难用程序控制吧。如果你知道答案了腊启燃话,麻旁仿烦发个消息通知轮虚我一下。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)