陈云061124嵌入式系统实验.docx

上传人:b****7 文档编号:25476238 上传时间:2023-06-09 格式:DOCX 页数:26 大小:252.01KB
下载 相关 举报
陈云061124嵌入式系统实验.docx_第1页
第1页 / 共26页
陈云061124嵌入式系统实验.docx_第2页
第2页 / 共26页
陈云061124嵌入式系统实验.docx_第3页
第3页 / 共26页
陈云061124嵌入式系统实验.docx_第4页
第4页 / 共26页
陈云061124嵌入式系统实验.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

陈云061124嵌入式系统实验.docx

《陈云061124嵌入式系统实验.docx》由会员分享,可在线阅读,更多相关《陈云061124嵌入式系统实验.docx(26页珍藏版)》请在冰豆网上搜索。

陈云061124嵌入式系统实验.docx

陈云061124嵌入式系统实验

嵌入式系统设计实验报告

 

班级:

20090611

学号:

2009061124

姓名:

陈云

成绩:

指导教师:

武俊鹏刘书勇

 

1.实验一

1.1实验名称

博创UP-3000实验台基本结构及ADS1.2软件开发环境使用方法

1.2实验目的

1.通过本次课程学习各个外设的原理和使用方法

2.为今后各个接口实验打下夯实基础

1.3实验环境

硬件:

ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。

软件:

PC机操作系统win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。

1.4实验内容及要求

1.了解嵌入式系统开发流程

2.熟悉UP-net3000实验平台的核心硬件电路和外设

3.了解ARM,JTAG的安装与使用

4.通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态

1.5实验设计与实验步骤

熟悉实验环境以及检查实验台,并在电脑上安装编译环境UP-NETARM3000嵌入式开发平台支持ARMSDT2.5和ADS1.2两个编译环境。

超级终端是Windows自带程序,在附件中的通讯目录下,了解超级终端的使用方法,并安装JTAG驱动程序。

1.6实验过程与分析

1.运行Windows系统下的超级终端(HyperTerminal)应用程序,新建一个通信终端。

2.在接下来的对话框中选择ARM开发平台实际连接的PC机串口(如COM1),

设置通信的格式和协议。

3.完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存。

4、启动开发板,按住开发板上键盘的任意按键,使开发板进入BIOS设置状态。

5.该画面上提示了该BIOS的版本等信息。

ShellMenu是平台的检测菜单,每个条目的最左边字母是该功能的快捷键,按PC机键盘相应键将执行对应功能。

6.用户可以按超级终端的提示尝试部分测试功能。

其中:

l:

测试LCD的文本和图形显示。

执行该命令后LCD上会打出文本提示,然后进入图形模

式并显示一幅彩色条形图案,然后在超级终端上看提示按任意键返回文本模式,并退出LCD

测试返回测试菜单。

u:

激活平台的USB连接,开发平台可以被PC机认成一个U盘,从而可以方便的将字库,

应用程序等文件从PC机拷贝到平台的FLASH中。

必须保证USB电缆正确连接。

t:

设置平台RTC时间参数,该时间由平台电池保证持续计时。

请按提示确认修改时间并

分别输入时间。

最后请保存,否则无效。

i:

测试平台的音频电路,执行该命令后可以听到一段从平台扬声器发出的音乐。

请适当调

节音量电位器。

m:

测试平台的两个电机,需要打开电机附近的电机电源开关,按提示分别测试直流电机

和步进电机。

b:

引导FLASH中的应用程序system.bin。

执行该功能将退出BIOS状态,把控制交给应

用程序。

7、按PC键盘的u键(要使超级终端处于活动状态)这时,在“我的电脑”中可以发现多了一个“可移动磁盘”,这就是开发板的海量存储器16M非线性Flash。

开发板就像一个U盘,可以通过“我的电脑”进行操作。

把上两节内容中生成的system.bin文件通过USB下载到嵌入式开发板中,复位系统,运行并检查输出结果。

1.7实验结果总结

了解嵌入式系统开发流程,熟悉UP-net3000实验平台的核心硬件电路和外设,学会了使用超级终端,检验各个外设的工作状态,确认实验台的确认性以及完整性。

1.8心得体会

本次试验十分简单易懂,只要了解外设的基本原理和使用方法,就能了解整个接口实验涉及到的一些知识,虽然简单好懂但是要注意细节,了解整个流程,不能疏忽任何步骤,才能很好的做出实验。

2.实验二

2.1实验名称

ADS1.2软件开发环境使用方法

2.2实验目的

1.熟悉ADS1.2开发环境,学会ARM仿真器的使用。

2.使用ADS编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

2.3实验环境

硬件:

ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。

软件:

PC机操作系统win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。

2.4实验内容及要求

本次实验使用ADS集成开发环境。

新建一个简单的工程文件,并编译这个工程文件。

学习ARM仿真器的使用和开发环境的设置。

下载已经编译好的文件到嵌入式控制器中运行。

学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。

2.5实验设计与实验步骤

1.新建工程,将“Exp2ARM串口实验”中的文件添加到工程中,这些是启动时所需要的文件。

2.定义与UART有关的各个寄存器地址和一些特殊的位命令。

初始化开发板,把LCD显示模式转换为文本显示模式并清屏。

完成向液晶屏输出步骤。

主要有以下各寄存器(44b.h):

/*UART的最小模式*/

#definerULCON0(*(volatileunsigned*)0x1d00000)

#definerULCON1(*(volatileunsigned*)0x1d04000)

#definerUTXH0(*(volatileunsignedchar*)0x1d00020)

#definerUTXH1(*(volatileunsignedchar*)0x1d04020)

#definerURXH0(*(volatileunsignedchar*)0x1d00024)

#definerUFCON1(*(volatileunsigned*)0x1d04008)

#definerUMCON0(*(volatileunsigned*)0x1d0000c)

#defineWrUTXH0(ch)(*(volatileunsignedchar*)0x1d00020)=(unsignedchar)(ch)

#defineWrUTXH1(ch)(*(volatileunsignedchar*)0x1d04020)=(unsignedchar)(ch)

#defineRdURXH0()(*(volatileunsignedchar*)0x1d00024)

#defineRdURXH1()(*(volatileunsignedchar*)0x1d04024)

#defineUTXH0(0x1d00020)//byte_accessaddressbyBDMA

#defineUTXH1(0x1d04020)

#defineURXH0(0x1d00024)

3.编写串口驱动函数(MyUart.c)

图2.1串口初始化

图2.2发送数据图2.3接收数据

4.在主函数中实现将从串口0接收到的数据发送到串口0(Main.c)其流程图如图2.4所示:

图2.4主函数

2.6实验过程与分析

编写Helloworld!

intmain(void)

{ARMTargetInit();//开发版初始化

LCD_Init();

LCD_ChangeMode(DspTxtMode);//转换LCD显示模式为文本显示模式

LCD_Cls();//文本模式下清屏命令

LCD_printf("Helloworld!

\n");//向液晶屏输出

Uart_Printf("\nHelloworld!

\n");//向串口输出

while

(1);

}

实现ARM和计算机之间的串行通讯

Uart_SendByte(0,0xa);//换行

Uart_SendByte(0,0xd);//回车

err=Uart_Getch(c1,0,0);//从串口采集数据

Uart_SendByte(0,c1[0]);//显示采集的数据

2.7实验结果总结

LCD显示屏输出了“HelloWorld!

”语句,实现了文本方式的LCD输出,并实现了ARM和计算机之间的串行通讯。

2.8心得体会

通过本实验,了解了ARM和计算机之间的串行通讯,也学会ADS1.2的配置条件,掌握了LCD文本输出的方法。

3.实验三

3.1实验名称

键盘控制方法及LED驱动设计

3.2实验目的

1.学习键盘及LED驱动原理。

2.掌握ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。

3.3实验环境

硬件:

ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。

软件:

PC机操作系统win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。

3.4实验内容及要求

1.通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。

要求从右至左循环显示至少四位数字。

2.基本功能实现之后可考虑实现从左至右显示四位及四位以上数字(最大八位),并可设置清零键等扩展功能。

3.5实验设计与实验步骤

1.新建工程,将“Exp3键盘及LED驱动实验”中的文件添加到工程。

2.定义ZLG7289寄存器(ZLG7289.h)

#defineZLG7289_CS(0x20)//GPB5

#defineZLG7289_KEY(0x10)//GPG4

#defineZLG7289_ENABLE()do{ZLG7289SIOBand=rSBRDR;ZLG7289SIOCtrl=rSIOCON;

rSIOCON=0x31;rSBRDR=0xff;rPDATB&=(~ZLG7289_CS);}while(0)

#defineZLG7289_DISABLE()do{rPDATB|=ZLG7289_CS;rSBRDR=ZLG7289SIOBand;

rSIOCON=ZLG7289SIOCtrl;}while(0)

3.编写ZLG7289驱动函数(ZLG7289.c)

4.定义键盘映射表:

(Keyboard16.c)

unsignedcharKeyBoard_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键值映射表,通过查找键盘映射表来确定键盘扫描码对应的按键值。

图3.1ZLG7289复位图3.2从ZLG7289读取键值

5.定义键值读取函数,流程图如图3-3所示。

(Keyboard16.c)

图3.3键值读取函数

6.编写主函数,将按键值在数码管上显示,流程图如图3-4所示。

图3.4主函数

3.6实验过程与分析

key=GetKey();//得到按键值

Delay(5000);

ZLG7289_ENABLE();//使zlg7289占有同步串口

Delay(100);//延时

WriteSDIO(ZLG7289_CMD_DATA0|7);//数码管以方式0译码,第一个数码管亮

WriteSDIO(key);

Delay(100);//延时

WriteSDIO(ZLG7289_CMD_CLSHIFT);//循环左移

WriteSDIO(ZLG7289_CMD_HIDE);//使个位数码管显示

WriteSDIO

(1);

Uart_Printf("\nARMTargetInitOK.");

ZLG7289_DISABLE();//zlg7289放弃同步串口控制

清零命令为如下两行代码。

WriteSDIO(ZLG7289_CMD_RST);//清零

Zlg7289_Reset();//zlg7289复位

3.7实验结果总结

成功在LED上显示键盘输入的值,实现从右至左循环显示八位数字,并可以清零。

3.8心得体会

学会了LED的显示方法,进一步理解了实验环境,掌握ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。

4.实验四

4.1实验名称

电机转动控制及中断实验

4.2实验目的

1.熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。

2.编程实现ARM系统的PWM输出和I/O输出,前者用于控制直流电机,后者用于控制步进电机。

3.了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。

4.了解44B0处理器上中断的应用。

5.学习在44B0处理器上中断的应用。

6.进一步熟悉平台外围硬件及其驱动程序的编写。

4.3实验环境

UP-net3000实验平台;ADS1.2开发环境

4.4实验内容及要求

1.编程实现ARM芯片的一对PWM输出用于控制直流电机的转动,通过A/D旋钮控制其转动方式。

2.编程实现ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。

3.通过键盘控制直流电机与步进电机的切换。

4.设置并启动定时器。

5.设置中断,编写定时器中断服务程序,对中断次数进行计数并在LED上显示结果。

4.5实验设计与实验步骤

1.新建工程,将“Exp6电机转动控制实验”中的文件添加到工程。

2.编写直流电机初始化数(MotorCtrl.c)如图4.1所示

3.控制直流电机如图4.3所示

4.控制步进电机如图4.2所示

图4.1直流电机初始化数图4.2控制步进电机

图4.3控制直流电机

4.6实验过程与分析

1.对直流电机进行编程和测试,掌握转速和旋转方向的设定方法。

2.对步进电机进行编程和测试,掌握ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。

3.对主函数进行编程,用键盘响应直流电机与步进电机的切换控制。

4.掌握中断相关语句的应用,弄清定义的中断向量、中断向量号,编写中断响应函数,并完成中断响应控制。

以下为控制电机的主要代码:

for(;;)

{

begin:

for(;;)

{if((rUTRSTAT0&0x1))//有输入,则跳出

{*Revdata=RdURXH0();

gotonext;}}

next:

SetPWM(0);

lastADData=GetADresult(0);

for(;;)

{loop:

if((rUTRSTAT0&0x1))//有输入,则返回

{*Revdata=RdURXH0();

gotobegin;}

if(abs(lastADData-ADData)<20)

gotoloop;

if(count>=0)//转角大于零

{…}

else//转角小于零

{…}

lastADData=ADData;

}

}

4.7实验结果总结

实现了直流电机与步进电机的基本设置和控制,可以通过键盘控制电机之间的切换。

完成了中断的响应和定时中断。

4.8心得体会

通过本次实验,掌握了电机工作原理,了解了中断的意义和实现方法,实现了简单了中断处理程序。

了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。

5.实验五

5.1实验名称

LCD驱动及触摸屏驱动实验

5.2实验目的

1.了解触摸屏的基本概念与原理。

2.理解触摸屏与LCD的关系。

3.编程实现对触摸屏的控制。

5.3实验环境

UP-net3000实验平台;ADS1.2开发环境

5.4实验内容及要求

1.了解触摸屏基本原理,理解对触摸屏进行输出标定、与LCD显示器配合的过程。

2.通过编程实现触摸两点自动在两点间划直线。

3.通过编程实现在触摸屏上动态画出曲线。

5.5实验设计与实验步骤

1.新建工程,将“Exp7LCD驱动控制实验”中的文件添加到工程中。

2.定义有关常量与宏(lcd320.h,lcd320.c)

#defineLCDWIDTH320

#defineLCDHEIGHT240

U32*pLCDBuffer16=(U32*)0xc000000;//一级缓存指针

U32LCDBuffer[LCDHEIGHT][LCDWIDTH];//二级缓存

将其定义为32位是为了与RGB颜色兼容。

3.编写LCD初始化函数(lcd320.c)。

设置各功能寄存器,清空显示缓存区。

4.编写LCD刷新函数(lcd320.c)。

此函数主要是将二级缓存LCDBuffer的数据由32位彩色图形信息转换成8位256色的图形信息,然后放到pLCDBuffer16指向的一级缓存。

转换公式:

pixcolor=(pbuf[0]&0xe0)|((pbuf[1]>>3)&0x1c)|(pbuf[2]>>6)。

其中,pbuf[0]、pbuf[1]、pbuf[2]是一个象素的32位彩色数据的前24位,分别代表R、G、B。

5.编写主函数(main.c)

在LCD上显示256色图形的关键是填充二级显示缓冲,将显示象素的24位颜色信息写入LCDBuffer。

将RGB三种基本颜色按一定比例混合即可构成更复杂的颜色,每个象素的三种基本颜色分别占一个字节,可以方便的在程序里改写各基本颜色的数值,从而改变该象素。

5.6实验过程与分析

1.在定义触屏响应功能的函数中对点击触屏进行响应函数的修改,在其中添加修改点颜色的函数,修改得到的触摸点的颜色,并显示在LCD上。

2.获取第一个点坐标并储存,获取第二个点坐标并储存,编写划线函数,取得两点间直线上所有点的坐标,并对其改变颜色,显示在LCD上,即完成划直线功能。

3.将划线函数应用到响应触屏移动消息的函数下,即可对连续获得的触摸坐标进行连续的画短直线,连接成曲线,完成动态划线功能。

下面是实验中主函数的部分代码。

其中jcolor为颜色的代码

jcolor=0x000000ff;

for(i=0;i<240;i++)

{if(i==80||i==160)

jcolor<<=8;

for(j=288;j<320;j++)

LCDBuffer[i][j]=jcolor;

}

LCD_Refresh();

while

(1);

return0;

5.7实验结果总结

了解了触摸屏响应动作消息的函数的工作原理,通过修改实现了触摸屏响应不同动作进行画点、划线、动态划线的功能。

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、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。

6.4实验内容及要求

对UCOS-Ⅱ内核进行裁剪并移植到ARM7微处理器上。

掌握μcos-II裁剪的基本原理与嵌入式编程实现方法。

学习如何根据具体情况对μcos-II操作系统进行裁剪,从而得到即满足需要,又非常紧凑的应用软件系统。

通过对μcos-II配置文件(OS_CFG.H)中相关的配置常量进行设置,实现对μcos-II的裁剪。

给出裁剪的详细过程与裁剪结果说明,并生成裁剪后的操作系统文件。

6.5实验设计与实验步骤

1.添加并打开工程。

2.按照要求,载入STARTUP目录下文件,完成系统初始化、环境配置。

3.载入UCOS-Ⅱ的全部源码,与处理器架构相关的文件位于arch目录下。

4.在os_cpu.h中编写与处理器和编译器相关的代码。

5.编写与操作系统和处理器相关的函数。

6.6实验结果总结

按照要求进行了裁剪,得到了满足需要又紧凑的应用软件系统。

6.7心得体会

了解了UCOS-Ⅱ内核的主要结构,掌握了UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现方法,学会了如何根据具体情况对UCOS-Ⅱ操作系统进行裁剪。

7.实验七

7.1实验名称

UCOS-Ⅱ在ARM微处理器上的移植和编译

7.2实验目的

1.了解UCOS-Ⅱ内核的主要结构。

2.掌握将UCOS-Ⅱ内核移植到ARM7处理器上的基本方法。

7.3实验环境

硬件:

ARM嵌入式开发平台、用于ARM7TDMI的JTAG仿真器、PC机Pentium100以上、串口线。

软件:

PC机操作系统win98、Win2000或WinXP、ARMSDT2.51或ADS1.2集成开发环境、仿真器驱动程序、超级终端通讯程序。

7.4实验内容及要求

1.将UCOS-Ⅱ内核进行移植到ARM7微处理器上。

2.编写两个简单任务,在超级终端上观察两个任务的切换。

7.5实验设计与实验步骤

1.该实验的文件分为两类,其一是STARTUP目录下的系统初始化、配置等文件,其二是uCOS-II的全部源码,arch目录下的3个文件是和处理器架构相关的。

2.设置os_cpu.h中与处理器和编译器相关的代码

typedefunsignedcharBOOLEAN;

typedefunsignedcharINT8U;

typedefsignedcharINT8S;

typedefunsignedintINT16U;

typedefsignedintINT16S;

typedefunsignedlongINT32U;

typedefsignedlongINT32S;

1)与编译器相关的数据类型。

因为不同的微处理器有不同的字长,所以uCOS-II的移植包括了一系列的类型定义以确保其可移植性。

2)OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。

与所有的实时内核一样,uCOS-II需要先禁止中断再访问代码的临界区,并且在访问完毕后重新允许中断。

3)OS_STK_GROWTH。

uCOS-II被设计成

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿理论经验

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

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