嵌入式系统实验报告.docx
- 文档编号:24387014
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:17
- 大小:90.70KB
嵌入式系统实验报告.docx
《嵌入式系统实验报告.docx》由会员分享,可在线阅读,更多相关《嵌入式系统实验报告.docx(17页珍藏版)》请在冰豆网上搜索。
嵌入式系统实验报告
(此文档为word格式,下载后您可任意编辑修改!
)
嵌入式系统设计实验报告
班级:
学号:
姓名:
成绩:
指导教师:
1.实验一
1.1实验名称
博创UP-3000实验台基本结构及使用方法
1.2实验目的
1.学习嵌入式系统开发流程。
2.熟悉UP-net3000实验平台的核心硬件电路和外设。
3.增加对各个外设的了解,为今后各个接口实验打下基础。
1.3实验环境
博创UP-NETARM3000嵌入式开发平台
1.4实验内容及要求
(1)嵌入式系统开发流程概述
(2)熟悉UP-net3000实验平台的核心硬件电路和外设
(3)ARMJTAG的安装与使用
(4)通过操作系统自带的通讯软件超级终端,检验各个外设的工作状态
(5)通过本次课程对各个外设的了解,为今后各个接口实验打下基础
1.5实验设计与实验步骤
1.硬件安装
2.软件安装
(1)超级终端:
运行Windows系统下的超级终端(HyperTerminal)应用程序,新建一个通信终端;在接下来的对话框中选择ARM开发平台实际连接的PC机串口;完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置保存为一个特定超级终端到桌面上,以备后用。
(2)JTAG驱动程序的安装:
执行armJtag目录下armJtagSetup.exe程序,选择安装目录,安装JTAG软件。
1.6实验过程与分析
(1)了解嵌入式系统开发流程
(2)对硬件的安装
(3)对软件的安装
1.7实验结果总结
通过本次实验对嵌入式系统开发流程进行了了解,并且对硬件环境和软件环境进行了安装配置,通过本次实验对以后的接口实验打了基础。
1.8心得体会
通过本次实验对嵌入式实验有了初步的了解,对基本开发流程也有了初步的了解。
2.实验二
2.1实验名称
ADS1.2软件开发环境使用方法
2.2实验目的
熟悉ADS1.2开发环境,学会ARM仿真器的使用。
使用ADS编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。
2.3实验环境
(1)ADS1.2开发环境
(2)博创UP-NETARM3000嵌入式开发平台
(3)PC
(4)串口线
2.4实验内容及要求
本次实验使用ADS集成开发环境,新建一个简单的工程文件,并编译这个工程文件。
学习ARM仿真器的使用和开发环境的设置。
下载已经编译好的文件到嵌入式控制器中运行。
学会在程序中设置断点,观察系统内存和变量,为调试应用程序打下基础。
2.5实验设计与实验步骤
(1)运行ADS1.2开发环境
(2)新建工程文件
(3)编译工程文件
(4)下载编译好的文件到嵌入式控制器中运行
2.6实验过程与分析
(1)实现HelloWorld!
最终在输出了HelloWorld
(2)编程实现ARM和计算机之间的串行通讯
实现了串口通信,用ARM监视串口,接收到的字符串由ARM通过串口发送给超级终端,最终在超级终端上显示了按下的键。
学习了串行通讯原理,了解串行通讯控制器,阅读ARM芯片文档,掌握ARM的UART相关寄存器的功能,熟悉ARM系统硬件的UART相关接口。
2.7实验结果总结
对ADS1.2开发环境使用和AXDDebugger使用方法有了初步的了解,基本成功运行了编译好的工程文件。
2.8心得体会
学习了ADS1.2开发环境的使用方法和调试方法。
使用ADS编译、下载、调试并跟踪一段已有的程序,了解了嵌入式开发的基本思想和过程。
3.实验三
3.1实验名称
键盘控制方法及LED驱动设计
3.2实验目的
熟悉ZLG7289芯片的内部结构,掌握用ZLG7289驱动键盘和LED的方法,掌握ARM汇编语言和C语言的编程方法编写出一段程序,要求能在LED上显示出小键盘上按下的4位数字。
3.3实验环境
(1)ADS1.2开发环境
(2)博创UP-NETARM3000嵌入式开发平台
(3)PC
(4)串口线
3.4实验内容及要求
通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。
3.5实验设计与实验步骤
(1)新建工程,将“Exp3键盘及LED驱动实验”中的文件添加到工程。
(2)定义ZLG7289寄存器
(3)编写ZLG7289驱动函数
(4)定义键盘映射表
(5)定义键值读取函数
(6)编写主函数
3.6实验过程与分析
(1)定义ZLG7289寄存器
#defineZLG7289_CS
#defineZLG7289_KEY
#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)
(2)主函数中需要在开始初始化zlg7289。
编写驱动和键值映射之后,在一个循环里面从键盘中读取按键的号码,根据键值映射读出按键的值。
然后在主函数中,将读出的按键值在数码管上显示出来。
(3)Main函数的主要功能部分,GetKey()函数得到按键值是调用zlg7289获取键盘事件和核心。
3.7实验结果总结
通过实验最终LED灯上能显示数字,即实现了通过键值控制LED灯
3.8心得体会
通过本次实验对ZLG7289芯片的内部结构有了更进一步的了解,对ZLG7289驱动键盘和LED的方法也更进一步的进行了学习。
4.实验四
4.1实验名称
电机转动控制及中断实验
4.2实验目的
(1)熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置
(2)编程实现ARM系统的PWM输出和IO输出,前者用于控制直流电机,后者用于控制步进电机。
(3)了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。
(4)掌握带有PWM和IO的CPU编程实现其相应功能的主要方法。
4.3实验环境
(1)ADS1.2开发环境
(2)博创UP-NETARM3000嵌入式开发平台
(3)PC
(4)串口线
4.4实验内容及要求
学习步进电机和直流电机的工作原理,了解实现两个电机转动对于系统的软件和硬件要求。
学习ARM知识,掌握PWM的生成方法,同时也要掌握IO的控制方法。
(1)编程实现ARM芯片的一对PWM输出用于控制直流电机的转动,通过AD旋钮控制其正反转及转速
(2)编程实现ARM的四路IO通道实现环形脉冲分配用于控制步进电机的转动,通过AD旋钮转角控制步进电机的转角。
(3)通过超级终端来控制直流电机与步进电机的切换。
4.5实验设计与实验步骤
(1)新建工程,将“电机转动控制实验”中的文件添加到工程
(2)编写直流电机初始化数(MotorCtrl.c)
(3)控制直流电机与步进电机
4.6实验过程与分析
(1)通过把从串口中得到控制信息的代码修改成从zlg7289芯片中读取小键盘信息,从而利用试验台的小键盘来控制步进电机和直流电机的切换
(2)AD转换可以把电信号转换成数字信号来控制电机的转速。
for(;;)
{
loop:
if((rUTRSTAT0&0x1))有输入,则返回
if(rPDATG&ZLG7289_KEY)17键小键盘控制电机
{
*Revdata=RdURXH0();
gotobegin;
}
Delay(10);
ADData=GetADresult(0);
if(abs(lastADData-ADData)<20)
gotoloop;
Delay(10);
count=-(ADData-lastADData)*3;
(ADData-lastADData)*2701024为ad旋钮转过的角度,360512为步距角,
由于接了18减速器,两者之商再乘以8为步进电机相应转过的角度
if(count>=0)
{转角大于零
for(j=0;j { for(i=0;i<=7;i++) { SETEXIOBITMASK(stepdata[i],0xf0); Delay(200); } } } else {转角小于零 count=-count; for(j=0;j { for(i=7;i>=0;i--) { SETEXIOBITMASK(stepdata[i],0xf0); Delay(200); } } } lastADData=ADData; } } (3)S3C44B0X具有6个16bit定时器,每个定时器可以基于中断模式或DMA模式运行。 在定时中断服务程序中写需要定时处理的程序,每隔一段时间就会运行一次。 4.7实验结果总结 利用AD转换器实现了对直流电机和步进电机的控制,利用实验设备上自带的小键盘实现了AD转换器对两个电机控制的切换。 4.8心得体会 通过本次实验,熟悉了ARM自带的六路(三对)PWM,并对直流电机和步进电机的工作原理有了进一步的了解。 5.实验五 5.1实验名称 LCD驱动及触摸屏实验 5.2实验目的 掌握LCD显示原理及显示驱动的嵌入式系统编程实现方法;学习基于ARM的LCD显示驱动控制方法,通过对ARM内置的LCD控制器进行编程实现驱动LCD显示屏;学习触摸屏基本原理,理解触摸屏的输出标定以及与LCD显示器配合的过程,编程对触摸屏进行控制。 5.3实验环境 (1)ADS1.2开发环境 (2)博创UP-NETARM3000嵌入式开发平台 (3)PC (4)串口线 5.4实验内容及要求 (1)学习LCD显示器的基本原理,理解其驱动控制方法 (2)编程对触摸屏进行控制,实现: 1.点击触摸屏上两点后,两点之间画出一条直线。 2.点击触摸屏并在其上移动,显示移动轨迹 (3)编程实现总线方式驱动模块的LCD和ARM内置的LCD控制器来驱动LCD 5.5实验设计与实验步骤 (1)新建工程 (2)定义有关常量与宏 #defineLCDWIDTH320 #defineLCDHEIGHT240 U32*pLCDBuffer16=(U32*)0xc000000;一级缓存指针 U32LCDBuffer[LCDHEIGHT][LCDWIDTH];二级缓存 (3)编写LCD初始化函数 (4)编写LCD刷新函数 (5)编写主函数 5.6实验过程与分析 (1)通过不断刷新的方式获得LCD液晶屏幕的动画。 即刷新函数将二级缓存LCDBuffer的数据由32位彩色图形信息转换成8位256色的图形信息,然后放到pLCDBuffer16指向的一级缓存。 (2)触摸屏的先得到触屏输出的电信号的值,然后转换为实际的屏幕坐标,再根据动作来决定如何处理缓存信息,刷新LCD。 LCD二级缓存矩阵: for(i=0;i<9;i++) {switch(i) {case0: jcolor=0x;黑色 break; case1: jcolor=0x000000e0;红色 break; case2: jcolor=0x0000d0e0;橙色 break; case3: jcolor=0x0000e0e0;黄 break; case4: jcolor=0x0000e000;绿色 break; case5: jcolor=0x00e0e000;青色 break; case6: jcolor=0x00e00000;蓝色 break; case7: jcolor=0x00e000e0;紫色 break; case8: jcolor=0x00e0e0e0;白色 break; } for(k=0;k<240;k++) for(j=i*32;j LCDBuffer[k][j]=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; } 5.7实验结果总结 本次实验由于坐标设定的问题并没有成功实现触摸痕迹的显示,但在测试过程中,在触摸屏上点击或移动时会在超级终端上有显示。 5.8心得体会 虽然本次实验不太成功实现,但对LCD屏幕和触摸屏的工作原理有了进一步的了解,更好的掌握了LCD显示原理及显示驱动的嵌入式系统编程实现方法。 6.实验六 6.1实验名称 ucos-II裁剪实验 6.2实验目的 掌握μcos-II裁剪的基本原理与嵌入式编程实现方法;学习如何根据具体情况对μcos-II操作系统进行裁剪,从而得到即满足需要,又非常紧凑的应用软件系统。 6.3实验环境 (1)ADS1.2开发环境 (2)博创UP-NETARM3000嵌入式开发平台 (3)PC (4)串口线 6.4实验内容及要求 (1)通过对μcos-II配置文件(OS_CFG.H)中相关的配置常量进行设置,实现对μcos-II的裁剪 (2)给出裁剪的详细过程与裁剪结果说明,并生成裁剪后的操作系统文件。 6.5实验设计与实验步骤 (1)新建工程,将ucosII移植的文件添加到工程中。 (2)编辑os_cfg.()函数中调用OSStart()函数之前用下列语句创建任务: OSTaskCreate(TaskName,(void*)0,(OS_STK*)&TaskName_Stack[STACKSIZE-1], TaskName_Prio); OSTaskCreate()函数的原型是: INT8UOSTaskCreate(void(*task)(void*pd),void*p_arg,OS_STK*ptos, INT8Uprio); (4)编写任务函数 7.7实验结果总结 通过实验达到了ucosII系统移植的目的,并编写了一个简单的多任务程序,分时运行。 7.8心得体会 通过本次实验了解了µCOS-II内核的主要结构,掌握了ARM的C语言和汇编语言的编程方法。 8.实验八 8.1实验名称 各接口模块相互衔接综合实验 8.2实验目的 (1)回顾串口、键盘、LED接口、AD、电机转动、定时器中断、LCD接口及触摸屏驱动控制等接口模块驱动设计及开发方法 (2)综合应用以上全部或者部分模块,实现一个嵌入式综合应用系统,要求至少用到8个模块中的5个 8.3实验环境 (1)ADS1.2开发环境 (2)博创UP-NETARM3000嵌入式开发平台 (3)PC (4)串口线 8.4实验内容及要求 (1)综合应用串口、键盘、LED接口、AD、电机转动、定时器中断、LCD接口及触摸屏驱动控制等全部或者部分模块 (2)实现一个嵌入式综合应用系统,要求至少用到8个模块中的5个,尽量使综合应用系统具备合理的功能。 8.5实验设计与实验步骤 (1)运行ADS1.2开发环境 (2)新建工程文件 (3)将综合实验中用到的文件放到这个工程文件中 (4)下载编译好的文件到嵌入式控制器中运行 8.6实验过程与分析 (1)本次实验设计主要是通过中断来实现,设定了flag=六个标志位,对应不同的键值来实现功能的切换 (2)通过numlock键来控制直流电机 (3)通过“”键来控制步进电机 (4)通过“*”键来控制屏输出“helloworld” (5)通过“+”键来实现LED灯的计时 (6)通过“DEL”键来实现清屏和LED灯的清除 (7)通过“enter”键来进入到键值控制LED显示的功能 8.7实验结果总结 实验最终能实现5个功能的切换,但不足的是未涉及到触摸屏的设计,并且最后的键值控制LED灯不能实现正常的中断跳转。 8.8心得体会 通过本次综合性的实验来综合之前做的串口、键盘、LED接口、AD、电机转动、定时器中断、LCD接口及触摸屏驱动控制实验,回顾了之前的知识,对整体的运用有了进一步的了解,但是实验结果仍有很多的不足,需要改进。 9.实验总结与心得体会 通过之前的串口、键盘、LED接口、AD、电机转动、定时器中断、LCD接口及触摸屏驱动控制实验这7个小模块的实验,对嵌入式系统的开发流程有了基本的了解,熟悉了博创UP-NETARM3000实验台和ADS1.2软件的实验环境,同时也掌握了各模块功能实现功能的基本原理。 在最后的综合性实验中,通过对以上知识的掌握和理解,进一步的对以上知识进行了加深和巩固,虽然有几次实验实现的实验结果并不是很成功,但还是达到了学习和理解的效果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)