ARM实验 LED流水灯

.text 
.global _start
_start: 
    
@使能GPIOE GPIOF的外设时钟  RCC_MP_AHB4ENSETR的第[4][5]设置为1即可使能GPIOE GPIOF时钟
LDR R0,=0X50000A28   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
ORR R1,R1,#(0x3<<4)   @将第4位设置为1
STR R1,[R0]  @将修改后的数值写回
 
@设置PE10为输出  将GPIOE_MODER[21:20]设置为01,就能够让PE10为输出工作模式
LDR R0,=0X50006000   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
ORR R1,R1,#(0x1<<20)   @将第21:20设置为01
STR R1,[R0]  @将修改后的数值写回
 
@设置PE10为推晚输出  将GPIOE_OTYPER寄存器[10]设置为0,就能够让PE10以推挽输出模式进行工作
LDR R0,=0X50006004   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x1<<10)   @将第10清0
STR R1,[R0]  @将修改后的数值写回
 
@设置PE10为低速输出
LDR R0,=0X50006008   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
STR R1,[R0]  @将修改后的数值写回
 
@设置无上拉下拉电阻 
LDR R0,=0X5000600C   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
STR R1,[R0]  @将修改后的数值写回
 
@设置PF10为输出  将GPIOF_MODER[21:20]设置为01,就能够让PF10为输出工作模式
LDR R0,=0X50007000   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
ORR R1,R1,#(0x1<<20)   @将第21:20设置为01
STR R1,[R0]  @将修改后的数值写回
 
@设置PF10为推晚输出  将GPIOF_OTYPER寄存器[10]设置为0,就能够让PF10以推挽输出模式进行工作
LDR R0,=0X50007004   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x1<<10)   @将第10清0
STR R1,[R0]  @将修改后的数值写回
 
@设置PF10为低速输出
LDR R0,=0X50007008   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
STR R1,[R0]  @将修改后的数值写回
 
@设置无上拉下拉电阻 
LDR R0,=0X5000700C   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<20)   @将第21:20清0
STR R1,[R0]  @将修改后的数值写回
 
 
@设置PE8为输出  将GPIOE_MODER[17:16]设置为01,就能够让PE8为输出工作模式
LDR R0,=0X50006000   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<16)   @将第17:16清0
ORR R1,R1,#(0x1<<16)   @将第17:16设置为01
STR R1,[R0]  @将修改后的数值写回
 
@设置PE8为推晚输出  将GPIOE_OTYPER寄存器[8]设置为0,就能够让PE8以推挽输出模式进行工作
LDR R0,=0X50006004   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x1<<8)   @将第8清0
STR R1,[R0]  @将修改后的数值写回
 
@设置PE8为低速输出
LDR R0,=0X50006008   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<16)   @将第17:16清0
STR R1,[R0]  @将修改后的数值写回
 
@设置无上拉下拉电阻 
LDR R0,=0X5000600C   @指定寄存器地址
LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
BIC R1,R1,#(0x3<<16)   @将第17:16清0
STR R1,[R0]  @将修改后的数值写回
 
 
loop:
@设置LED1亮
    BL LED1_ON
     BL LED2_OFF
     BL LED3_OFF
    BL DELAY
    @设置LED2亮
     BL LED2_ON
    BL LED1_OFF
    BL LED3_OFF
    BL DELAY
    @设置LED3亮
    BL LED3_ON
    BL LED1_OFF
    BL LED2_OFF
    BL DELAY
    b loop
 
LED1_ON:
   LDR R0,=0X50006014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
    ORR R1,R1,#(0x1<<10)   @将第10设置为1
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR
LED1_OFF:
   LDR R0,=0X50006014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
    BIC R1,R1,#(0x1<<10)   @将第10设置为0
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR
  
    LED2_ON:
   LDR R0,=0X50007014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
    ORR R1,R1,#(0x1<<10)   @将第10设置为1
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR
LED2_OFF:
   LDR R0,=0X50007014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
    BIC R1,R1,#(0x1<<10)   @将第10设置为0
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR
 
LED3_ON:
   LDR R0,=0X50006014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
    ORR R1,R1,#(0x1<<8)   @将第8设置为1
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR
LED3_OFF:
   LDR R0,=0X50006014   @指定寄存器地址
    LDR R1,[R0]  @将寄存器原来的数值读取出来,保存到R1中
    BIC R1,R1,#(0x1<<8)   @将第8设置为0
    STR R1,[R0]  @将修改后的数值写回 
    MOV PC,LR
 
DELAY:
    LDR R3,=0x10000000
MM:
    CMP R3,#0
    SUBNE R3,R3,#1
    BNE MM
    MOV PC,LR
 
.end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/471301.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯需要掌握的几个案例(C/C++)

文章目录 蓝桥杯C/C组的重点主要包括以下几个方面&#xff1a;以下是一些在蓝桥杯C/C组比赛中可能会涉及到的重要案例类型&#xff1a;1. **排序算法案例**&#xff1a;2. **查找算法案例**&#xff1a;3. **数据结构案例**&#xff1a;4. **动态规划案例**&#xff1a;5. **图…

30天拿下Rust之错误处理

概述 在软件开发领域&#xff0c;对错误的妥善处理是保证程序稳定性和健壮性的重要环节。Rust作为一种系统级编程语言&#xff0c;以其对内存安全和所有权的独特设计而著称&#xff0c;其错误处理机制同样体现了Rust的严谨与实用。在Rust中&#xff0c;错误处理通常分为两大类&…

有没有好的视频素材网站官网?高清无水印素材下载

在这个数字化的时代&#xff0c;找到优质的素材对于创作者来说就像寻找一片绿洲一样重要。无论是个人项目还是专业作品&#xff0c;好的素材能够为作品增色不少。以下是我精选的一些素材网站&#xff0c;它们各具特色&#xff0c;提供从图片、视频到音效等多种素材&#xff0c;…

蓝桥杯练习03个人博客

个人博客 介绍 很多人都有自己的博客&#xff0c;在博客上面用自己的方式去书写文章&#xff0c;用来记录生活&#xff0c;分享技术等。下面是蓝桥云课的博客&#xff0c;但是上面还缺少一些样式&#xff0c;需要大家去完善。 准备 开始答题前&#xff0c;需要先打开本题的…

springboot284基于HTML5的问卷调查系统的设计与实现

问卷调查系统的设计与实现 摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;问卷信息因为其管理内容繁杂&#xff0c;管理数量繁多导…

2024年3月23日(星期六)骑行陡普鲁

2024年3月23日 (星期六&#xff09;骑行陡普鲁(春漫西翥千亩梨花节&#xff09;&#xff0c;早8:30到9:00&#xff0c;昆明氧气厂门口&#xff0c;9:30准时出发【因迟到者&#xff0c;骑行速度快者&#xff0c;可自行追赶偶遇。】 偶遇地点:昆明氧气厂门口集合 &#xff0c;家…

MySQL 多表关系(介绍) 一对多/多对多

一对多 举例介绍 例子: 部门与员工 在常理上来说: 一个部门有多个员工&#xff0c;一个员工只对应一个部门实现方式: 在多的一方建立外键&#xff0c;指向一的一方的主键 多对多 举例介绍 例子: 学生与课程 在常理上来说: 一个学生可以有多个课程,一门课程可以有多个学生实…

ideaSSM 工程车辆人员管理系统bootstrap开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea 开发 SSM 工程车辆人员管理系统是一套完善的信息管理系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具 有完整的源代码和数据库&…

10:00面试,10:06就出来了,问的问题有点变态。。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到8月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

Docker之大鲸鱼

什么是Docker&#xff1f; Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。 Docker常见命令&#xff1f; docker run -d \--name mys…

qt5-入门-国际化

参考&#xff1a; Qt 国际化(上)_w3cschool https://www.w3cschool.cn/learnroadqt/fwkx1j4j.html QT5实现语言国际化&#xff08;中英文界面动态切换&#xff0c;超详细&#xff09;_qt qevent::languagechange-CSDN博客 https://blog.csdn.net/m0_49047167/article/details/…

fs方法举例

fs.readFile() 读取文件 const fs require(node:fs) const path require(node:path) const s path.resolve(__dirname, ./hello.txt) const buf fs.readFileSync(s) console.log(buf.toString())输出的Buffer对象 用toString()方法转字符串之后 fs.appendFile() 创建新…

[视觉基础知识]: img to bev # include bev seg

参考&#xff1a;https://towardsdatascience.com/monocular-birds-eye-view-semantic-segmentation-for-autonomous-driving-ee2f771afb59 有源传感器&#xff08;lidar or radar&#xff09;得到的数据&#xff0c;天然就是一种bev表示&#xff08;x-y平面&#xff09;&#…

伊理威科技:抖音店铺运营好做吗

在数字营销的浪潮中&#xff0c;抖音以其强大的用户基础和独特的算法推荐机制成为了众多商家眼中的“香饽饽”。然而&#xff0c;对于许多初涉此领域的商家来说&#xff0c;心中不免有这样的疑问&#xff1a;“抖音店铺运营好做吗?” 运营一个抖音店铺并非易事。它既需要创意的…

一次完整的 HTTP 请求所经历的步骤

1&#xff1a; DNS 解析(通过访问的域名找出其 IP 地址&#xff0c;递归搜索)。 2&#xff1a; HTTP 请求&#xff0c;当输入一个请求时&#xff0c;建立一个 Socket 连接发起 TCP的 3 次握手。如果是 HTTPS 请求&#xff0c;会略微有不同。 3&#xff1a; 客户端向服务器发…

深入理解Sora技术原理

OpenAI 发布的视频生成模型 Sora(https://openai.com/sora)&#xff0c;能根据文本生成长达一分钟的高质量视频&#xff0c;理论上支持任意分辨率&#xff0c;如 1920x1080 、1080x1920 &#xff0c;生成能力远超此前只能生成 25 帧 576x1024 图像的顶尖视频生成模型 Stable Vi…

OSPF-1类Router LSA学习

前面我们又复习了一遍OSPF概述&#xff0c;在OSPF建立关系后有几种交互报文&#xff0c;通过LSU类型报文包含LSA信息实现路由信息传递&#xff0c;常见了1、2、3、4、5、7类LSA&#xff0c;分别对应不同功能使用。这里先看下1类LSA-Router LSA。 一、LSA概述 LSA&#xff0c;全…

蓝桥练习题总结(一)字母图形、完美的代价、01串、序列求和

目录 一、字母图形 二、完美的代价 三、01字串 四、序列求和 一、字母图形 问题描述 利用字母可以组成一些美丽的图形&#xff0c;下面给出了一个例子&#xff1a; ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形&#xff0c;请找出这个图形的规律&#xff…

慧海科创再探潮间带|全面调研推动梭子蟹产业进步

浙江的海岸线延绵,孕育了丰富的海洋生物多样性。在这样的背景下,慧海科创团队沿着宁波至舟山的潮间带开展了全面的调研活动。2024年3月15日,浙江海洋大学、宁波大学、上海理工大学的梭子蟹智能捆扎实践团队,深入海岸一线,与当地养殖户交流产业发展中的痛点难点,共同探讨梭子蟹产…

【云呐】固定资产管理系统有哪些主要功能

固定资产管理是一项非常重要的任务。许多企业选择固定资产管理系统&#xff0c;以提高运营效率&#xff0c;降低企业成本。那么&#xff0c;固定资产管理系统的关键功能是什么呢&#xff1f;这个功能如何实现企业高效管理&#xff1f;  固定资产管理系统最重要的作用是资产登…