ImageVerifierCode 换一换
格式:DOCX , 页数:117 ,大小:552.50KB ,
资源ID:23834265      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23834265.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式系统实验与课程设计指导书.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式系统实验与课程设计指导书.docx

1、嵌入式系统实验与课程设计指导书第一部分 实验课程第一节 实验实验一 ADS 1.2集成开发环境练习1 、实验目的了解ADS 1.2集成开发环境的使用方法2 、实验设备 硬件: PC机 一台 软件: Windows98/XP/2000系统,ADS1.2集成开发环境3 、实验内容 (1) 建立一个新的工程 (2) 建立一个汇编源文件,添加到工程 (3) 设置文本编译器支持中文 (4) 设置编译链接控制选项 (5) 编译连接工程 (6) 调试工程4 、源代码: AREA Example1,CODE,READONLY ; 声明代码段Example1 ENTRY ; 标识程序入口 CODE32 ; 声明

2、32位ARM指令START MOV R0,#15 ; 设置参数 MOV R1,#8 ADDS R0,R0,R1 ; R0 = R0 + R1 B START END /*/实验二 :汇编指令实验 11 、实验目的(1) 了解ADS 1.2集成开发环境以及ARMulator软件仿真 (2) 掌握ARM7TDMI汇编指令的用法,编写简单的汇编程序 (3) 掌握指令的条件执行和使用LDR/STR完成存储器的访问2 、实验设备 硬件: PC机 一台 软件: Windows98/XP/2000系统,ADS1.2集成开发环境3 、实验内容 (1) 使用LDR读取0x40003100的数据,将数据加1,如小

3、于10则用STR将结果写回原地址,如大于等于10,把0写回原地址。再次读出0x40003100数据,加1,判断周而复此循环。 (2) 使用ADS1.2单步、全速运行程序,设置断点,打开寄存器窗口监视R0、R1的值,打开存储器观察窗口监视0x40003100上的值。4 、 源代码:COUNT EQU 0x40003100 ; 定义一个变量,地址为0x40003100 AREA Example2,CODE,READONLY ; 声明代码段Example2 ENTRY ; 标识程序入口 CODE32 ; 声明32位ARM指令START LDR R1,=COUNT ; R1 = COUNT MOV R

4、0,#0 ; R0 = 0 STR R0,R1 ; R1 = R0,即设置COUNT为0 LOOP LDR R1,=COUNT ; 伪指令加载地址到R1 LDR R0,R1 ; R0 = R1 ADD R0,R0,#1 ; R0 = R0 + 1 CMP R0,#10 ; R0与10比较,影响条件码标志 MOVHS R0,#0 ; 若R0大于等于10,; 则此指令执行,R0 = 0 STR R0,R1 ; R1 = R0,即保存COUNT B LOOP END 实验三 :汇编指令实验 21 、实验目的(1) 掌握ARM数据处理指令的使用方法。 (2) 了解ARM指令灵活的第2个操作数。2 、实

5、验设备 硬件: PC机 一台 软件: Windows98/XP/2000系统,ADS1.2集成开发环境3 、实验内容 (1) 使用MOV和MON指令访问ARM通用寄存器。 (2) 使用ADD/SUB/AND/ORR/CMP/TST等指令完成数据加减运算及逻辑运算。4 、源代码: X EQU 11 ; 定义X的值为11Y EQU 8 ; 定义Y的值为8BIT23 EQU (123) ; 定义BIT23的值为0x00800000 AREA Example3,CODE,READONLY ; 声明代码段Example3 ENTRY ; 标识程序入口 CODE32 ; 声明32位ARM指令 START

6、; 使用MOV、ADD指令实现:R8 = R3 = X + Y MOV R0,#X ; R0 = X,X的值必须是8位图数据 MOV R1,#Y ; R1 = Y,Y的值必须是8位图数据 ADD R3,R0,R1 ; 即是R3 = X + Y MOV R8,R3 ; R8 (2*X)吗?若大于则R5 = R5&0xFFFF0000,;否则R5 = R5|0x000000FF MOV R0,#Y ADD R0,R0,R0,LSL #2 ; 计算R0 = Y + 4*Y = 5*Y MOV R0,R0,LSR #1 ; 计算R0 = 5*Y/2 MOV R1,#X MOV R1,R1,LSL #1

7、 ; 计算R1 = 2*X CMP R0,R1 ; 比较R0和R1,即(5*Y/2)和(2*X)进行比较 LDRHI R2,=0xFFFF0000 ; 若(5*Y/2)(2*X),则R2 (2*X),则R5 = R5&R2 ORRLS R5,R5,#0x000000FF ; 若(5*Y/2)(2*X),则R5 = R5|0x000000FF ; 使用TST指令测试R5的bit23是否为1,; 若是则将bit6位清零(使用BIC指令) TST R5,#BIT23 BICNE R5,R5,#0x00000040 B START END /*第二节 实验实验四 :ARM微控制器工作模式实验1 、实验

8、目的(1) 掌握使用MRS/MSR实现ARM工作模式的切换。 (2) 了解各模式下的寄存器。2 、实验设备 硬件: PC机 一台 软件: Windows98/XP/2000系统,ADS1.2集成开发环境3 、实验内容 (1) 使用MRS/MSR指令切换工作模式,并初始化各模式下的堆栈指针。 (2) 观察ARM在各模式下寄存器的区别。4 、源代码 :;定义堆栈的大小USR_STACK_LEGTH EQU 64SVC_STACK_LEGTH EQU 0FIQ_STACK_LEGTH EQU 16IRQ_STACK_LEGTH EQU 64ABT_STACK_LEGTH EQU 0UND_STACK

9、_LEGTH EQU 0 AREA Example7,CODE,READONLY ; 声明代码段Example7 ENTRY ; 标识程序入口 CODE32 ; 声明32位ARM指令START MOV R0,#0 MOV R1,#1 MOV R2,#2 MOV R3,#3 MOV R4,#4 MOV R5,#5 MOV R6,#6 MOV R7,#7 MOV R8,#8 MOV R9,#9 MOV R10,#10 MOV R11,#11 MOV R12,#12 BL InitStack ; 初始化各模式下的堆栈指针 ; 打开IRQ中断 (将CPSR寄存器的I位清零) MRS R0,CPSR ;

10、 R0 = CPSR BIC R0,R0,#0x80 MSR CPSR_cxsf,R0 ; CPSR = R0 ; 切换到用户模式 MSR CPSR_c, #0xd0 MRS R0,CPSR ; 切换到管理模式 MSR CPSR_c, #0xdf MRS R0,CPSR HALT B HALT ; 名称:InitStack; 功能:堆栈初始化,即初始化各模式下的堆栈指针。; 入口参数:无; 出口参数:无; 说明:在特权模式下调用此子程序,比如复位后的管理模式InitStack MOV R0, LR ; R0 LDRCC R2,R0+ADD R0,R0,#4 STRCC R2,R1,#4 ;-S

11、TRCC R2,R0+ADD R0,R0,#4 BCC LOOP0 LOOP1 LDR R1,=|Image$ZI$Limit| ;ZI的结束地址 MOV R2,#0 LOOP2 CMP R3,R1 ;将ZI区域全部清零 STRCC R2,R3,#4 BCC LOOP2 B Main ; 跳转到C程序代码Main()函数 END源代码(C语言部分) :#define uint8 unsigned char #define uint32 unsigned int#define N 100uint32 sum;/ 使用加法运算来计算1+2+3+.+(N-1)+N的值。(N0)void Main(v

12、oid) uint32 i; sum = 0; for(i=0; i0; dly-) for(i=0; i5000; i+); /* 名 称:main()* 功 能:控制蜂鸣器蜂鸣。*/int main(void) PINSEL0 = 0x00000000; / 设置管脚连接GPIO IO0DIR = BEEPCON; / 设置I/O为输入输出模式 / 设置P0.7为输出 while(1) IO0SET = BEEPCON; / BEEPCON = 1 DelayNS(15); IO0CLR = BEEPCON; / BEEPCON = 0 DelayNS(15); return(0);/*实

13、验七 :GPIO输出控制实验 21 、实验目的 熟悉ARM的GPIO控制2 、实验设备 硬件:PC机 一台教学实验开发平台 一套 软件:Windows98/XP/2000系统,ADS1.2集成开发环境3 、实验内容控制LED显示4 、原理图5 、源代码 :/* 文 件 名:main.c* 功 能:LED显示控制。* 通过GPIO直接控制8个LED产生流水灯效果* 说 明:短接LED跳线JP5。* 这个警告可忽略,C2892E: signed constant overflow*/#include config.h#define LED1 116 / P1.16 #define LED2 117

14、 / P1.17 #define LED3 118 / P1.18 #define LED4 119 / P1.19 #define LED5 120 / P1.20 #define LED6 121 / P1.21 #define LED7 122 / P1.22 #define LED8 10; dly-) for(i=0; i5000; i+); /* 名 称:main()* 功 能:根据表DISP_TAB来控制LED显示。*/int main(void) uint8 i; PINSEL1 = 0x00000000; / 端口配置为GPIO IO1DIR = LEDCON; / 配置LED控制I/O方向为输出 while(1) for(i=0; i8; i+) IO1CLR = DISP_

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1