嵌入式系统实验与课程设计指导书
- 格式:doc
- 大小:1.26 MB
- 文档页数:80
目 录
第一节 实验 ------------------------------------------------------------------------------------- 2
实验一 ADS 1.2集成开发环境练习 ----------------------------------------------------- 2
实验二 :汇编指令实验 1----------------------------------------------------------------- 3
实验三 :汇编指令实验 2----------------------------------------------------------------- 4
第二节 实验 ------------------------------------------------------------------------------------- 6
实验四 :ARM微控制器工作模式实验 -------------------------------------------------- 6
实验五 :C语言程序实验 ----------------------------------------------------------------- 9
第三节 实验 ------------------------------------------------------------------------------------11
实验六 :GPIO输出控制实验 1 ---------------------------------------------------------11
实验七 :GPIO输出控制实验 2 -------------------------------------------------------- 13
第四节 实验 ----------------------------------------------------------------------------------- 15
实验八 :存储器重映射实验 ------------------------------------------------------------ 15
实验九 :外部中断实验 ----------------------------------------------------------------- 17
第五节 实验 ----------------------------------------------------------------------------------- 19
实验十 :定时器实验 -------------------------------------------------------------------- 19
实验十一 :UART实验 ----------------------------------------------------------------- 21
实验十二 :IIC接口实验 ---------------------------------------------------------------- 24
第六节 彩色液晶绘图设计 ------------------------------------------------------------------ 28
第七节 UC/OS-II移植----------------------------------------------------------------------- 31
第八节 UC/OS-II下蜂鸣器设计 ------------------------------------------------------------ 35
第九节 RTC设计 ----------------------------------------------------------------------------- 38
第十节 数码管显示设计--------------------------------------------------------------------- 41
附 录 ------------------------------------------------------------------------------------------- 44
第一部分 实验课程
第一节 实验
实验一 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 ; 声明32位ARM指令
START MOV R0,#15 ; 设置参数
MOV R1,#8
ADDS R0,R0,R1 ; R0 = R0 + R1
B START
END
/********************************************************************/
实验二 :汇编指令实验 1
1 、实验目的
(1) 了解ADS 1.2集成开发环境以及ARMulator软件仿真
(2) 掌握ARM7TDMI汇编指令的用法,编写简单的汇编程序
(3) 掌握指令的条件执行和使用LDR/STR完成存储器的访问
2 、实验设备
硬件: PC机 一台
软件: Windows98/XP/2000系统,ADS1.2集成开发环境
3 、实验内容
(1) 使用LDR读取0x40003100的数据,将数据加1,如小于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 R0,#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 实验三 :汇编指令实验 2
1 、实验目的
(1) 掌握ARM数据处理指令的使用方法。
(2) 了解ARM指令灵活的第2个操作数。
2 、实验设备
硬件: PC机 一台
软件: Windows98/XP/2000系统,ADS1.2集成开发环境
3 、实验内容
(1) 使用MOV和MON指令访问ARM通用寄存器。
(2) 使用ADD/SUB/AND/ORR/CMP/TST等指令完成数据加减运算及逻辑运算。
4 、源代码:
X EQU 11 ; 定义X的值为11
Y EQU 8 ; 定义Y的值为8
BIT23 EQU (1<<23) ; 定义BIT23的值为0x00800000
AREA Example3,CODE,READONLY ; 声明代码段Example3
ENTRY ; 标识程序入口
CODE32 ; 声明32位ARM指令
START ; 使用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 <= R3
;使用MVN、SUB指令实现:R5 = 0x5FFFFFF8 - R8 * 8
MVN R0,#0xA0000007 ; 0xA0000007的反码为0x5FFFFFF8
SUB R5,R0,R8,LSL #3 ; R8左移3位,结果即是 R8 * 8
;使用CMP指令判断(5*Y/2)>(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 ; 计算R1 = 2*X
CMP R0,R1 ; 比较R0和R1,即(5*Y/2)和(2*X)进行比较
LDRHI R2,=0xFFFF0000 ; 若(5*Y/2)>(2*X),则R2 <= 0xFFFF0000
ANDHI R5,R5,R2 ; 若(5*Y/2)>(2*X),则R5 = R5&R2