zoukankan      html  css  js  c++  java
  • 基于arm开发板四个按键控制四个灯亮

    基于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

  • 相关阅读:
    org.springframework.beans.factory.BeanCreationException
    线程浅谈
    第五次作业
    第四次作业
    第三次作业
    第二次作业
    第一次作业
    第五次作业
    第三次作业
    第二次作业
  • 原文地址:https://www.cnblogs.com/liudehao/p/6080204.html
Copyright © 2011-2022 走看看