2024-4-11-arm作业

汇编实现三个灯的闪烁

源代码:

.text 
.global _start 
_start: 

    @时钟使能
    LDR r0,=0x50000A28
    ldr r1,[r0]
    orr  r1,r1,#(0x3<<4)
    str r1,[r0]

    @设置PE10输出
    LDR r0,=0x50006000
    ldr r1,[r0]
    bic r1,r1,#(0x3<<20)
    orr r1,r1,#(0x1<<20)
    str r1,[r0]

    @设置PE10为推挽模式
    LDR r0,=0x50006004
    ldr r1,[r0]
    bic r1,r1,#(0x1<<10)
    str r1,[r0]
    
    @设置PE10为低速模式
    LDR r0,=0x50006008
    ldr r1,[r0]
    bic r1,r1,#(0x3<<20)
    str r1,[r0]

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



    @设置PF10输出
    LDR r0,=0x50007000
    ldr r1,[r0]
    bic r1,r1,#(0x3<<20)
    orr r1,r1,#(0x1<<20)
    str r1,[r0]

    @设置PF10为推挽模式
    LDR r0,=0x50007004
    ldr r1,[r0]
    bic r1,r1,#(0x1<<10)
    str r1,[r0]
    
    @设置PF10为低速模式
    LDR r0,=0x50007008
    ldr r1,[r0]
    bic r1,r1,#(0x3<<20)
    str r1,[r0]

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

    @设置PE8输出
    LDR r0,=0x50006000
    ldr r1,[r0]
    bic r1,r1,#(0x3<<16)
    orr r1,r1,#(0x1<<16)
    str r1,[r0]

    @设置PE8为推挽模式
    LDR r0,=0x50006004
    ldr r1,[r0]
    bic r1,r1,#(0x1<<8)
    str r1,[r0]
    
    @设置PE8为低速模式
    LDR r0,=0x50006008
    ldr r1,[r0]
    bic r1,r1,#(0x3<<16)
    str r1,[r0]

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

@不让程序结束
loop:
    @实现闪烁
     bl led1_on
     bl delay

     bl led1_off
    bl led2_on

    bl delay
    bl led2_off

    bl led3_on
    bl delay
    bl led3_off
    bl delay

    b loop
    
delay:
    LDR r3,=0x08000000

cmpf:
    cmp r3,#0
    subne r3,r3,#1
    bne cmpf
    mov pc,lr

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

.end

现象:

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 基于Arm-6818开发板的贪吃蛇游戏c++源码(带项目说明).zip 项目简介 项目优势 1.完成全部基本功能且无任何bug; 2.基于数学的颜色渐变和透明度; 3.随机的游戏地图; 4.食物随时间的消失设计以及随时间变化的进度条; 5.游戏最高得分记录; 6.界面简洁明了美观,设计创新; 界面展示 游戏界面 游戏界面样例如图所示,地图背景为随机显示: 还有多种界面地图,内部代码实现为遍历目录并且检测结尾为“.bmp”的文件,所以可以直接添加图片而不用改变代码: 结束界面 游戏有两个结束界面,蛇撞到边界或者自己会死亡,如果刷新最高纪录为如下界面: 游戏内容 本游戏为一款基于Arm6818开发板的传统贪吃蛇,蛇可以通过滑屏上下左右移动,地图会随机生成食物,并随时间增加线性变浅消失,直至下一次食物投放。蛇吃到食物会增加分数并且变长。如果刷新最高记录,系统会在目录的score.txt(可自行更改)保存最佳分数并在之后的游戏中显示。 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
【资源说明】 课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip 课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip 课程设计基于Linux Arm-6818开发板的智能家具管理系统源码.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值