ARM实验5-流水灯仿真实验

news2025/1/31 20:43:44

一、实验名称:流水灯仿真实验

二、实验目的:

  1. 掌握ARM处理器的输入输出接口。
  2. 掌握通过MDK提供的仿真功能,实现系统的仿真运行。
  3. 通过该编程实验,进一步巩固和强化学生ARM汇编编程的能,ARM应用程序框架,培养学生实际应用的能力。

三、实验内容:

按下面电路图,编写一个流水灯程序,并通过MDK的仿真功能进行验证。

 

实验要求:

  1. 有1个拨码开关K1(接GPB1端口)作为输入;
  2. 有4个指示灯作为输出(接GPB5-GPB5端口);
  3. 拨码开关K1输入高电平时,指示灯从上到下(LED1到LED4)循环显示,每次只有一个灯亮;
  4. 拨码开关K1输入低电平时,指示灯从下到上(LED4到LED1)循环显示,每次只有一个灯亮;
  5. 要求每个灯点亮持续的时间是20ms-30ms之间。
  6. 使用C语言编写程序,给完整程序并加注释。
  7. 通过MDK的仿真功能验证程序的正确性。                                                                        

main.c参考代码:

#include <S3C2440.H> 
#include<stdio.h>
#include<stdlib.h> 
#define GPBCON (*(volatile unsigned long *) 0x56000010)
#define GPBDAT (*(volatile unsigned long *) 0x56000014)
void delay()  
{  
    int i;
	for(i = 0; i < 5; i++); 
}  
int main(){
	int i;
	GPBCON = 0x155551; //GPB1是输入端口,其余端口都是输出端口
	GPBDAT = ~(0);
	while(1){
		while((GPBDAT & (1<<1)) == 0){ // 开关k1关闭,端口GPB1是低电平
			// 指示灯从下到上(LED4到LED1)循环显示,每次只有一个灯亮
			for(i = 8; i >= 5; i--){
				GPBDAT &= ~(1<<i);
				delay();
				GPBDAT = ~(0);
			}		
		}
		while((GPBDAT & (1<<1)) != 0){ // 开关k1打开,端口GPB1是高电平
			// 指示灯从上到下(LED1到LED4)循环显示,每次只有一个灯亮
			for(i = 5; i <= 8; i++){
				GPBDAT &= ~(1<<i);
				delay();
				GPBDAT = ~(0);
			}	
		}
	}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python中的主函数调用其它函数

Python中的主函数调用其它函数 Python语言是一种高级编程语言&#xff0c;它被广泛应用于大数据处理、人工智能、数据分析、网络编程以及Web开发等领域中。在Python中&#xff0c;我们可以使用函数来封装复杂的业务逻辑&#xff0c;使代码更加可读、可维护和可扩展。在本文中&…

基于docker部署testlink并集成mantis

使用docker pull命令拉取需要的镜像。由于testlink和mantis都需要存储相关数据&#xff0c;所以这里可以看到还拉取了一个mysql镜像。 # docker pull bitnami/testlink:1.9.16-r8 # docker pull vimagick/mantisbt # docker pull mysql:5.7.20 使用docker network命令中创建…

Flutter重构开发

最近学习了flutter技术&#xff0c;然后用flutter技术重构了线上项目的首页板块&#xff0c;较深入的理解flutter的状态管理和ui组件的使用&#xff0c;总结下遇到的几点问题。 - 使用gex的controller报错 Don’t use one refreshController to multiple SmartRefresher,It w…

2021年长三角高校数学建模竞赛B题锅炉水冷壁温度曲线解题全过程文档及程序

2021年长三角高校数学建模竞赛 B题 锅炉水冷壁温度曲线 原题再现&#xff1a; 在燃煤发电过程中&#xff0c;锅炉是一种重要的热能动力设备。它通过在炉膛中燃烧煤粉释放热量&#xff0c;将水加热成一定温度&#xff08;或压力&#xff09;的蒸汽&#xff0c;蒸汽再推动汽轮机…

C4d渲染农场的定义、应用领域和未来发展趋势

Cinema 4D&#xff08;C4D&#xff09;是一款常用于3D动画、建模和渲染的软件&#xff0c;由Maxon Computer开发。随着CG行业的不断发展和应用场景的多样化&#xff0c;C4D渲染农场成为了CG制作中不可或缺的一环。本文将深入介绍C4D渲染农场的概念、特点、应用以及未来发展趋势…

信创办公–基于WPS的EXCEL最佳实践系列 (规整数据摆放)

信创办公–基于WPS的EXCEL最佳实践系列 &#xff08;规整数据摆放&#xff09; 目录 应用背景操作步骤1、数据排序2、例如&#xff1a;职务按照 经理-主任-职员 排序3、排列第二种方法4、实操案例5、案例练习一方法一&#xff1a;通过公式函数增加辅助列方法二&#xff1a;用辅…

二分查找笔记

1.1 什么是算法&#xff1f; 定义 在数学和计算机科学领域&#xff0c;算法是一系列有限的严谨指令&#xff0c;通常用于解决一类特定问题或执行计算 In mathematics and computer science, an algorithm (/ˈlɡərɪəm/) is a finite sequence of rigorous instructions, …

IO多路转接之select

本文分享的是IO多路转接中的select&#xff0c;其中包括select函数如何去使用&#xff0c;以及使用相关代码实现客户端向服务端发送消息的服务&#xff0c;从而更好地理解多路转接的select。 多路转接 多路转接是IO模型的一种&#xff0c;这种IO模型通过select函数进行IO等待&…

AI浪潮再掀低代码开发热,快来了解最新趋势!

在近些年的发展中&#xff0c;人工智能 (AI) 已融入我们社会和生活的方方面面。从聊天机器人和虚拟助手到自动化工业机械和自动驾驶汽车&#xff0c;我们已经越来越离不开AI技术了&#xff0c;哪怕是我们的日常生活中也充满了它的影子&#xff0c;我们很难忽视它的影响。 AI时代…

小程序、网页跳转App的原理

从不同的渠道&#xff0c;如小程序、二维码、网页等&#xff0c;直接跳转到App内对应的页面&#xff0c;并传递相关的参数信息&#xff0c;已经由拥有深度链接技术的SDK实现了&#xff0c;App只需接入这类SDK即可获得多样化跳转的功能。本文将详细介绍多样化跳转的原理。 多样…

Unity | HDRP高清渲染管线学习笔记:基本操作

目录 一、场景整体环境光强度 1.HDRI Sky 2.Shadows 二、屏幕后处理效果(Post Processing) 1.Exposure 2.Post-processing/Tonemapping 三、抗锯齿 四、添加光源 1.Light Explorer窗口 2.光照探针组 3.反射探针 4.烘焙光照贴图 本文主要是了解HDRP基本操作&#xf…

高完整性系统:Hoare Logic

目录 1. 霍尔逻辑&#xff08;Proving Programs Correct&#xff09; 1.1 警告&#xff08;Caveats&#xff09; 1.2 误解&#xff08;Misconception&#xff09; 1.3 编程语言&#xff08;Programming Language&#xff09; 1.4 程序&#xff08;Programs&#xff09; 1…

Html源代码加密?

什么是Html源代码加密&#xff1f; 使用JavaScript加密转化技术将Html变为密文&#xff0c;以此保护html源代码&#xff0c;这便是Html源码加密。 同时&#xff0c;这种加密技术还可实现网页反调试、防复制、链接加密等功能。 应用场景 什么情况下需要Html源代码加密&#x…

clipboard复制粘题问题

clipboard复制粘贴问题 简单的clipboard用法引入clipboard使用方法 通过监听获取剪切板数据自定义获取clipboard剪切板值 记录下项目中使用clipboard复制粘题问题 简单的clipboard用法 引入clipboard npm install clipboard --save官网地址:传送门 使用方法 通过监听获取剪切…

基于neo4图数据库的简易对话系统

文章目录 一、环境二、思路第一步&#xff1a;输入问句第二步&#xff1a;针对问句进行分析&#xff0c;包括意图识别和实体识别第三步&#xff1a;问句转化第四步&#xff1a;问题回答的模板设计 三、代码解读1. 项目结构2. 数据说明3. 主文件kbqa_test.py解读4. entity_extra…

【第三方库】PHP实现创建PDF文件和编辑PDF文件

目录 引入Setasign/fpdf、Setasign/fpdi 解决写入中文时乱码问题 1.下载并放置中文语言包&#xff08;他人封装&#xff09;&#xff1a;https://github.com/DCgithub21/cd_FPDF 2.编写并运行生成字体文件的程序文件&#xff08;addFont.php&#xff09; 中文字体举例&…

【数据结构】第七周

稀疏矩阵快速转置 【问题描述】 稀疏矩阵的存储不宜用二维数组存储每个元素&#xff0c;那样的话会浪费很多的存储空间。所以可以使用一个一维数组存储其中的非零元素。这个一维数组的元素类型是一个三元组&#xff0c;由非零元素在该稀疏矩阵中的位置&#xff08;行号…

xxl-job的部署及springboot集成使用

介绍 XXL-Job是一个分布式任务调度平台&#xff0c;可进行任务调度、管理和监控&#xff0c;并提供任务分片、失败重试、动态分配等功能。它是一个开源项目&#xff0c;基于Spring Boot和Quartz开发&#xff0c;支持常见的任务调度场景。 XXL-Job的使用相对简单&#xff0c;只…

自学网络安全最细规划(建议收藏)

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面…

微信小程序后台:解决微信扫普通链接地址无法跳转到体验版微信的问题,配置普通链接二维码规则解释和理解

微信小程序后台&#xff1a;解决微信扫普通链接地址无法跳转到体验版微信的问题&#xff0c;配置普通链接二维码规则解释和理解 一、现象与原因 最近突然发现微信管理平台中&#xff0c;设置好的普通二维码连接跳转到体验版小程序的功能&#xff0c;没有区分体验版和生产版&a…