码迷,mamicode.com
首页 > 其他好文 > 详细

基于arm开发板四个按键控制四个灯亮

时间:2016-11-19 12:37:15      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:汇编   输出   地址   读取   str   表示   cortex a8   控制   and   

基于s5pv2410,cortex a8的四个按键每一个按键点了对应的灯

对于用汇编来编程的话不难,重点在于数据手册,电路图,管脚的看懂

直接上代码

.globl _start
_start:
ldr r0,=0xe0200c40 @按键控制寄存器的地址
ldr r1,[r0]
bic r1,r1,#0xff @bic一次只能清8为每四位控制一个按键
bic r1,r1,#0xff<<8 @把16位清为零控制四个按键为输入方式
str r1,[r0] @配置按键为输入方式

ldr r0,=0xe0200280 @led灯控制寄存器的地址
ldr r1,=0x1111
str r1,[r0] @配置led灯为输出方式

loop: @循环读取按键的值
ldr r1,=0xe0200c44
ldrb r0,[r1] @ read keys val
and r0,r0,#0xf
teq r0,#0xf @是否没有按下
beq loop @如果相等表示没有按键按下

@从这个地方开始就是有按键按下
mov r0,#0xf00 @延迟0xf00进行消抖
bl delay
ldr r1,=0xe0200c44
ldrb r0,[r1] @ read keys val
and r0,r0,#0xf
teq r0,#0xf @是否没有按下
beq loop
@确定有按键按下
mov r1,r0
ldr r0,=0xe0200280
str r1,[r0,#4]
b loop

delay: @延迟函数r0为参数每次减一
subs r0,r0,#1
bne delay @r0不为0继续循环
mov pc,lr

基于arm开发板四个按键控制四个灯亮

标签:汇编   输出   地址   读取   str   表示   cortex a8   控制   and   

原文地址:http://www.cnblogs.com/liudehao/p/6080204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!