1、嵌入式系统设计实验报告班 级: 20090612 学 号: 2009112107 姓 名: 侯金钟 成 绩: 指导教师: 武俊鹏、刘书勇 1. 实验一1.1实验名称嵌入式系统硬件开发环境1.2实验目的1熟悉UP-net3000实验平台。2. 超级终端设置及BIOS 功能使用。1.3实验环境硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上、串口线。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。1.4 实验内容及要求熟悉 UP-net
2、3000 实验平台的硬件电路和外设,ARM JTAG 的安装和使用,利用超级终端检验外设的工作状态。1.5 实验设计与实验步骤建立工程(1)运行 ARM SDT 2.5 集成开发环境(ARM Project Manager).(2)在新建的工程中,如图 1A-2 所示,选中工程树的“根部” 。(3)因为开发板上的嵌入式处理器ARM7TDMI 没有浮点处理器,所以,如图1A-3 所示,在弹出的对话框中设置 Floating Point Processor 为 none,并保持其他的设置不变。(4)选中工程树的“根部” ,通过菜单Project | Tool Configuration for w
3、ork1.apj | asmlink| Set,对整个工程的连接方式进行设置。(5)在弹出的对话框中,选中Entry and Base 标签,如图1A-4 所示,设置连接的Read-Only(只读)和 Read-Write(读写)地址。(6)选择 Linker Configuration 的 ImageLayout 标签,(7)选择 Project | Edit Project Tamplete 菜单,弹出 Project Template Editor 对话框。(8)选择 Project | Edit Variables for work1.apj,弹出 Edit Variables for
4、 work1.apj 对话框。2进行程序的在线仿真、调试1.6 实验过程与分析熟悉 UP-net3000 实验平台的硬件电路和外设,安装了 ARM JTAG,利用超级终端检验了外设的工作状态。1.7 实验结果总结软件安装成功,结果显示正常。1.8 心得体会通过此次试验,我对 ARM 的环境的功能有一定的了解与完善。对试验台有了基本的认识与使用。2. 实验二2.1实验名称嵌入式系统软件开发环境2.2实验目的1.熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。2.使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。2.3实验环境硬件:ARM 嵌入式开发平台、用于
5、ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上、串口线。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。2.4 实验内容及要求本次实验使用ADS 集成开发环境。新建一个简单的工程文件,并编译这个工程文件。学习ARM 仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量。2.5 实验设计与实验步骤(1)运行 ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite
6、) 。(2)在新建的工程中,选择Debug 版本,使用Edit | Debug Settings菜单对Debug 版本进行参数设置。(3)在Debug Settings 对话框中选择Target Settings 项。在Post-linker一栏中选择ARM from ELF。(4)在Debug Settings 对话框中选择ARM Linker 项(5)在第四步中如果选择简单的地址连接设置,在Debug Settings 对话框中选择ARMLinker 项(6)回到的工程窗口中,选择Release 版本,使用Edit | Release Settings菜单对Release 版本进行参数设置
7、。(7)参照第(3) 、 (4) 、 (5) 、 (6)步在Release Settings 对话框中设置Release版本的Post-linker、连接地址范围、入口模块和输出文件。(8)回到如图1B-3 所示的工程窗口中,选择Targets 选项卡,如图1B-11 所示。选中DebugRel 版本,按Del 键将其删除。DebugRel 子树是一个折衷版本,通常用不到,所以在这里删除。2.6 实验过程与分析1)回到工程窗口选中Debug 版本,执行菜单Project | Make 对工程进行编译连接。(2)在 ADS 中执行菜单 Project | Debug 启动 ADS1.2 的调试工
8、具 AXD。(3)在 AXD 中执行菜单 Options | Configure Target 对 AXD 进行设置。(4)点Select 按钮选择远程连接为ARM ethernet driver,点Configure 按钮输入仿真器的IP 地址。(5)等待程序装载完毕以后,通过Execute | Go 菜单以及Execute | Stop(或者工具栏中的相应按钮)运行或暂停程序。程序暂停后在窗口中将显示出程序暂停的位置。(6)通过 Execute | Step 菜单(或者工具栏中的相应按钮)可以单步运行程序。(7)程序停止后可以通过Processor Views | Sources 菜单查看
9、源文件,并可在适当位置按F9 设置端点。(8)使用在Processor View 菜单下的Registers、Variables 和Memory 命令可以查看工作寄存器或者内存变量。读者可以逐一地尝试,为以后调试程序打下基础。2.7 实验结果总结超级终端输出“Hello World!” 。2.8 心得体会基本了解了 ADS1.2 的配置条件,学会了 ARM 仿真器的使用方法。3. 实验三3.1实验名称键盘及LED实验3.2实验目的1学习键盘及LED 驱动原理。2掌握ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。3.3实验环境硬件:ARM 嵌入式开
10、发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上、串口线。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。3.4 实验内容及要求通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。要求从右至左循环显示至少四位数字。基本功能实现之后可考虑实现从左至右显示四位及四位以上数字(最大八位),并可设置清零键等扩展功能。3.5 实验设计与实验步骤利用所给的基础代码进行调试,观察输出结果,结合指导书和教材掌握基本原理和源代码的编写方式
11、。根据实验的要求设计函数流程,并反复调试,实现功能。1新建工程,将“Exp3 键盘及LED 驱动实验”中的文件添加到工程。2定义ZLG7289 寄存器(ZLG7289.h)#define ZLG7289_CS (0x20) /GPB5#define ZLG7289_KEY (0x10) /GPG4#define ZLG7289_ENABLE() doZLG7289SIOBand=rSBRDR;ZLG7289SIOCtrl=rSIOCON;rSIOCON=0x31;rSBRDR=0xff;rPDATBwhile(0)#define ZLG7289_DISABLE() dorPDATB|=ZLG7
12、289_CS;rSBRDR=ZLG7289SIOBand;rSIOCON=ZLG7289SIOCtrl;while(0)3. 编写ZLG7289 驱动函数(ZLG7289.c)4定义键盘映射表:(Keyboard16.c)unsigned char KeyBoard_Map=4,8,11,0,0,0,0,0,5,9,12,15,1,0,0,0,6,10,13,16,2,3,0,0,7,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;/64 键值映射表,通过查找键盘映射表来确定键盘扫描码
13、对应的按键值。5定义键值读取函数。 (Keyboard16.c)6编写主函数,将按键值在数码管上显示。3.6 实验过程与分析利用键盘驱动函数实现基本数字输入,然后利用循环左移函数实现输入数字做一样功能,并通过改变函数中相应 delay 的值来消除键盘按键带来的抖动。3.7 实验结果总结按键值可以在 LED 上显示出来。要求从右至左循环显示八位数字,同时可以复位清零。达到实验的效果。3.8 心得体会通过本次实验,我了解了 LED 的显示屏幕的数字的移位功能,这个功能不止可以用一个方法实现,而循环左移是其中比较巧妙且省力的一种,在遇到类似情况的时候,可以优先考虑能不能利用到文件中已经存在的函数,这
14、样可以不必自己编写函数,省时省力。是一种可靠的方法。4. 实验四4.1实验名称电机转动控制及中断实验4.2实验目的1熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。2编程实现ARM系统的PWM输出和I/O 输出,前者用于控制直流电机,后者用于控制步进电机。3.了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。4.了解44B0处理器上中断的应用。5.学习在44B0处理器上中断的应用。6.进一步熟悉平台外围硬件及其驱动程序的编写。4.3实验环境硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pe
15、ntium100 以上、串口线。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。4.4 实验内容及要求1学习步进电机和直流电机的工作原理,了解实现两个电机转动对于系统的软件和硬件要求。学习 ARM 知识,掌握 PWM 的生成方法,同时也要掌握 I/O的控制方法。2编程实现ARM芯片的一对PWM输出用于控制直流电机的转动,通过A/D旋钮控制其转动方式。3编程实现ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。4通过键盘控制直流电机与步进电机的
16、切换。5设置并启动定时器。6设置中断,编写定时器中断服务程序,对中断次数进行计数并在LED上显示结果。4.5 实验设计与实验步骤1添加并打开工程。2进行直流电机初始化设置和代码编写。3进行步进电机初始化设置和代码编写。4对 Timer3 编程,编写定时器中断服务程序,完成对中断次数的计数。5编写 LED 计数显示函数,使 LED 能正确计数并显示 0-9999。6编写中断初始化函数和中断响应函数。7终端下载测试。4.6 实验过程与分析1对直流电机进行编程和测试,掌握转速和旋转方向的设定方法。2对步进电机进行编程和测试,掌握 ARM 的四路 I/O 通道,实现环形脉冲分配用于控制步进电机的转动,
17、通过 A/D 旋钮控制步进电机的转角。3对主函数进行编程,用键盘响应直流电机与步进电机的切换控制。4掌握中断相关语句的应用,弄清定义的中断向量、中断向量号,编写中断响应函数,并完成中断响应控制。4.7 实验结果总结实现了直流电机与步进电机的基本设置和控制,可以通过键盘控制电机之间的切换。完成了中断的响应和定时中断。当对其中一个旋钮转动时,就可以由直流电机转换成步进电机的转换,达到实验的效果。4.8 心得体会通过本次实验,我了解了直流电机和步进电机的工作原理,同时也知晓了电机间的转换过程,了解其中的道理内涵,熟悉了 ARM 自带的 A/D 转换器的工作原理及编程方法,了解了中断的意义和实现方法,
18、实现了简单了中断处理程序。同时我也收获了很多关于 ARM 处理机的相关知识。5. 实验五5.1实验名称触摸屏驱动实验5.2实验目的1了解触摸屏的基本概念与原理。2理解触摸屏与LCD的关系。3. 编程实现对触摸屏的控制。4. 熟悉用 ARM 内置的 LCD控制器驱动 LCD。5.3实验环境硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上、串口线。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。5.4 实验内容及要求1了解触摸屏基本原理
19、,理解对触摸屏进行输出标定、与 LCD 显示器配合的过程。2通过编程实现触摸两点自动在两点间划直线。3通过编程实现在触摸屏上动态画出曲线。5.5 实验设计与实验步骤1添加并打开工程。2在头文件中定义宏和常量及驱动函数。#define ADS7843_CTRL_START 0x80#define ADS7843_GET_X 0x50#define ADS7843_GET_Y 0x10#define ADS7843_CTRL_12MODE 0x0#define ADS7843_CTRL_8MODE 0x8#define ADS7843_CTRL_SER 0x4#define ADS7843_CTR
20、L_DFR 0x0#define ADS7843_CTRL_DISPWD 0x3 / Disable power down#define ADS7843_CTRL_ENPWD 0x0 / enable power down#define ADS7843_PIN_CS (16) /GPF6#define ADS7843_PIN_PEN (15) /GPG5/触摸屏动作/#define TCHSCR_ACTION_NULL 0#define TCHSCR_ACTION_CLICK 1 /触摸屏单击#define TCHSCR_ACTION_DBCLICK 2 /触摸屏双击#define TCHSC
21、R_ACTION_DOWN 3 /触摸屏按下#define TCHSCR_ACTION_UP 4 /触摸屏抬起#define TCHSCR_ACTION_MOVE 5 /触摸屏移动#define TCHSCR_IsPenNotDown() (rPDATG/触摸屏返回电压值范围3校准触摸屏坐标,进行坐标转换。4实现触屏取点并显示功能。将触摸动作及触摸点坐标在超级终端上显示出来。5实现两点间自动划线功能。6实现触摸屏动态划线功能。可以使用TchScr_GetScrXY()函数(第三个参数为0)来获得液晶屏的x、y 方向的电压范围,分别点触摸屏有效面积的左上角和右下角,得到下列参数:TchScr_X
22、max=1840;TchScr_Xmin=176;TchScr_Ymax=195;TchScr_Ymin=1910;/此数值仅供参考,请以实际校对为准5.6 实验过程与分析1在定义触屏响应功能的函数中对点击触屏进行响应函数的修改,在其中添加修改点颜色的函数,修改得到的触摸点的颜色,并显示在 LCD 上。2获取第一个点坐标并储存,获取第二个点坐标并储存,由编写的划线函数取得储存的两点间直线上所有点的坐标,并对其改变颜色,显示在 LCD 上,即完成划直线功能。3将划线函数应用到响应触屏移动消息的函数下,即可对连续获得的触摸坐标进行连续的画短直线,连接成曲线,完成动态划线功能。5.7 实验结果总结了
23、解了触摸屏响应动作消息的函数的工作原理,通过修改实现了触摸屏响应不同动作进行画点、划线、动态划线的功能。验证触摸屏的灵敏度的实验。5.8 心得体会通过这次实验,我基本掌握了通过编程驱动触摸屏以及触摸屏响应时间,实现了触摸屏对不同动作消息的响应。同时也知晓了在触摸屏上的描点画线的实现,但是由于不知名的原因,描点画线的误差较大,位置偏差较大,同时触摸屏有时会不灵敏,出现时好时坏的现象,但是由于我们的辛勤钻研,最终克服了这个困难,实现了最后的触摸屏的实现。6. 实验六6.1实验名称UCOS-在ARM微处理器上的裁剪6.2实验目的1了解UCOS-内核的主要结构。2. 掌握UCOS-裁剪的基本原理与嵌入式编程实现方法。3. 学习如何根据具体情况对UCOS-操作系统进行裁剪。4通过对UCOS-配置文件(OS_CFG.H)中相关的配置常量进行设置,实现对UCOS-的裁剪。6.3实验环境硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以上、串口线。软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。6.4 实验内容及要求对 UCOS-内核进行裁剪并移植到 ARM7 微处理器上。