第一篇:作业提交系统实验报告
作业提交系统的实验报告
题目:作业提交系统
1.1.项目背景:
随着现代社会发展的日新月异,学生交作业的系统越来越多,但是因为传统的对学生作业管理是在服务器上建立一个 FTP 服务器,然后对学生用户设置一个专门的帐号,只允许对作业进行上传,然后学生将作业上传到服务器里对应的班级文件夹下面,传统方式无法解决的问题有:不能防止学生乱上传作业,不能防止学生找错班级文件夹,不能对作业进行限制如大小,类型,上传时间等,教师布置作业要通过黑板写字,教师打分之后只能记在本子上,不能通过局域网发布出来让学生看,教师下载作业必须到服务器上拷贝。而这套系统正是出于这个目的,为了解决上面的问题而设计的。系统对于复杂的问题都采用程序的方式解决了。系统分了管理员、教师、学生用户,管理员须要的操作只是添加专业,添加班级,添加管理员或教师用户都是通过网页的形式展示出来。而教师无须向以前那样,只需要发布作业,对作业的要求进行限制,不必去服务器上建文件夹来存放你的作业,并且程序自动创建目录。下载作业也只须要点一下就会将作业全部打包下载回来,在局域网内的任何一台计算机都可以进行各种操作。学生则再也不会将作业上传错,上传到别的班级中,也不允许上传非法的文件,对一次未上传完成的作业也可以先上传后下节课再下载回来接着做。系统用程序的方式解决了那些非常复杂的操作,比如对文件夹的创建等,所有的角色只需要简单的几步操作就可以完成,非常简单实用。
1.2 可行性分析的前提
系统是基于 b/s 结构,在 IIS平台上使用 ASP 与 Microsoft SQL 2008 开发的,主要使用本地计算机进行测试和使用,完全可以运行。
1.3 产品需求规格说明
<> 开发目标
解决学生上传作业问题,教师可以将新作业传到该系统上,也可以在次系统上下载学 生上传的作业,并将成绩上传供学生查看。
<> 用户的特点
用户是机房管理员,对计算机技术比较了解,学校教师专业教师能很快熟悉系统的使用 方法,非专业教师也能很快掌握,学校学生能很快学会使用系统。
<> 具备条件
1(不同用户登录进入不同的界面
2(学生作业的查看
3(学生作业成绩的查看
4(学生作业上传
5(教师布置作业
6(教师删除作业
7(教师修改作业
8(教师发布成绩
9(教师修改成绩
10(教师下载作业
11(管理员添加教师用户
12(管理员添加学生用户
13(个人资料的查看
14(个人密码的修改
<> 对性能的规定
1(要求系统支持 Microsoft.NET Framework 1.1
2(要求系统支持 Microsoft SQL Server 数据库
<> 数据流图
总数据图:
学生提交的作业完成的作业 教师学生作业提交系统 资料、新作业、成绩新作业、资料、成绩 添加教师、学生 管理员 细化后数据流图:
学号作业 学生登录系统上传作业系统学生 作业作业量 统计信息作业存储学生选课信息打印报表查看下载 成绩统计信息教师开课信息 作业打包下载打印 作业成绩记录成绩系统 新作业布置作业系统教师登录系统教师新作业 图 2 <> E-R 图
密码姓名 所在班学号级学生 11 提交下载 1 科目
NN 成绩 在线交流作业 N1 学习资料存储管理管理员 标记 NN 署名 1 查看批改上传 11 老师 职称职务 图 3 姓名教工号 1.4(1 功能结构图
作业提交系统
密码找回 注册 登录
学生用户登录 教师用户登录 通用模板 管理员用户登录
下上查发删添查打发添添 载传看布除加看包布加加 作作作修作专成下修班用 业 业 业 改业 业 绩 载改级 户
成作作 绩 业 业
查 修看注 改个销
密人系 码 资统 数据库管理 料
1.4.2 系统设计的基本原则
本系统的目标是在 Internet/Intranet 上来实现网上作业提交,可以实现学生在线提交作业的无纸化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,随时随地的可以让学生联机操作提交。系统采用了模块化的设计方法:选择了面向对象的、易于扩展的 ASP 编程语言环境使用 Microsoft server 2008 做为数据库平台。本系统整体上可划分为若干个功能模块。系统安全可靠也是一个重要的设计原则。本系统的配置是采用WindowsXP 作为网络操作系统, Microsoft server 2008 作为数据库服务器。所以操作系统 WindowsXP 的安全防护机制及数据库 Microsoft server 2008 的安全机制是本系统采用的安全防护方式。
1.4.3 功能模块设计
在线作业提交批改系统从功能上可分为教师管理程序、学生管理程序和管理员管理程序,教师管理程序部分主要实现学生信息的添加、所交班级信息的添加、课程信息的添加、上传下载作业和评定成绩的管理,学生管理程序部分主要实现了学生对作业的下载和上传。
管理员具有系统的完全权限,管理员具有添加和删除教师的权限。
系统主要功能模块具体描述如下:
<> 学生模块
主要包括学生管理,主要功能:查看教师布置的作业,并下载作业,完成作业后提交到服务器,以及修改学生自己的基本情况等。
<> 教师模块
主要包括搜索作业模块,布置作业模块,管理作业模块,查看成绩模块,统计作业递交情况模块,修改资料模块。搜索作业模块,主要功能:搜索教师自己所布置的作业学生递交情况。
<> 布置作业模块
主要功能:教师编辑所布置的作业,向学生发布作业,以及指明是否允许学生上传作业。
<> 管理作业模块
主要功能:下载作业,评阅作业,给学生打分,以及删除本次作业。
<> 修改资料模块
主要功能:修改教师自己的基本信息情况。
<> 管理员模块
主要包括教师管理,学生管理,系统配置管理,主要功能:增加,修改,删除教师用户,配置系统参数,配置上传文件类型。
1.5 特殊功能的原理
1.5.1 管理员添加教师管理员的原理
管理员可以添加教师用户,教师用户必须由管理员添加,每次当管理员添加教师用户时就会在网站目录下的一个专门用于存放上传作业的目录(up)的根目录下以教师的姓名为目录名新建一个根目录。用于教师布置作业之后,学生上传作业的存放目录。
1.5.2 教师发布修改作业的原理
老师发布作业之后可以修改作业,而且二个功能都是使用的一个界面来完成,通过传递的一个参数来判断用户的操作是发布作业还是修改作业,如果是修改作业而取得一个 ID 值将数据库里的内容绑定到用户界面。
1.5.3 教师发布修改成绩的原理
教师发布成绩或修改成绩的原理和教师发布修改作业的原理大至一样,都是使用一个页面来完成的,通过一个参数来判断用户的操作是发布还是修改。
1.5.4 教师批量下载作业的原理
教师批量下载作业是将学生上传后的作业全部打包成一个 zip 的压缩文件,然后从服务器上下载。
1.5.5 学生上传下载作业的原理
学生上传作业的时候,首先应该选择上传哪个教师哪一次的作业。
1.6 进行可行性厌旧的方法:
可行性研究的方法如下:
(1)专辑咨询
(2)对学生老师进行调查
1.7 评价尺度
系统进行评价时所用的主要尺度为各项功能的优先顺序、开发时间的长短及使用中的难易程度。
1.8 结论:经过小组的共同的努力,作业提交系统终于完成了,实现了需求分析的基本功能,基本满足了作业上传及批量下载的需求,开发过程中一开始一直在实现界面的优化,发现后续工作一团糟,只能全部重来,然后将问题弄清楚,明白了需求分析才知道什么事设计主体,然后按照需求分析一步步完成,当有不会时,尽量查更多的书,也有网上搜索,是在解决不掉的,也就只能放弃这个功能,对于批量下载,一开始很难实现,然后才知道 asp 中也有一个类能实现,可是都是英文的,花了相当一段时间才看明白了,现在基本能实现了,软件工程的分析对开发一个系统影响很大。本系统是针对本次软件工程实验而设计的,实现了学生作业的上传与下载,及教师发布作业,发布成绩,在线打包压缩等功能,系统已经进行了测
试,基本功能都成功了,但是因为初次开发,在系统中难免存在着各种问题,这些我们会在以后的时间进行更正。在开发本系统的过程中,要查询翻阅大量的参考文献以及网上搜索资料,培养了我们调查研究、查阅中外文献资料,运用国家标准、行业规范、手册、图册等资料的能力。通过对本系统的开发,提高了我们团队合作的意识、分析解决实际问题的能力。最主要的是提高了我们的自学能力,因为开发本系统中使用了 Microsoft Visual Studio.NET
2008 开发平台与 Microsoft SQL Server 工具进行数据库的设计,采用 ASP 语言进行开发,而这些以前都没有学过,因此,通过这次实验,把所学的理论知识与实际应用联系了起来,为我们今后走向社会打下了坚实的基础。
第二篇:嵌入式系统实验报告
广西工学院鹿山学院
实 验 报 告
课程名称: 嵌入式系统
指导教师: 刘瑞琪 班 级: 自动化101 姓 名: 杨杰 学 号: 20102787 成绩评定: 指导教师签字:
2013年5月25日
实验一
简单的程序
一 实验目的:、动手实践一个简单的字符型设备驱动程序。、学习Linux 驱动程序构架。、学习在应用程序中调用驱动。
二 实验内容:
编写简单的字符型设备驱动程序。编写相应的应用程序。
三 实验设备:、一套S3C2410RP 嵌入式实验箱。、安装Redhat9的宿主PC机,并且配置好 ARM Linux 的开发环境。
四 实验步骤
实验二 CPU GPIO 驱动程序及测试程序
一、实验目的:
编写第一个针对实际硬件的驱动程序,进一步了解驱动程序构架。
二、实验内容:、编写S3C2410 GPIO驱动程序。、编写S3C2410 GPIO应用程序。、在 LINUX系统中插入自己的驱动程序,调用它。实现用 CPU GPIO 控制外部LED,利用S3C2410 核心板上的 LED 验证我们的工作。
三、实验设备、一套S3C2410RP 嵌入式实验箱。、安装Redhat9的宿主PC机,并且配置好 ARM Linux 的开发环境。
四、实验步骤
1、复制Experiment_KeyHello_driverapl_test文件下的simple_test_driver.c文件到Experiment_KeyGPIO文件夹下,将文件名更改为test.c。
2、打开test.c,在else语句后更改函数语句如下:
3、复制Experiment_KeyADapl_test文件夹下的Makefile到Experiment_KeyGPIO文件夹下,打开并将中的ADC删除。
4、打开Experiment_KeyGPIOdriver文件下的gpio_led.c文件。
5、在ssize_t SIMPLE_GPIO_LED_ioctl函数下添加如下语句:
if(cmd==0)GPBDAT &= ~(0xf<<5);
if(cmd==1)GPBDAT |=(0xf<<5);如下图所示:
6、在int __init HW_GPIO_LED_CTL_init函数下屏蔽for循环,如下图所示:
保存并关闭。
7、打开终端,并编译test.c文件和gpio_led.c文件。
8、重新打开一个终端,并按步骤输入如下语句:
9、依次输入如下语句:
1、cd..2、ls
3、mknod /dev/hello_ctl c 97 1
4、./test
实验三 中断实验及LED显示
一、实验目的:
学习Linux 系统是如何处理中断。
二、实验内容:
编写获取和处理外中断的驱动程序。
三、实验设备:、一套S3C2410RP 嵌入式实验箱。、安装Redhat9的宿主PC机,并且配置好 ARM Linux 的开发环境。
四、实验步骤
1、打开Experiment_KeyGPIOdriver文件下的gpio_led.c文件。
2、在ssize_t SIMPLE_GPIO_LED_ioctl函数下添加如下语句:
if(cmd==0)GPBDAT &= ~(0xf<<5);
if(cmd==1)GPBDAT |=(0xf<<5);如下图所示:
3、在int __init HW_GPIO_LED_CTL_init函数下屏蔽for循环,如下图所示:
保存并关闭。
4、打开Experiment_KeyInterruptdriver下的Interrupt.c文件,并在其interrupt函数下添加for语句,如下图所示:
5、打开终端,并编译Interrupt.c文件和gpio_led.c文件。
6、重新打开一个终端,并按步骤输入如下语句:
7、依次输入如下语句:
1、cd /mnt/2410RP_linux/Experiment_Key/Interrupt/driver
2、ls
3、insmod Interrupt.o
实验四 数码管显示实验
一、实验目的:
学习串并转换的相关知识,并编写驱动程序。
二、实验内容:
编写针对zlg7289A 的驱动程序。
三、实验设备:、一套S3C2410RP 嵌入式实验箱。、安装Redhat9的宿主PC机,并且配置好 ARM Linux 的开发环境。
四、实验步骤
1、打开Experiment_KeySpi_leddriver文件夹下的spi_led.c
2、并在spi_ledInit函数下添加如下语句:
保存并关闭。
3、打开终端,并编译spi_led文件。
4、重新打开一个终端,并输入如下语句:
实验五
AD 驱动实验
一 实验目的:、了解模数转换的基本原理;、掌握模数转换的编程方法。
二 实验内容:、编程对模拟量输入进行采集和转换,并将结果显示在超级终端上。、通过改变模拟量输入,观察显示结果。
三 实验设备:、一套S3C2410RP 嵌入式实验箱。、安装Redhat9的宿主PC机,并且配置好 ARM Linux 的开发环境。
四 实验步骤
1、在spi_led..c中的simpled ioctl中加入以下程序
2、在testADC中复制以下程序并修改如下
3、挂载程序
cd /mnt/2410RP_linux/Experiment_Key/spi_led/driver
ls insmod spi_led.o
cd /mnt/2410RP_linux/Experiment_Key/ad/driver
insmod adc.o cd /mnt/2410RP_linux/Experiment_Key/ad/apl_test
ls
mknod /dev/spi c 104 1
ls
./testADC
第三篇:嵌入式系统实验报告
嵌入式系统设计实验报告
班 级:学 号:姓 名:成 绩:指导教师:
20110612 2011061208 李晓虹 武俊鹏、刘书勇
1.实验一
1.1 实验名称
博创UP-3000实验台基本结构使用方法
1.2 实验目的
1.熟悉嵌入式系统开发式流程概述。
2.熟悉UP-net3000实验平台的核心硬件电路和外设。3.熟悉ARM JTAG的安装与使用。
1.3 实验环境
硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。
软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发
环境、仿真器驱动程序、超级终端通讯程序。
1.4 实验内容及要求
1.熟悉嵌入式系统开发式流程概述。
2.熟悉UP-net3000实验平台的核心硬件电路和外设。3.熟悉ARM JTAG的安装与使用。
1.5 实验设计与实验步骤
1.新建超级终端
2.选择ARM 开发实验台串口。
完成新建超级终端的设置以后,可以选择超级终端文件菜单中的保存,将当前设置 3.保存为一个特定超级终端到桌面上,以备后用。用串口线将PC 机串口和平台UART0 正确连接后,就可以在超级终端上看到程序输出的信息了。4.启动开发板,按住任意键,使开发板进入BIOS设置状态。
5.在超级终端的界面上,显示BIOS版本信息,以及相应的测试指令。操作时,要在PC机上输入小写的字母快捷键,进入到相应的功能中去。6.按照超级终端上的提示信息,进行功能的测试。
1.6 实验过程与分析
本次实验操作起来并不困难,因为此次实验属于验证型实验,按照实验资料所给的提示信息,以上面的步骤,即可得到实验的结果。进入到BIOS界面后,按照超级终端上的提示信息来进行功能
1.7 实验结果总结
在实验过程中,我们进行的很顺利,没有遇到什么问题,在超级终端界面,按提示的快
捷键来测试对应的功能。如
e:测试由ZLG7289 驱动的LED 显示,共分3 步,请看超级终端提示按任意键继续,同 时观察LED 的变化,最后返回主菜单。
b:引导FLASH 中的应用程序system.bin。执行该功能将退出BIOS 状态,把控制交给应 用程序,等。
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、ARM SDT 2.51 或ADS1.2 集成开发
环境、仿真器驱动程序、超级终端通讯程序。
2.4 实验内容及要求
掌握AXD Debugger的使用方法,学习串行通讯原理,了解串行通讯控制器,阅读ARM 芯片文档,掌握ARM 的UART相关寄存器的功能,熟悉ARM 系统硬件的UART 相关接口。编程实现ARM 和计算机之间的串行通讯:ARM 监视串行口;将接收到的字符再发送给串口(计算机与开发板是通过超级终端通讯的);即按PC 键盘通过超级终端发送数据,开发板将接收到的数据再返送给PC,在超级终端上显示。
2.5 实验设计与实验步骤
(1)新建工程,选择菜单中的Project | Add Files 把和工程相关的所有文件包括init和startup 子目录加入到工程中。ADS1.2 不能自动按文件类别对这些文件进行分类,需要的话可以执行菜单Project | Create Group 创建文件组,然后分别将不同类的文件加入到不同的组,以方便管理。(另一种办法是,在新建工程时ADS 创建了和工程同名的目录,在该目录下按类别创建子目录并存放工程文件。选中所有目录拖动到任务栏上的ADS 任务条上,不要松
开鼠标当ADS 窗口恢复后再拖动到工程文件窗口,松开鼠标。这样ADS 将以子目录名建立同名文件组并以此对文件分类。)
(2)双击Main.c 打开该文件,可以看到Main()函数的内容如下所示。int main(void){ ARMTargetInit();//开发版初始化 LCD_Init();LCD_ChangeMode(DspTxtMode);//转换LCD 显示模式为文本显示模式 LCD_Cls();//文本模式下清屏命令
LCD_printf(“Hello world!n”);//向液晶屏输出 Uart_Printf(“nHello world!n”);//向串口输出 while(1);}(3)利用上个实验中的通讯软件超级终端来将生成的文件放到嵌入式开发平台中。(4)重启实验台即可看到LCD上显示的“Hello world!” 2.6 实验过程与分析
新建工程,然后将所需的工程文件加载打工程目录下,编译生成system.bin文件,将文件导入到实验台中,然后重启实验台,即可得到实验结果。
2.7 实验结果总结
超级终端输出一些相对应的代码的执行结果。熟悉了ADS1.2 开发环境以及学会了ARM 仿真器的基本使用。使用ADS 编译、下载、调试并跟踪一段已有的程序,并大致了解了嵌入式开发的基本思想和过程。
2.8 心得体会
通过此次实验,我对于嵌入式开发的基本思想有了一定的了解,嵌入式开发采用的是交叉编译环境,所以在一些方面会有所限制。对于初学者来说,通过一两次实验结果的演示就能够对实验台有深入的了解不可能的,所以在后续的实验中,我要好好努力,认真做好课程实验为后续的课程设计实验打下基础。
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、ARM SDT 2.51 或ADS1.2 集成开
发
环境、仿真器驱动程序、超级终端通讯程序。
3.4 实验内容及要求
编写出一段程序,要求能在LED上显示出小键盘上按下的4位数字。
3.5 实验设计与实验步骤
1.新建工程,将“Exp3 键盘及LED 驱动实验”中的文件添加到工程。2.定义ZLG7289 寄存器(ZLG7289.h)。3.编写ZLG7289 驱动函数(ZLG7289.c)。4.定义键盘映射表:(Keyboard16.c)。5.定义键值读取函数。
6.编写主函数,将按键值在数码管上显示。
3.6 实验过程与分析
此次实验中,我们根据已有实验,进行调试,查看程序的运行效果。根据效果,我们又回到实验代码中,然后对代码进行深入的研究,查看每部分功能所对应的代码,通过不断的调试编译,我们最终对该实验用到的代码有了更深的认识。从而能够按照要求,完成我们自己实验。
3.7 实验结果总结
通过小键盘的按键,键值可以在LED上显示出来。并学习了键盘及LED 驱动原理以及掌握了ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。
3.8 心得体会
在这次实验中让我对嵌入式的实验箱有了进一步的认识,并且进一步了解的ARM实验的原理和实验情况,能够对源代码进行正确了理解。并且能修改这些源代码能够使其工作在自己的预期的工作状态和输出自己想要的结果
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 机Pentium100 以 上、串口线。
软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。
4.4 实验内容及要求
1.编程实现ARM芯片的一对PWM输出用于控制直流电机的转动,通过A/D旋钮控制其转动方式。
2.编程实现ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。
3.通过键盘控制直流电机与步进电机的切换。4.设置并启动定时器。
5.设置中断,编写定时器中断服务程序,对中断次数进行计数并在LED上显示结果。
4.5 实验设计与实验步骤
1.添加并打开工程。
2.进行直流电机初始化设置和代码编写。3.进行步进电机初始化设置和代码编写。
4.对Timer3编程,编写定时器中断服务程序,完成对中断次数的计数。5.编写LED计数显示函数,使LED能正确计数并显示0-9999。6.编写中断初始化函数和中断响应函数。7.终端下载测试。
4.6 实验过程与分析
1.对直流电机进行编程和测试,掌握转速和旋转方向的设定方法。2.对步进电机进行编程和测试,掌握ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。
3.对主函数进行编程,用键盘响应直流电机与步进电机的切换控制。
4.掌握中断相关语句的应用,弄清定义的中断向量、中断向量号,编写中断响应函数,并完成中断响应控制。
4.7 实验结果总结
实现了直流电机与步进电机的基本设置和控制,可以通过键盘控制电机之间的切换。完成了中断的响应和定时中断。
在通过本次实验,我初步了解的实验的目的所在,并且利用所给的源代码能够,调试出所预期的结果,而且能够根据已给的源代码修改得到所需的结果。
4.8 心得体会
通过本次实验,掌握了电机工作原理,了解了中断的意义和实现方法,实现了简单了中
断处理程序,更加了解了中断的意义。
5.实验五
5.1 实验名称
LCD驱动控制实验及触摸屏驱动实验
5.2 实验目的
1.了解触摸屏的基本概念与原理。
2.理解触摸屏与LCD的关系。3.编程实现对触摸屏的控制。
5.3 实验环境
硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。
软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。
5.4 实验内容及要求
1.了解触摸屏基本原理,理解对触摸屏进行输出标定、与LCD显示器配合的过程。2.通过编程实现触摸两点自动在两点间划直线。3.通过编程实现在触摸屏上动态画出曲线。
5.5 实验设计与实验步骤
1.添加并打开工程。
2.在头文件中定义宏和常量及驱动函数。3.校准触摸屏坐标,进行坐标转换。4.实现触屏取点并显示功能。5.实现两点间自动划线功能。6.实现触摸屏动态划线功能。
5.6 实验过程与分析
1.在定义触屏响应功能的函数中对点击触屏进行响应函数的修改,在其中添加修改点颜色的函数,修改得到的触摸点的颜色,并显示在LCD上。
2.获取第一个点坐标并储存,获取第二个点坐标并储存,编写划线函数,取得两点间直线上所有点的坐标,并对其改变颜色,显示在LCD上,即完成划直线功能。
3.将划线函数应用到响应触屏移动消息的函数下,即可对连续获得的触摸坐标进行连续的画短直线,连接成曲线,完成动态划线功能。
5.7 实验结果总结
了解了触摸屏响应动作消息的函数的工作原理,通过修改实现了触摸屏响应不同动作进行画点、划线、动态划线的功能。
5.8 心得体会
通过本次实验,使我了解了怎么在一块嵌入式实验箱 通过编程控制实验箱上得硬件,比如在本次实验中的控制LCD屏幕就是,在屏幕上点击,然后得到在LCD屏上点击的位置。本次实验初步完成了实验结果。
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微处理器上。
6.5 实验设计与实验步骤
编辑OS_CFG.H文件。OS_CFG.H文件中的内容可分为两大类:服务功能的配置和数据结构的配置。
一.服务功能的配置:
根据程序中的实际情况,保留自己要用的系统服务功能,删除自己不需要的服务功能。进行合理配置后,是我们自己系统的目标代码比较紧凑,从而降低了对程序代码存储空间的要求。如果代码存储空间足够大的话,那就将全部系统服务功能全部配置为1。不需要考虑功能裁剪。
二.数据结构功能的配置: 与任务有关的数据结构 1.OS_MAX_TASKS 作用:设置用户程序中可以使用的最多任务数。说明:该值不能超过62.举例: 若程序中用到了三个任务,则该值的最小值 2.OS_LOWEST_PRIO 作用:设置程序中最低任务的优先级。
说明: 设定该值可以节省操作系统使用RAM的空间。任务的最低优先级和最大任务数是没有直接关系的。
6.6 实验过程与分析
按照实验指导书上的步骤进行,得到了要求的系统。
6.7 实验结果总结
按照要求进行了裁剪,得到了满足需要又紧凑的应用软件系统。
6.8 心得体会
了解了UCOS-Ⅱ内核的主要结构,掌握了UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现方法,学会了如何根据具体情况对UCOS-Ⅱ操作系统进行裁剪
7.实验七
7.1 实验名称
ucos-II移植实验
7.2 实验目的
1.了解UCOS-Ⅱ内核的主要结构。
2.掌握将UCOS-Ⅱ内核移植到ARM7处理器上的基本方法。
7.3 实验环境
硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。
软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。
7.4 实验内容及要求
1.将UCOS-Ⅱ内核进行移植到ARM7微处理器上。
2.编写两个简单任务,在超级终端上观察两个任务的切换。
7.5 实验设计与实验步骤
1.该实验的文件分为两类,其一是STARTUP 目录下的系统初始化、配置等文件,其二是uCOS-II 的全部源码,arch 目录下的3 个文件是和处理器架构相关的。
2.设置os_cpu.h 中与处理器和编译器相关的代码
3.用C 语言编写6 个操作系统相关的函数(OS_CPU_C.C)4.用汇编语言编写4 个与处理器相关的函数(OS_CPU.ASM)5.编写一个简单的多任务程序来测试一下移植是否成功。
为了使 uCOS-II 可以正常运行,除了上述必须的移植工作外,硬件初始化和配置文件也是必须的。STARTUP 目录下的文件还包括中断处理,时钟,串口通信等基本功能函数。在文件 main.c 中给出了应用程序的基本框架,包括初始化和多任务的创建,启动等。任务
创建方法如下:
①在程序开头定义任务堆栈,任务函数声明和任务优先级 ②在main()函数中调用OSStart()函数之前用下列语句创建任务 ③编写任务函数内容
6.编译并下载移植后的uCOS-II 所有的源代码都准备好后就可以进行编译了。在ADS 环境下需要设置工程的访问路径。从菜单Edit | Debug Settings 进入设置对话框,在Target | Access Paths 中选择User Paths 并选上Always search user paths。然后点Add 按钮添加路径ucos-ii 和arch。这主要是设置编译器处理文件包含时的搜索范围。按照实验一的方法可以对编译后的代码进行调试或下载到平台的电子硬盘中。这个实验从结构上看和其他的实验没有多大区别,同样生成可执行文件system.bin。可以在平台BIOS中激活电子硬盘,然后把system.bin 拷贝进去,重启平台,然后在超级终端上观察结果。
7.6 实验过程与分析
操作系统相关的函数:(1)OSTaskStkInit OSTaskCreate()和OSTaskCreateExt()通过调用OSTaskStkInit()来初始化任务的堆栈结构。因此,堆栈看起来就像刚发生过中断并将所有的寄存器保存到堆栈中的情形一样。图12A-2 显示了OSTaskStkInt()放到正被建立的任务堆栈中的东西。这里我们定义了堆栈是从上往下 长的。在用户建立任务的时候,用户传递任务的地址,pdata 指针,任务的堆栈栈顶和任务的优先级给OSTaskCreate()和OSTaskCreateExt()。一旦用户初始化了堆栈,OSTaskStkInit()就需要返回堆栈指针所指的地址。OSTaskCreate()和OSTaskCreateExt()会获得该地址并将它保存到任务控制块(OS_TCB)中。
(2)OSTaskCreateHook 当用OSTaskCreate()和OSTaskCreateExt()建立任务的时候就会调用OSTaskCreateHook()。该函数允许用户或使用移植实例的用户扩展uCOS-II 功能。当uCOS-II 设置完了自己的内部结构后,会在调用任务调度程序之前调用OSTaskCreateHook()。该函数被调用的时候中断是禁止的。因此用户应尽量减少该函数中的代码以缩短中断的响应时间。当 OSTaskCreateHook()被调用的时候,它会收到指向已建立任务的OS_TCB 的指针,这 样它就可以访问所有的结构成员了。函数原型:void OSTaskCreateHook(OS_TCB *ptcb)
(3)OSTaskDelHook 当任务被删除的时候就会调用OSTaskDelHook()。该函数在把任务从uCOS-II 的内部任 务链表中解开之前被调用。当OSTaskDelHook()被调用的时候,它会收到指向正被删除任务 的OS_TCB 的指针,这样它就可以访问所有的结构成员了。OSTaskDelHook()可以来检验TCB扩展是否被建立(一个非空指针)并进行一些清除操作。函数原型:void OSTaskDelHook(OS_TCB *ptcb)(4)OSTaskSwHook 当发生任务切换的时候就会调用OSTaskSwHook()。OSTaskSwHook()可以直接访问 OSTCBCur 和OSTCBHighRdy,因为它们是全局变量。OSTCBCur 指向被切换出去的任务 OS_TCB,而OSTCBHighRdy 指向新任务OS_TCB。注意在调用OSTaskSwHook()期间中断 一直是被禁止的。因此用户应尽量减少该函数中的代码以缩短中断的响应时间。函数原型:void OSTaskSwHook(void)
(5)OSTaskStatHook OSTaskStatHook()每秒钟都会被OSTaskStat()调用一次。用户可以用OSTaskStatHook()
来扩展统计功能。例如,用户可以保持并显示每个任务的执行时间,每个任务所用的CPU 份额,以及每个任务执行的频率等。函数原型:void OSTaskStatHook(void)(6)OSTimeTickHook OSTimeTickHook()在每个时钟节拍都会被OSTaskTick()调用。实际上OSTimeTickHook()是在节拍被uCOS-II 真正处理,并通知用户的移植实例或应用程序之前被调用的。函数原型:void OSTimeTickHook(void)
7.7 实验结果总结
在超级终端上输出轮流交替run task1和run task2,表明系统正在不断交替运行2个任务。
7.8 心得体会
在这个实验中我们初步了解和测试了实验的内容和源代码实验结果基本上符合预期的要求。了解了µC/OS-II 内核的主要结构和ARM7处理器结构,掌握了将µC/OS-II 内核移植到ARM 7 处理器上的基本原理与嵌入式编程实现方法。
8.实验八
8.1 实验名称
各接口模块相互衔接综合实验
8.2 实验目的
利用前7次实验所学的知识,综合设计一个至少含有5个模块的实验。
8.3 实验环境
硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。
软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序。
8.4 实验内容及要求
1.回顾串口、键盘、LED接口、A/D、电机转动、定时器中断、LCD接口及触摸屏驱动控制接口模块驱动设计及开发方法。
2.综合应用以上全部或者部分模块,实现一个嵌入式综合应用系统,要求至少5个模块。
3.尽量使综合应用具有合理功能。
8.5 实验设计与实验步骤
1.新建工程,添加所需的文件。
2.编写计算器的计算程序caculator.c以及caculator.h文件。3.编写音乐播放文件play.c以及play.h文件。
4.修改键盘映射表让键盘上的数字与LCD与LED屏幕上显示的数字相对应。5.对输出在LCD屏幕上的显示结构进行设计
6.进行裁剪和移植功能设计和完成。编译生成system.bin文件,将文件拷贝至实验台内,重启实验台即可看到实验效果
8.6 实验过程与分析
1.完成10以内的加减乘除的计算功能,通过键盘输入,可在LCD屏幕上显示输入的表达式以及得到的输出结果。如“2+3=5”。
2.按任务切换键,实现任务的切换。3.任务被切换到播放音乐的任务中去。
4.任务切换过程将会在串口的超级终端界面有所显示,同时我们设置的将LCD上显示的结果同步到超级终端上。实现串口通信。
5.利用到了直流电机,如果运算范围超出我们规定的运算范围,则电机转动,来提示错误。
6.实现裁剪与移植功能。
8.7 实验结果总结
在这次实验中,我们利用前面所学习的知识,综合利用在此次实验中,我们利用了前面好所学知识中的6个模块,分别是串口通讯,键盘控制,LED与LCD的输出,电机控制,以及裁剪与移植的功能。通过这些功能的结合,我们实现自己所设计的实验的功能。
8.8 心得体会
在此次实验中,我们遇到了一些问题但是过程中遇到了不少问题,说明对实验原理和语句编写还不是很熟悉。总的来说,通过这段时间的训练,我也学会了不少东西,了解了ARM的基本结构,功能等。
9.实验总结与心得体会
通过这次为期一周的嵌入式课程实验,我对于嵌入式有了更加深刻的了解与认识。我是第一次接触嵌入式,以前对于嵌入式的知识了解甚少,但是通过此次实验,我不仅了解了嵌入式,也学会了许多关于嵌入式方面的知识。
通过前面的基础实验,我们对于ARM环境有了更深的了解,掌握了博创平台的使用方法,例如如何使用小键盘,如何使用LCD、LED屏幕,如何控制终端,如何进行多任务之间的切换等等。通过这几次的基础课程实验,我们最后出了计算器,能够实现10以内的加减乘除,在此基础上我们利用多任务,实现播放音乐与计算的切换,还利用点击的转动来提示运算过程中出现的问题。
通过这几次实验,为我们以后的课程设计实验打下了坚实的基础,相信有了这几天系统实验的培训,我们的课程设计实验做起来会更加轻松。
第四篇:汽车空调系统实验报告
汽车空调系统实验报告
车辆2 陈树郁 201131150501
一、实验目的
1.学习并理解汽车空调系统的组成及基本工作原理;
2.熟悉空调系统的制冷循环路线;
3.掌握对空调系统的操作以及控制系统的结构原理;
4.理解压力表的结构原理以及对压力表的操作;
5.理解制冷剂的作用并能掌握加注方法;
6.具有诊断和排除汽车空调系统常见故障的技能。
二、空调工作基本原理
发动机驱动的压缩机将气态的制冷剂从蒸发器中抽出,并将其送入冷凝器。高压气态制冷剂经冷凝器时液化而进行热交换(释放热量),热量被车外的空气带走。然后高压液态的制冷剂经膨胀阀的节流作用而降压,低压液态制冷剂在蒸发器中气化而进行热交换(吸收热量),此时蒸发器附近被冷却了的空气通过鼓风机吹入车厢内。接着气态制冷剂又被压缩机抽走,泵入冷凝器,如此使制冷剂进行封闭的循环流动,不断地将车厢内的热量排到车外,使车厢内的气温降至适宜的温度。
三、实验设备
1.曲柄连杆式压缩机(由曲柄,连杆,活塞,进排气阀等组成);
2.斜盘式压缩机(由主轴,斜盘,气缸,活塞,进排阀等组成);
3.冷凝器、干燥器、膨胀阀、蒸发器、压力表、制冷剂罐、真空泵、空调系统示教台。
四、实验设备简介
1.空调压缩机
a)压缩机的功能
把蒸发器中吸收热量后产生的低温低压冷冻剂蒸气吸入后进行压缩,升高其压力和温度之后送往冷凝器,使冷冻剂在冷却循环中进行循环,由蒸发器吸收的热量在通过冷凝器时散发掉。
b)压缩机的种类
压缩机的种类分为曲轴连杆式、斜盘式摇盘式、双作用轴向斜盘式、涡旋式、旋转叶片式等;
c)压缩机的工作原理(双作用式)
当主轴带动斜盘转动时,斜盘便驱动活塞作轴向移动,由于活塞在前后布置的气缸中同时作轴向运动,这相当于两个活塞在作双向运动。
d)工作过程
前缸活塞向左移动时,排气阀片关闭,缸内压力下降,吸气阀片打开,低压蒸气进入气缸开始了吸气过程,一直到活塞向左移动到终点为止;与此同时后缸活塞也向左移动,但不同的是后缸活塞处于压缩过程,在这过程中蒸气不断被压缩,压力和温度不断上升,上升到一定程度时,排气阀片打开,转到排气过程,一直到活塞移动到最左边为止。这样斜盘每转动一周,前后两个活塞分别同时完成吸气、压缩过程,这样一次循环,相当于两个工作循环。
e)压缩机电磁离合器
压缩机电磁离合器在需要的时候可以接通或切断发动机与压缩机之间的动力传递;另外,当压缩机过载时,它还能起到一定的保护作用。2.冷凝器
空调冷凝器用于制冷空调系统,管内制冷液直接与管外空气强制进行热交换,以达到制冷空气的效果。
在制冷时为系统的高压设备(冷暖热泵型在制热状态时为低压设备),装在压缩机排气口和节流装置(毛细管或电子膨胀阀)之间,由空调压缩机中排出的高温高压气体,进入冷凝器,通过铜管和铝箔片散热冷却,空调器中都装有轴流式冷却风扇,采用的是风冷式,使制冷剂在冷却凝结过程中,压力不变,温度降低。由气体转化为液体。
在冷凝器内制冷剂发生变化的过程,在理论上可以看成等温变化过程。实际上它有三个作用,一是空气带走了压缩机送来的 高温空调制冷剂气体的过热部分,使其成为干燥饱和蒸气;二是在饱和温度不变的情况下进行液化;三是当空气温度低于冷凝温度时,将已液化的制冷剂进一步冷却 到与周围空气相同的温度,起到冷却作用
目前汽车空调冷凝器有管片式、管带式以及平行流式3种。
3.干燥器
储液干燥器串联在冷凝器与膨胀阀之间的管路上,使从冷凝器中来的高压制冷剂液体经过滤、干燥后流向膨胀阀。在制冷系统中,它起到储液、干燥和过滤液态制冷剂的作用。制冷剂和冷冻机油中含有微量水分,当这些水分通过节流装置时,由于压力和温度下降,水分便容易凝结成冰,造成系统堵塞的“冰堵”故障。干燥的最主要功用是防止水分在制冷系统中造成冰堵。
此外,制冷系统会由于制造维修时,而带入一些杂物,同时,金属的腐蚀作用也会产生一些杂质。上述杂质与制冷系统的制冷剂混合在一起,在系统中循环便很容易将系统中堵塞,影响正常工作,同时也会增加压缩机的磨损,所以干燥器的另一重要作用是过滤。
4.膨胀阀
膨胀阀也称节流阀,是组成汽车空调制冷系统的主要部件,安装在蒸发器入口处。功能是把来自贮液干燥器的高压液态制冷剂节流减压,调节和控制进入蒸发器中的液态制冷剂量,使之适应制冷负荷的变化,同时可防止压缩机发生液击现象(即未蒸发的液态制冷剂进入压缩机后被压缩,极易引起压缩机阀片的损坏)和蒸发器出口蒸气异常过热。
目前膨胀阀主要有内平衡热力膨胀阀、外平衡热力膨胀阀、H型膨胀阀、膨胀节流管(孔管)四种结构形式。
膨胀阀工作原理:它有四个接口通往空调系统,一个接干燥过滤器出口,一个接蒸发器入口。另外两个接口,一个接蒸发器出口,一个接压缩机进口。感温元件处在从蒸发器出来的制冷剂气流中。这种膨胀阀是温控式的,当冷却负荷的增加导致蒸发器向外输出的温度升高,感温包的温度也随之升高并产生膨胀作用。通过膜片和推杆推动球阀使截面加大,制冷剂进入蒸发器的流量加大。当蒸发器内制冷剂输出温度有所下降时,感温包收缩,球阀的横截面减小,导致制冷剂进入蒸发器的流速减慢。阀门的开度大小取决于蒸发器输出端的温度。
5.蒸发器
空调蒸发器的作用是利用液态低温制冷剂在低压下易蒸发,转变为蒸气并吸收周围空气的热量,风机再将冷风吹到车室内,达到制冷目的。
6.制冷剂
制冷剂又称制冷工质,在南方一些地区俗称雪种。它是在制冷系统中不断循环并通过其本身的状态变化以实现制冷的工作物质。制冷剂在蒸发器内吸收被冷却介质(水或空气等)的热量而汽化,在冷凝器中将热量传递给周围空气或水而冷凝。
以前的汽车使用的制冷剂为R-12,它会破坏臭氧层,已淘汰,制冷剂不可混用。目前空调使用的制冷剂,一种是R22制冷剂,另一种是R410A新冷媒。
五、实验过程
1、制冷剂加注过程
空调系统在加注制冷剂前必须抽真空,而抽真空的目的是为了清除系统中的空气及水分,并进一步检查系统在真空情况下的密封性。a)抽真空步骤
① 将歧管压力表中黄色(中间)软管的接头接到真空泵上,将蓝色(低压)软管 的接头接到低压管路维修阀口上,将红色(高压)软管接头接到高压管路维修阀口上;② 打开歧管压力表,打开高低压手动阀,启动真空泵; ③ 抽真空到低压表的负压值高于l00kPa;
④ 关闭高低压手动阀,其低压侧表针在10分钟内不得有明显回升。若无,则可向系统内充注制冷剂;若有,就应向系统内充入少量制冷剂进行查找、检修泄漏点,并重新抽真空。b)制冷剂加注步骤
将压力表黄色软管接头从真空泵上接到倒的制冷剂钢瓶接口上;
拧开压力表高压手动阀,向系统中加入液态制冷剂,直到规定量;若不能加注到规定量,可按步骤b补充。注:加注液态制冷剂时,不可拧开低压手动阀,以防产生液击;不能启动空调,以防制冷剂倒灌入钢瓶中产生危险。c)加注气态制冷剂
① 将压力表中黄色软管接头从真空泵上接到正立的制冷剂钢瓶接口上; ② 拧开钢瓶阀门,拧松压力表黄色软管螺母,直到有制冷剂气体外泄约2-3 秒钟,然后拧紧螺母;
③ 拧开压力表低压手动阀,向系统中加入气态制冷剂,当系统压力高于 2.5kg/cm2时,关闭低压阀;
④ 启动发动机,同时启动空调且置最大制冷工况档; ⑤ 再打开低压手动阀,让制冷剂吸入系统,直到规定量。
需注意的是补充制冷剂,可用压力表和视液镜观查法来确定制冷剂是否足量。
2、空调泄露点的查找
a)直接查找有油污的地方,若过于隐蔽也可把洗洁精水涂抹在管道上,有气泡冒出的地方即为泄露点;
b)用试灯法检测,若火苗呈绿色则灯接近处即为泄露点; c)电子检测法检测,将探头伸到可疑泄露处,若有冷媒泄露则在显示屏上有显示,在检测过程中要注意调节灵敏度; d)荧光法检测泄漏量很小的泄露点。
六、实验心得
1.通过实验对空调的组成零部件有了更深层的了解;
2.在实验不断思考的过程中,对空调的工作原理、检测与维护的知识得到进一 步的提升;增强了自身的学习能力;
3.冷媒发生的变化:
a)压缩机:低温低压气态制冷剂压缩成高温高压制冷剂
b)冷凝器:将高压制冷剂蒸汽冷凝成中温高压液体(注:从冷凝器中出来的为液态冷媒,流经干燥瓶吸收了多余的水分)
c)蒸发器:低温低压的液态制冷剂蒸发成低温低压的制冷剂蒸汽
4.通过学习解决了之前在4S店实习中遇到汽车空调蒸发器至压缩机空气入口 之间的低压管路结霜的问题,结合课堂上的知识,我认为应该有以下几个原因: a)管道堵塞 b)鼓风机不运转 c)干燥瓶不起做用 d)温度传感器失效
第五篇:嵌入式系统实验报告
嵌入式系统设计实验报告
班 级: 学 号: 姓 名: 成 绩: 指导教师:
1.实验一
1.1 实验名称
博创UP-3000实验台基本结构及使用方法
1.2 实验目的
1.学习嵌入式系统开发流程。
2.熟悉UP-net3000实验平台的核心硬件电路和外设。
3.增加对各个外设的了解,为今后各个接口实验打下基础。
1.3 实验环境
博创UP-NETARM3000 嵌入式开发平台
1.4 实验内容及要求
(1)嵌入式系统开发流程概述
(2)熟悉UP-net3000实验平台的核心硬件电路和外设(3)ARM JTAG的安装与使用
(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)实现Hello World!
最终在输出了Hello World(2)编程实现ARM 和计算机之间的串行通讯
实现了串口通信,用ARM监视串口,接收到的字符串由ARM通过串口发送给超级终端,最终在超级终端上显示了按下的键。学习了串行通讯原理,了解串行通讯控制器,阅读ARM 芯片文档,掌握ARM 的UART相关寄存器的功能,熟悉ARM 系统硬件的UART 相关接口。
2.7 实验结果总结
对ADS 1.2开发环境使用和AXD Debugger使用方法有了初步的了解,基本成功运行了编译好的工程文件。
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寄存器 #define ZLG7289_CS #define ZLG7289_KEY #define ZLG7289_ENABLE()do{ZLG7289SIOBand=rSBRDR;ZLG7289SIOCtrl=rSIOCON;rSIOCON=0x31;rSBRDR=0xff;rPDATB&=(~ZLG7289_CS);}while(0)#define ZLG7289_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 输出和I/O 输出,前者用于控制直流电机,后者用于控制步进电机。
(3)了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。
(4)掌握带有PWM 和I/O 的CPU 编程实现其相应功能的主要方法。
4.3 实验环境
(1)ADS1.2开发环境
(2)博创UP-NETARM3000 嵌入式开发平台(3)PC(4)串口线
4.4 实验内容及要求
学习步进电机和直流电机的工作原理,了解实现两个电机转动对于系统的软件和硬件要求。学习ARM知识,掌握PWM 的生成方法,同时也要掌握I/O 的控制方法。
(1)编程实现ARM芯片的一对PWM 输出用于控制直流电机的转动,通过A/D 旋钮控制其正反转及转速
(2)编程实现ARM的四路I/O 通道实现环形脉冲分配用于控制步进电机的转动,通过A/D 旋钮转角控制步进电机的转角。
(3)通过超级终端来控制直流电机与步进电机的切换。4.5 实验设计与实验步骤
(1)新建工程,将“电机转动控制实验”中的文件添加到工程(2)编写直流电机初始化数(MotorCtrl.c)(3)控制直流电机与步进电机
4.6 实验过程与分析
(1)通过把从串口中得到控制信息的代码修改成从zlg7289芯片中读取小键盘信息,从而利用试验台的小键盘来控制步进电机和直流电机的切换
(2)A/D转换可以把电信号转换成数字信号来控制电机的转速。for(;;)
{ loop:
//if((rUTRSTAT0 & 0x1))//有输入,则返回
if(rPDATG&ZLG7289_KEY)//17键小键盘控制电机
{
*Revdata=RdURXH0();
goto begin;
}
Delay(10);ADData=GetADresult(0);
if(abs(lastADData-ADData)<20)
goto loop;Delay(10);count=-(ADData-lastADData)*3;
//(ADData-lastADData)*270/1024为ad旋钮转过的角度,360/512为步距角,//由于接了1/8减速器,两者之商再乘以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 实验结果总结 利用A/D转换器实现了对直流电机和步进电机的控制,利用实验设备上自带的小键盘实现了A/D转换器对两个电机控制的切换。 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)定义有关常量与宏 #define LCDWIDTH 320 #define LCDHEIGHT 240 U32* pLCDBuffer16=(U32*)0xc000000;// 一级缓存指针 U32 LCDBuffer[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){ case 0: jcolor=0x00000000;// 黑色 break;case 1: jcolor=0x000000e0;// 红色 break;case 2: jcolor=0x0000d0e0;// 橙色 break;case 3: jcolor=0x0000e0e0;// 黄 break;case 4: jcolor=0x0000e000;// 绿色 break;case 5: jcolor=0x00e0e000;// 青色 break;case 6: jcolor=0x00e00000;// 蓝色 break;case 7: jcolor=0x00e000e0;// 紫色 break;case 8: jcolor=0x00e0e0e0;// 白色 break;} for(k=0;k<240;k++)for(j=i*32;j 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.h头文件。 (3)将裁减后的系统所需用到的功能宏定义配置常量置为1,实现系统的裁减。(4)编译生成新的ucosII系统。 6.6 实验过程与分析 (1)配置功能常量,将裁剪后的系统需要用到的功能配置常量设为1(2)裁减信号量数据(3)配置数据结构 OS_MAX_TASKS,若程序中用到了三个任务,则该值的最小值为3 OS_LOWEST_PRIO设置程序中最低任务的优先级 OS_TASK_IDLE_STK_SIZE设置UC/OS操作系统中空闲任务堆栈的容量 OS_TASK_STAT_STK_SIZE设定统计任务的任务堆栈容量 6.7 实验结果总结 通过本次实验,裁减了系统,修改了某些数据结构相关的常量,节省了内存空间 6.8 心得体会 通过本次实验主要学习到了如何根据具体情况对μcos-II操作系统进行裁剪,从而得到即满足需要,又非常紧凑的应用软件系统。 7.实验七 7.1 实验名称 ucos-II移植实验 7.2 实验目的 了解µC/OS-II 内核的主要结构,掌握ARM的C语言和汇编语言的编程方法;了解ARM7处理器结构;掌握将µC/OS-II 内核移植到ARM 7 处理器上的基本原理与嵌入式编程实现方法 7.3 实验环境 (1)ADS1.2开发环境 (2)博创UP-NETARM3000 嵌入式开发平台(3)PC(4)串口线 7.4 实验内容及要求 (1)将µC/OS-II 内核移植到ARM7 微处理器S3C44B0上。(2)编写两个简单任务,在超级终端上观察两个任务的切换。 7.5 实验设计与实验步骤 (1)新建工程 (2)该实验的文件分为两类,其一是 STARTUP目录下的系统初始化、配置等文件,其二是uCOS-II 的全部源码,arch 目录下的3 个文件是和处理器架构相关的3.定义驱动函数(tchscr.c)(3)设置os_cpu.h 中与处理器和编译器相关的代码(4)用C 语言编写6 个操作系统相关的函数(5)用汇编语言编写4 个与处理器相关的函数 (6)编写一个简单的多任务程序来测试一下移植是否成功(7)编译并下载移植后的uCOS-II 7.6 实验过程与分析 (1)首先需要对相关寄存器做详细的设定(2)用汇编语言编写与处理器相关的函数(3)用分时的方法同时运行两个任务 OS_STK TaskName_Stack[STACKSIZE]={0, };//任务堆栈 void TaskName(void *Id);//任务函数 #define TaskName_Prio N //任务优先级 在main()函数中调用OSStart()函数之前用下列语句创建任务: OSTaskCreate(TaskName,(void*)0,(OS_STK*)&TaskName_Stack[STACKSIZE-1], TaskName_Prio);OSTaskCreate()函数的原型是: INT8U OSTaskCreate(void(*task)(void *pd), void *p_arg, OS_STK *ptos, INT8U prio);(4)编写任务函数 7.7 实验结果总结 通过实验达到了ucosII系统移植的目的,并编写了一个简单的多任务程序,分时运行。 7.8 心得体会 通过本次实验了解了µC/OS-II 内核的主要结构,掌握了ARM的C语言和汇编语言的编程方法。 8.实验八 8.1 实验名称 各接口模块相互衔接综合实验 8.2 实验目的 (1)回顾串口、键盘、LED接口、A/D、电机转动、定时器中断、LCD接口及触摸屏驱动控制等接口模块驱动设计及开发方法 (2)综合应用以上全部或者部分模块,实现一个嵌入式综合应用系统,要求至少用到8个模块中的5个 8.3 实验环境 (1)ADS1.2开发环境 (2)博创UP-NETARM3000 嵌入式开发平台(3)PC(4)串口线 8.4 实验内容及要求 (1)综合应用串口、键盘、LED接口、A/D、电机转动、定时器中断、LCD接口及触摸屏驱动控制等全部或者部分模块(2)实现一个嵌入式综合应用系统,要求至少用到8个模块中的5个,尽量使综合应用系统具备合理的功能。 8.5 实验设计与实验步骤 (1)运行ADS1.2开发环境(2)新建工程文件 (3)将综合实验中用到的文件放到这个工程文件中(4)下载编译好的文件到嵌入式控制器中运行 8.6 实验过程与分析 (1)本次实验设计主要是通过中断来实现,设定了flag=1,2,3,4,5,6六个标志位,对应不同的键值来实现功能的切换 (2)通过num/lock键来控制直流电机(3)通过“/”键来控制步进电机 (4)通过“*”键来控制屏输出“hello world”(5)通过“+”键来实现LED灯的计时 (6)通过“DEL”键来实现清屏和LED灯的清除 (7)通过“enter”键来进入到键值控制LED显示的功能 8.7 实验结果总结 实验最终能实现5个功能的切换,但不足的是未涉及到触摸屏的设计,并且最后的键值控制LED灯不能实现正常的中断跳转。 8.8 心得体会 通过本次综合性的实验来综合之前做的串口、键盘、LED接口、A/D、电机转动、定时器中断、LCD接口及触摸屏驱动控制实验,回顾了之前的知识,对整体的运用有了进一步的了解,但是实验结果仍有很多的不足,需要改进。 9.实验总结与心得体会 通过之前的串口、键盘、LED接口、A/D、电机转动、定时器中断、LCD接口及触摸屏驱动控制实验这7个小模块的实验,对嵌入式系统的开发流程有了基本的了解,熟悉了博创UP-NETARM3000实验台和ADS1.2软件的实验环境,同时也掌握了各模块功能实现功能的基本原理。在最后的综合性实验中,通过对以上知识的掌握和理解,进一步的对以上知识进行了加深和巩固,虽然有几次实验实现的实验结果并不是很成功,但还是达到了学习和理解的效果。