ARM实验报告1
基于arm的汇编实验报告
竭诚为您提供优质文档/双击可除基于arm的汇编实验报告篇一:汇编实验报告实验一(1)熟悉汇编语言程序调试环境及顺序程序设计一、实验目的及要求:1.学习及掌握汇编语言源程序的书写格式和要求,明确程序中各段的功能和相互之间的关系。
2.学会使用eDIT、mAsm、LInK、Debug等软件工具。
3.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
二、熟悉汇编语言程序调试环境1.汇编语言源程序的建立本例中给出的程序是要求从内存中存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。
设定源程序的文件名为Abc。
DATAsegmenTbuFDb23h,16h,08h,20h,64h,8Ah,91h,35h,2bh,7Fh cneQu$-buFDATAenDscoDesegmenTAssumecs:coDe,Ds:DATAsTART:pushDsxoRAx,AxpushAxmoVAx,DATAmoVDs,AxmoVbx,oFFseTbuFmoVcx,cnDeccxmoVAL,[bx]IncbxLp:cmpAL,[bx]JbenexTmoVAL,[bx]nexT:IncbxDeccxJnZLpmoVAh,4chInT21hcoDeenDsenDsTART键入以下命令:c:\>eDITAbc.Asm此时屏幕的显示状态如图1所示。
1图1用eDIT编辑Abc.Asm程序窗口程序输入完毕后一定要将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。
2.将源程序文件汇编成目标程序文件一般情况下,mAsm汇编程序的主要功能有以下3点:(1)检查源程序中存在的语法错误,并给出错误信息。
(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.obJ。
(3)若程序中使用了宏指令,则汇编程序将展开宏指令。
源程序建立以后,在Dos状态下,采用宏汇编程序mAsm 对源程序文件进行汇编,其操作过程如图2所示。
1_ARM实验报告
实验一ARM 汇编指令实验目的:学会使用Embest IDE for ARM开发环境及ARM软件模拟器;通过实验掌握简单ARM汇编指令的使用方法。
一.实验内容:熟悉开发环境的使用并使用 ldr/str/mov 等指令访问寄存器或存储单元。
使用 add/sub/lsl/lsr/and/orr 等指令,完成基本数学/逻辑运算。
二.实验原理:1.ARM通用寄存器ARM7处理器共有37个寄存器:31 个通用寄存器和6个状态寄存器。
(1)31个通用32位寄存器,其中包括程序计数器(PC,即R15)。
通用寄存器(R0~R15)可以分为3 类:1)不分组寄存器R0~R7;所有的处理器模式下访问的都是同一个物理寄存器,即在所有处理器模式下,它们每一个都访问一样的32 位寄存器。
它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。
2)分组寄存器R8~R14;快速中断模式拥有独立的一组分组寄存器R8~R12,其余模式共用一组分组寄存器R8~R12;而所有模式都拥有独立的分组寄存器R13、R14。
3)程序计数器R15;寄存器 R15 用做程序计数器 (PC)。
(2)6个32位状态寄存器,但是ARM7只是使用了其中的12位。
程序状态寄存器CPSR是各种模式下通用的状态寄存器,而各种异常模式都有自己的备份状态寄存器SPSR,分别为SPSR_abt、SPSR_ svc、 SPSR_und、SPSR_irq、SPSR_fiq。
2.存储器格式ARM体系结构将存储器看作是从零地址开始的字节的线性组合。
字节零到字节三放置第一个字(WORD),字节四到字节七存储第二个字,以此类推。
ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。
(1)小端格式字数据的高位字节存储在高地址中,而字数据的低位字节则存放在低地址中。
高地址 31 23 22 16 15 8 7 0 字地址84低地址0(2)大端格式字数据的高位字节存储在低地址中,而字数据的低位字节则存放在高地址中。
ARM汇编实验报告
ARM汇编实验报告一、实验目的本次实验旨在通过编写ARM汇编程序,加深对ARM架构和指令集的理解,并掌握ARM汇编程序的设计和调试技巧。
二、实验内容本次实验分为两个部分,分别是基础部分和进阶部分。
1.基础部分基础部分要求编写一个ARM汇编程序,实现输入一个整数n,并输出从1到n的所有奇数的和。
具体要求如下:(1)使用汇编语言实现。
(2)使用r0寄存器保存输入的整数n。
(3)使用r1和r2寄存器保存计算中的临时变量。
(4)使用r3寄存器保存输出的结果。
(5)使用ldr指令从内存中加载数据,str指令将数据保存到内存中。
(6)使用循环实现计算。
(7)使用swi指令终止程序。
2.进阶部分进阶部分要求实现一个排序算法,将从键盘输入的n个整数进行排序,并输出排序后的结果。
具体要求如下:(1)使用汇编语言实现。
(2)使用r0寄存器保存排序的整数个数n。
(3)使用r1寄存器保存指向数组的指针。
(4)使用r2和r3寄存器保存计算中的临时变量。
(5)使用ldr指令从内存中加载数据,str指令将数据保存到内存中。
(6)使用循环实现排序算法。
(7)使用swi指令终止程序。
三、实验步骤1.基础部分实现:(1)将输入的整数n保存到r0寄存器中。
(2)初始化r1和r3寄存器,将计算所需的临时变量置为0。
(3)使用ldr指令读取r0寄存器的值到r2寄存器。
(4)使用循环实现奇数求和的计算,将结果保存到r3寄存器。
(5)使用str指令将r3寄存器的值保存到内存中。
(6)使用swi指令终止程序。
2.进阶部分实现:(1)将输入的整数n保存到r0寄存器中。
(2)使用ldr指令将数组的首地址保存到r1寄存器。
(3)使用循环结构实现排序算法。
(4)使用str指令将排序后的结果保存到内存中。
(5)使用swi指令终止程序。
四、实验结果经过编写和调试,基础部分程序可以正确输入整数n,并输出从1到n的所有奇数的和。
进阶部分程序可以正确输入整数n,并对输入的n个整数进行排序,并输出排序后的结果。
arm嵌入式实验报告完整版
arm嵌入式实验报告完整版篇一:ARM嵌入式系统实验报告1郑州航空工业管理学院嵌入式系统实验报告第赵成,张克新院姓专学系:名:业:号:电子通信工程系周振宇物联网工程 121309140电子通信工程系XX年3月制实验一 ARM体系结构与编程方法一、实验目的了解ARM9 S3C2410A嵌入式微处理器芯片的体系结构,熟悉ARM微处理器的工作模式、指令状态、寄存器组及异常中断的概念,掌握ARM指令系统,能在ADS1.2 IDE中进行ARM汇编语言程序设计。
二、实验内容1.ADS1.2 IDE的安装、环境配置及工程项目的建立;2.ARM汇编语言程序设计(参考附录A):(1)两个寄存器值相加;(2)LDR、STR指令操作;(3)使用多寄存器传送指令进行数据复制;(4)使用查表法实现程序跳转;(5)使用BX指令切换处理器状态;(6)微处理器工作模式切换;三、预备知识了解ARM嵌入式微处理器芯片的体系结构及指令体系;熟悉汇编语言及可编程微处理器的程序设计方法。
四、实验设备 1. 硬件环境配置计算机:Intel(R) Pentium(R) 及以上;内存:1GB及以上;实验设备:UP-NETARM2410-S嵌入式开发平台,J-Link V8仿真器; 2. 软件环境配置操作系统:Microsoft Windows XP Professional Service Pack 2;集成开发环境:ARM Developer Suite (ADS)1.2。
五、实验分析1.安装的ADS1.2 IDE中包括两个软件组件。
在ADS1.2中建立 ARM Executable Image(ARM可执行映像)类型的工程,工程目标配置为 Debug;接着,还需要对工程进行目标设置、语言设置及链接器设置;最后,配置仿真环境为ARMUL仿真方式。
2.写出ARM汇编语言的最简程序结构,然后在代码段中实现两个寄存器值的加法运算,给出运算部分相应指令的注释。
arm中断实验的实验报告
arm中断实验的实验报告
《ARM中断实验的实验报告》
实验目的:
本实验旨在通过ARM中断实验,深入理解ARM处理器的中断机制,并掌握中
断处理的相关知识和技能。
实验内容:
1. 确定实验环境:选择一款ARM处理器,并搭建相应的开发环境。
2. 编写中断处理程序:编写一个简单的中断处理程序,包括中断触发条件、中
断服务程序和中断处理函数。
3. 测试中断程序:在实验环境中模拟中断触发条件,验证中断处理程序的正确
性和可靠性。
4. 分析中断处理过程:通过调试工具和相关技术手段,深入分析中断处理过程,包括中断响应时间、中断服务时间和中断处理流程。
实验结果:
经过实验,我们成功搭建了ARM中断实验环境,并编写了一个简单的中断处理程序。
在测试过程中,中断程序能够正确响应和处理中断请求,表现出良好的
稳定性和可靠性。
通过分析中断处理过程,我们深入理解了ARM处理器的中断机制,包括中断触发、中断处理和中断返回等关键环节。
实验结论:
通过本次实验,我们进一步加深了对ARM处理器中断机制的理解,掌握了中断处理的相关知识和技能。
同时,我们也意识到中断处理在实际应用中的重要性
和必要性,为今后的ARM开发和应用奠定了坚实的基础。
总结:
ARM中断实验是一次富有成效的实践活动,通过实验我们不仅学习到了理论知识,还掌握了实际操作技能。
相信在今后的学习和工作中,我们将能够更加熟
练地应用ARM中断处理技术,为ARM相关产品的开发和应用做出更大的贡献。
ARM实验报告
ARM 实验报告学院:计算机科学与工程学院班级: 070603 学号: 070603115 姓名:张鑫实验一:工程配置一、处理器配置选择菜单项Project > Settings…或快捷键Alt+F7,弹出工程设置对话框。
在工程设置对话框中,选择Processor设置对话框,如下图,可进行目标板所用处理器的配置。
图1 处理器配置对话框用户选择对应的工程文件名进行相应的配置。
图中各项设置定义如下:处理器模块(CPU Module)选择当前所使用的处理器模块,不同的处理器模块将支持不同的处理器系列,目前Embest IDE for ARM 支持ARM7、ARM9核系列处理器。
处理器系列(CPU Family)选择用户使用的处理器所属处理器系列。
处理器成员(CPU Member)设置处理器系列中具体的处理器成员。
字节排列方式(Endian)设置该处理器当前所支持的存储区字节排列方式是大字节结尾(Big Endian)还是小字节结尾方式(Little Endian)。
处理器制造商(Peripheral Maker)选择处理器生产厂家。
处理器型号(Peripheral Chip)选择相应的处理器型号。
编译工具(Build Tools)设置该处理器对应的编译链接器。
Embest IDE for ARM 支持ARM核系列处理器。
开发ARM7核系列处理器,按照图5-11中设置;开发ARM9核系列处理器,可依照图5-11设置作相应的改变。
二、仿真器配置选择菜单项Project>Settings…,弹出工程设置对话框。
在工程设置对话框中,选择Remote设置对话框,如下图,可进行仿真器的连接配置。
图2 仿真器的连接配置在该对话框中,有两项设置:远程连接设备(Remote device)设置连接的调试设备,例如Embest IDE for ARM支持英蓓特公司的Embest Emulator for ARM和Embest PowerICE for ARM。
arm实验报告
arm实验报告ARM实验报告引言:ARM(Advanced RISC Machines)是一种基于精简指令集计算机(RISC)架构的微处理器系列,广泛应用于移动设备、嵌入式系统和智能家居等领域。
本实验报告旨在介绍ARM架构的基本原理、应用领域以及在实验中的应用。
一、ARM架构的基本原理ARM架构采用精简指令集计算机(RISC)的设计理念,注重指令的简洁性和执行效率。
相较于复杂指令集计算机(CISC),ARM架构的指令集更为简单,指令长度固定,执行速度更快,能够提高处理器的性能和能效比。
ARM架构的核心特点包括:1. 简洁指令集:ARM指令集采用三地址指令格式,指令长度为32位,操作码和寄存器字段清晰明了,易于编程和优化。
2. 统一寄存器:ARM架构中的寄存器集合统一,包括13个通用寄存器、程序计数器(PC)和状态寄存器(CPSR),简化了编程和寄存器间的数据传输。
3. 流水线技术:ARM处理器采用流水线技术,将指令的执行过程分为多个阶段,使得多条指令可以同时执行,提高了处理器的吞吐量。
4. 片上缓存:ARM架构支持片上缓存(Cache),能够提高数据的访问速度和处理器的效率。
二、ARM架构的应用领域1. 移动设备:由于ARM处理器具有低功耗和高性能的特点,广泛应用于智能手机、平板电脑和可穿戴设备等移动设备中。
ARM处理器能够提供流畅的用户体验和长时间的电池续航能力。
2. 嵌入式系统:ARM架构适用于嵌入式系统,如智能家居、工业自动化和车载电子等。
ARM处理器的小尺寸、低功耗和高性能使其成为嵌入式系统的首选。
3. 服务器和云计算:ARM架构逐渐在服务器和云计算领域崭露头角。
ARM服务器具有低能耗和高并发处理的特点,能够满足云计算和大数据处理的需求。
三、ARM实验应用在本次实验中,我们使用ARM开发板进行了一系列实验,包括LED控制、按键输入和串口通信等。
1. LED控制实验:通过编写ARM汇编语言程序,实现对开发板上的LED灯进行控制。
arm报告
ARM嵌入式系统上机实验报告实验一:ARM汇编语言程序设计一、实验目的:1、通过实验掌握ARM指令的特点和寻址方式;2、掌握简单的ARM汇编语言的程序设计;3、了解集成开发环境Embest IDE及其开发软件的应用;二、实验环境:Embest IDE 应用于嵌入式软件开发的新一代图形化的集成开发环境,它包括一套完备的面向嵌入式系统的开发和调试工具。
其开发软件Embest IDE for ARM 是集编辑器、编译器、调试器、工程管理器(projectmanager)于一体的高度集成的窗口环境,用户可以在Embest IDE 集成开发环境中创建工程、编辑文件、编译、链接、运行,以及调试嵌入式应用程序。
三、实验步骤及结果:2、编写程序将R2的高8位传送到R3的低8位(不考虑R3的其它位)。
(1)、编辑源程序:(a)[File]-->[Newworkplace];[File]-->[New];(b)在编辑框编辑源程序如下:.global _start.text_start:mov r1,r2,LSR#24orr r3,r1,r3,LSL#8stop:b stop.end(c)保存.s文件;(d)[Projectsource]-->[Add File...]。
(2)、编译链接:(a)[Project]-->[Setting],分别设置Process、Remote:(b)编译;编译成功后[Project]-->[Setting]-->[Debug]:(3)、运行调试:(a)[Debug]-->[Remote connect];(b)[Debug]-->[Download];(4)、实验结果:单步跟踪后的结果:存储器的结果显示:寄存器的结果显示:R1低八位←R2高8位:R3左移,R3低八位←R1低8位:3、实现64位的加法运算,要求【R1:R0】+【R3:R2】,结果放回【R1:R0】中。
xx大学ARM嵌入式系统实验报告(第一次)
[root$s uper
root]# cd Image [root$superImage]# cp
zImage /tftp boot
3.打开minixx,打开板子电源开关。4.
显示启动信息。
XSBASE-R1 Co pyright (C) 20XX EMDOOR
Linux/Wince操作系统。通过多种多样的接口可以极大的扩 展系统并且很容易的为PXA255外设做全方位的测试。
XSBase板的特色
器,所以
它非常适用于手持移动产品。
这个系统安装了最新的版本的Linux内核,它是以稳定
性和可靠性闻名的操作系统。用户可以在一个非常稳定的环 境下运行用户程序,从而实现高质量的产品。
使用其他版本的LINUX。
系统组成 包括硬件和软件资源及相关配件。
连接到XSBase255板子 警告:移动板子时请手拿板子的两端以防止静电对板子
的伤害。在仔细检查接线后再通电。
1、第一次打开箱子时请核对箱子的内容。
2、连接JTAG线。用JTAG线把板子的20-pin的接口和
主机的并口连接起来。3、连接串口线。通过板子上的串口
然而串口也无法查询到,因而无法KILL,最后只能重新启动
系统,重新执行之前的操作,最后还是顺利的出现了预期的 实验现象。总之,通过本次实验,学会了一些指令的基本使 用,女n LS,LL,IFCONNFIG,CP等,掌握了Linux系统的基本
操作,当然这都是很简单也是最基本的东西,如果想学到更 多、等有价值的东西的话,还需自己的刻苦钻研。同时,体 会到自己不能很好地将课堂上所学的相关知识与实际操作
x-boot255 /tftpboot 3.运行minixx,打开板子电源开关。
嵌入式实验报告_ARM的串行口实验
嵌入式实验报告_ARM的串行口实验一、实验目的本次实验的主要目的是深入了解和掌握 ARM 处理器的串行口通信原理及编程方法。
通过实际操作和编程实践,能够实现基于 ARM 的串行数据收发功能,为后续在嵌入式系统中的应用打下坚实的基础。
二、实验原理串行通信是指数据一位一位地顺序传送。
在 ARM 系统中,串行口通常由发送器、接收器、控制寄存器等组成。
发送器负责将并行数据转换为串行数据并发送出去,接收器则将接收到的串行数据转换为并行数据。
控制寄存器用于配置串行口的工作模式、波特率、数据位长度、停止位长度等参数。
波特率是串行通信中的一个重要概念,它表示每秒传输的比特数。
常见的波特率有 9600、115200 等。
在本次实验中,需要根据实际需求设置合适的波特率,以保证数据传输的准确性和稳定性。
三、实验设备与环境1、硬件设备:ARM 开发板、USB 转串口线、电脑。
2、软件环境:Keil MDK 集成开发环境、串口调试助手。
四、实验步骤1、建立工程在 Keil MDK 中创建一个新的工程,选择对应的 ARM 芯片型号,并配置工程的相关参数,如时钟频率、存储分配等。
2、编写代码(1)初始化串行口首先,需要设置串行口的工作模式、波特率、数据位长度、停止位长度等参数。
例如,设置波特率为 115200,数据位长度为 8 位,停止位长度为 1 位。
(2)发送数据通过编写发送函数,将要发送的数据写入串行口的数据寄存器,实现数据的发送。
(3)接收数据通过中断或者查询的方式,读取串行口的接收寄存器,获取接收到的数据。
(4)主函数在主函数中,调用发送函数发送数据,并处理接收的数据。
3、编译下载编写完成代码后,进行编译,确保代码没有语法错误。
然后,将生成的可执行文件下载到 ARM 开发板中。
4、连接设备使用 USB 转串口线将 ARM 开发板与电脑连接起来,并在电脑上打开串口调试助手,设置与开发板相同的波特率等参数。
5、测试实验在串口调试助手中发送数据,观察开发板是否能够正确接收并回传数据。
arm开发环境搭建实验报告实验内容
ARM开发环境搭建实验报告一、实验目的本实验旨在帮助学生了解和掌握ARM开发环境的搭建过程,包括交叉编译环境的搭建、嵌入式系统开发环境的搭建、ARM Linux操作系统的搭建以及应用软件的开发与部署。
通过本次实验,学生将能够熟悉ARM开发的基本流程,为后续的ARM开发打下基础。
二、实验内容1. 开发环境介绍本部分将介绍ARM开发环境的基本概念、组成和搭建流程。
重点讲解ARM架构的特点、开发板的选择以及开发工具链的组成。
通过本部分的学习,学生将能够对ARM开发环境有基本的了解和认识。
2. 交叉编译环境搭建交叉编译是指在一种平台上生成另一种平台上的可执行文件。
本部分将介绍如何搭建ARM交叉编译环境,包括交叉编译工具链的安装、配置和使用。
同时,学生将通过实践操作,掌握交叉编译的基本方法。
3. 嵌入式系统开发环境搭建嵌入式系统是指专为特定应用而设计的计算机系统。
本部分将介绍如何搭建嵌入式系统开发环境,包括开发板的连接、调试工具的安装以及嵌入式操作系统的选择和烧写。
通过本部分的学习,学生将能够掌握嵌入式系统开发的基本流程。
4. ARM Linux 操作系统搭建ARM Linux操作系统是一种针对ARM架构的开源操作系统。
本部分将介绍如何搭建ARM Linux操作系统,包括操作系统的下载、烧写以及启动过程。
同时,学生将学习如何在ARM Linux上安装软件、配置网络等操作,以便进行后续的应用软件开发。
5. 应用软件开发与部署本部分将介绍如何进行ARM应用软件开发与部署。
首先,学生将学习如何使用交叉编译工具链编译应用程序;其次,学生将学习如何将应用程序部署到ARM设备上,并进行测试和调试。
通过本部分的学习,学生将能够掌握ARM应用软件开发的整个流程。
三、实验步骤1. 安装交叉编译工具链,并配置环境变量;2. 连接开发板,并安装调试工具;3. 下载并烧写嵌入式操作系统;4. 安装ARM Linux操作系统;5. 编写应用软件源代码;6. 使用交叉编译工具链编译应用软件;7. 将应用软件部署到ARM设备上;8. 进行测试和调试。
ARM实验报告综合实验
ARM实验报告综合实验摘要:ARM微处理器已经在各种电子产品中得到广泛应用。
本实验旨在通过对ARM实验板的详细学习,深入理解和掌握ARM微处理器的工作原理及应用。
通过搭建实验平台,完成基本的指令执行、数据传输和I/O操作等功能。
通过实验,掌握ARM汇编语言的基本语法和实现方法,同时提升对嵌入式系统的理解和应用能力。
关键词:ARM微处理器、实验平台、指令执行、数据传输、I/O操作、汇编语言1.引言ARM(Advanced RISC Machines)微处理器是一种精简指令集(RISC)的微处理器架构,以其高性能、低功耗和广泛应用等特点受到了广泛的关注和应用。
本实验旨在通过对ARM实验板的学习和研究,深入理解ARM微处理器的工作原理和应用。
2.实验目的2.1理解ARM微处理器的工作原理;2.2掌握ARM汇编语言的基本语法和实现方法;2.3学习搭建实验平台,完成指令执行、数据传输和I/O操作等功能;2.4提升对嵌入式系统的理解和应用能力。
3.实验内容3.1搭建实验平台3.2学习ARM汇编语言通过阅读相关资料,了解ARM汇编语言的基本语法和寄存器等特点,了解ARM微处理器的指令集和指令执行方式。
3.3编写实验程序根据实验指导书中的要求,编写实验程序,包括基本的指令执行、数据传输和I/O操作等功能实现。
3.4调试和测试经过编写程序后,需要进行调试和测试,确保程序能够正确执行,并达到预期的功能。
4.实验结果通过实验,成功搭建了ARM实验平台,并且实现了基本的指令执行、数据传输和I/O操作等功能。
通过对ARM汇编语言的学习和实践,掌握了其基本语法和实现方法。
5.结论本实验通过对ARM实验板的学习和研究,深入理解了ARM微处理器的工作原理和应用。
通过搭建实验平台和编写实验程序,进一步掌握了ARM 汇编语言的基本语法和实现方法。
通过调试和测试,验证了程序的正确性和功能实现。
通过本实验,提升了对嵌入式系统的理解和应用能力。
arm实习报告
arm实习报告篇一:ARM实习报告通过这次模具设计,本人在多方面都有所提高。
通过这次设计,综合运用本专业所学课程的理论和实际知识进行设计,提高学生独立工作能力,巩固与扩充了arm等课程所学的内容,掌握arm设计的方式和步骤,同时各科相关的课程都有了全面的温习,独立试探的能力也有了提高。
在短短的一个礼拜中,让咱们初步让理性回到感性的从头熟悉,也让咱们初步的熟悉了那个社会,关于以后做人所应把握的方向也有所启发,表现出团队课程设计的能力和综合运用知识的能力,体会了学以致用、突出自己劳动功效的喜悦心情,从中发觉自己平常学习的不足和薄弱环节,从而加以弥补。
这次课程实际仅仅是基于arm微处置器应用的一个开端,在这期间咱们还有很多的不足,比如不能完成引脚的最优连接,不能完成硬件系统和软件程序的自主设置和编写,但我相信通过以后对arm嵌入式系统的继续学习,自己会取得进一步的提高。
我会把这此实习作为我人一辈子的起点,在以后的工作学习中不断要求自己,完善自己,让自己做的更好。
篇二:arm实习报告嵌入式课程设计与总结报告摘要通过嵌入式操纵系统的实习,使咱们了解并把握依照嵌入式操纵系统项目要求,如何设计符合操纵逻辑的原理图,复合原理图及电子电气emc 的pcb图,学习电子元器件的焊接,pcb板的调试等,最终把握嵌入式操纵系统的设计及工艺等。
一、设计实习任务1. 焊接arm7(lpc2132)最小系统pcb。
要求认真认真焊接,并调试使其能正常工作(提供最简易测试程序)。
2. 设计数码管动态扫描显示电路,三个按键的键盘电路,模拟电压取样电路等。
要求原理图设计合理,要求有与最小系统板的接口,正确焊接,调试后能正常工作。
3. 操纵软件设计在嵌入式操纵系统的设计中,系统操纵软件的设计是一项超级重要且艰巨的工作,系统可否正常靠得住的工作,成败在此一举。
因此要求同窗们认真认真的设计、调试操纵软件。
要求软件语句精炼,整体健壮,有必然的抗干扰能力。
ARM嵌入式实验报告
实验一 ARM汇编指令使用实验——基本数学/逻辑运算一、实验目的1. 初步学会使用ARM ADS / Embest IDE for ARM 开发环境及ARM软件模拟器。
2. 通过实验掌握数据传送和基本数学/逻辑运算的ARM汇编指令的使用方法。
二、实验设备1. 硬件:PC机。
2. 软件:ADS 1.2 / Embest IDE 200X集成开发环境。
三、实验内容1.熟悉ADS 1.2 / Embest IDE 200X开发环境的使用,使用LDR/STR和MOV等指令访问寄存器或存储单元,实现数据的加法运算。
具体实验程序如下:/* armasm1a.s */.EQU X, 45 /*定义变量X,并赋值为45*/.EQU Y, 64 /*定义变量Y,并赋值为64*/.EQU STACK_TOP, 0X1000 /*定义栈顶0X1000*/.GLOBAL _START.TEXT_START: /*程序代码开始标志*/MOV SP, #STACK_TOPMOV R0, #X /*X的值放入R0*/STR R0, [SP] /*R0的值保存到堆栈*/MOV R0, #Y /*Y的值放入R0*/LDR R1, [SP] /*取堆栈中的数到R1*/ADD R0, R0, R1STR R0, [SP]STOP: B STOP /*程序结束,进入死循环*/.END2.使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。
具体实验程序如下:/* armasm1b.s */.EQU X, 45 /*定义变量X,并赋值为45*/.EQU Y, 64 /*定义变量Y,并赋值为64*/.EQU Z, 87 /*定义变量Z,并赋值为87*/.EQU STACK_TOP, 0X1000 /*定义栈顶0X1000*/.GLOBAL _START.TEXT_START: /*程序代码开始标志*/MOV R0, #X /*X的值放入R0*/MOV R0, R0, LSL #8 /*R0的值乘以2的8次方 */MOV R1, #Y /*Y的值放入R1*/ADD R2, R0, R1, LSR #1 /*R1的值除以2再加上R0后的值放入R2*/MOV SP, #0X1000STR R2, [SP]MOV R0, #Z /*Z的值放入R0*/AND R0, R0, #0XFF /*取R0的低八位*/MOV R1, #Y /*Y的值放入R1*/ADD R2, R0, R1, LSR #1 /*R1的值除以2再加上R0后的值放入R2*/ LDR R0, [SP] /*Y的值放入R1*/MOV R1, #0X01ORR R0, R0, R1MOV R1, R2 /*Y的值放入R1*/ADD R2, R0, R1, LSR #1 /*R1的值除以2加上R0的值放入R2*/STOP: B STOP /*程序结束,进入死循环*/.END四、实验操作步骤1.新建工程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验报告
实验名称:流水灯的改进
院系:物理与机电工程学院
专业班级:08电子信息工程
学号:2008041537
学生姓名:巫赛花
指导教师:涂二生
完成时间:2011年4月16日
报告成绩:
评阅意见:
评阅教师日期
流水灯的改进
一、实验目的:
1、熟悉和掌握ADS集成开发环境及EasyJTAG仿真器的使用;
2、掌握流水灯实验程序的内容;
3、掌握EasyARM72131开发板的具体结构和器件的分布。
4、掌握对原程序进行一定的修改,达到熟练掌握程序编写的目
的。
二、实验原理:
1、GPIO概述:
LPC2131具有多达47个通用I/O口,分别为P0[31:0]、P1[31:16],其中,P0.24未用,P0.31仅为输出口。
由于口线与其他功能复用,因而需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入、输出属性设置后才能操作。
当管脚选择GPIO功能时,有3个寄存器用于控制GPIO的使用,IOSET、IOCLR和IOPTN。
IOSET用于口线置1,而IOCLR则用于口线清零,IOPIN则反映当前IO口的状态,读回IOSET则反映当前IO口设定状态。
2、特性:
1、单个位的方向控制;
2、单独控制输出的置位和清零;
3、所有I/O口在复位后默认为输入。
EasyARM72131开发板上的8路LED(LED8~LED1)分别可选择P1[25:18]进行控制,电路如图4.12所示。
当跳线JP12全部选择LED8~LED1后,P1.25~P1.18分别控制这8路LED,就可以进行流水灯实验。
流水灯显示花样可以通过数组人为定义,也可以通过一定的算法计算。
程序清单一所示为采用人为定义数组控制显示花样的实验程序,流程图如图1所示。
(图1)
三、实验器材:
装有ADS的电脑一台、EasyARM2131开发板。
四、实验内容及步骤:
1、连接EasyARM2131开发板与电脑之间的连接线,检查是否接
好(power显示灯会亮);
2、打开电脑,运行EasyJTAG仿真器,并进行相应的调节(选择
LPC2138),通过check检查是否与电脑之间可以传输数据;
3、找到实验程序所在的位置,在软件中打开所要运行的程序,
并对其进行仿真操作(犹豫电脑原因运行时需要两次操作才能进行仿真);
4、观察仿真的结果,与程序设计的效果进行比较,是否满足要
求,如没有错误,可以根据自己的想法和对程序了解的程度进行变动,以达到更好的效果,同时也可以提高个人的能力。
5、实验结束后停止程序运行,关闭电脑,拔掉开发板和电脑之
间的连线装入盒中,整理桌面。
五、实验程序
程序清单:流水灯实验程序
#include "config.h"
/* LED8~LED1 8个LED分别由P1.25~P1.18控制 */
const uint32 LEDS8 = (0xFF << 18); // P1[25:18]控制LED8~LED1,低电平点亮
const uint32 KEY1 = 1 << 16; //P0.16连接KEY1
const uint32 BEEP = 1<<7; //P0.7控制蜂鸣器
/*
********************************************************************* ************************************
** 函数名称:DelayNS()
** 函数功能:长软件延时
** 入口参数:dly 延时参数,值越大,延时越久
** 出口参数:无
********************************************************************* ************************************
*/
void DelayNS (uint32 dly)
{
uint32 i;
for ( ; dly>0; dly--)
for (i=0; i<50000; i++);
}
/*
********************************************************************* ************************************
** 函数名称:main()
** 函数功能:流水灯显示实验。
** 调试说明:连接跳线JP12至LED8~LED1。
********************************************************************* ************************************
*/
/* 流水灯花样,低电平点亮,注意调用时候用了取反操作 */
const uint32 LED_TBL[] = {
0xFF,0x00, // 全部熄灭后,再全部点亮 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, // 依次逐个点亮
0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, // 依次逐个叠加
0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, // 依次逐个递减
0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81, // 两个靠拢后分开
0x81, 0xC3, 0xE7, 0xFF, 0xFF, 0xE7, 0xC3, 0x81 // 从两边叠加后递减};
int main (void)
{
uint8 i;
PINSEL0 = 0x00000000; // 设置管脚连接GPIO
PINSEL1 = 0x00000000; // 设置管脚连接GPIO
PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO
IO1DIR = LEDS8; // 设置LED1控制口为输出
IO0DIR =BEEP; //设置BEEP控制口为输出
while (1)
{
for(i=0;i<42;i++)
{
IO1SET = ~((LED_TBL[i])<<18);//查表,依次将信号给P1[18:25] IO0CLR=BEEP;//蜂鸣器蜂鸣
DelayNS(50);//延时
IO1CLR = ((LED_TBL[i])<<18);
IO0SET=BEEP;//蜂鸣器停止
DelayNS(50);
if((IO0PIN&KEY1)==0)
{
while((IO0PIN&KEY1)==0);
break; //当KEY1按下时实现复位功能
}
}
}
return 0;
}
注:带有下划线的为修改或添加的程序
六、实验效果:
程序运行时将KEY1按下,停止变化,松开KEY1将实现复位功能,从新开始运行,同时在LED变化过程中蜂鸣器将与其同时变化。
七、心得体会:
通过这次实验,我熟悉了ADS集成开发环境及EasyJTAG仿真器
的使用,基本了解各个模块的功能与使用方法,同时对EasyARM72131开发板的具体结构和器件的分布也有了较为全面的了解。
了解了如何运用ARM7来实现流水灯的控制,并且可以对一些程序进行修改以及实现自己想要的功能,比如改变程序、变化的方式和运行的方式等。
在了解流水灯的基础上对其他的一些实验也有了一定的了解,使我更加熟悉了集成开发环境和仿真器的使用,对以后的实验也有了更好的定位。