FS2410开发板测试LED的ADS汇编程序代码

今天写了一下这个代码:
 
;控制4个LED的亮灭


;寄存器地址
rGPFCON    equ 0x56000050
rGPFDAT equ 0x56000054
rGPFUP    equ 0x56000058

;常量定义
ledONDATA    equ 0xfffffeff
ledOFFDATA    equ    0xf0
delayCOUNT    equ 0x2ffff

;LED个数
numLED    equ    0x4


    AREA    led_on,CODE,READONLY
    CODE32
   
    ENTRY
   
start
    mov    sp,#0x0c700000    ;定义堆栈指针   
   
    ldr r0,=rGPFCON        ;GPFCON
    mov r1,#0x5500        ;GPF4~GPF7 out
    str r1,[r0]            ;GPF4~GPF7设置为输出
   
    ldr r0,=rGPFUP        ;GPFUP
    ldr r1,=0xffff
    str r1,[r0]            ;禁止内部上拉
   
main_loop
    ldr r0,=rGPFDAT        ;GPFDAT
   
    mov r4,#numLED        ;装入LED个数作为循环次数
   
led_loop
    ldr r1,=ledONDATA    ;装入LED控制值
    mov r1,r1,ror r4      ;循环显示
    bl ledon
   
    ldr r3,=delayCOUNT
    bl delay
   
    sub r4,r4,#1
    cmp r4,#0x0
    bne led_loop
   
    ldr r1,=ledOFFDATA
    bl ledoff            ;全灭
   
    ldr r3,=delayCOUNT
    bl delay
   
    b main_loop

;入口参数:
;        r0:GPFDAT地址
;        r1:LED亮控制值
ledon
    ldr r2,[r0]        ;读出GPFDAT当前值
    and r2,r2,r1    ;进行LED亮控制
    str r2,[r0]        ;写入GPFDAT       
    mov pc,lr   
   
;入口参数:
;        r0:GPFDAT地址
;        r1:LED灭控制值
ledoff
    ldr r2,[r0]        ;读出GPFDAT当前值
    orr r2,r2,r1
    str r2,[r0]        ;写入GPFDAT       
    mov pc,lr   
       
;入口参数
;    r3:延时常数
delay
    sub r3,r3,#1    ;r0=r0-1           
    cmp r3,#0x0        ;将r0的值与0相比较
    bne delay        ;比较的结果不为0(r0不为0),继续调用delay,否则执行下一条语句
    mov pc,lr        ;返回   
   
    end
-----------------------------------------------------------------------------------------------------------------------------------------------
对于其他的开发板,可能设计的控制LED的GPIO不同,仅需修改相应的部分即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值