嵌入式课程设计之触摸屏程序设计
更新时间:2024-01-16 14:37:01 阅读量: 教育文库 文档下载
- 基于嵌入式的课程设计推荐度:
- 相关推荐
摘要
随着多媒体信息的与日俱增,传统的人机交互的速度已经不能满足需求,传统的人机交流是通过键盘或鼠标来实现的。信息交换的速度比较慢,而且要求操作者具有一定的专业知识。这将使信息交流的目的大打折扣。触摸屏因方便灵活、节省空间、直观等特点,作为嵌入式系统的输入设备,已取代键盘,越来越受到各种终端产品商的重视。 基于 Linux 的嵌入式系统目前获得到了广泛应用,在嵌入式 Linux 核心层的开发中,设备驱动分为字符设备、块设备和网络接口设备,触摸屏驱动属于字符设备,但它也可以被纳入 input 输入子系统的框架下。通过毕业设计的驱动程序开发,也希望能对国家在这方面的发展做出自己的一点贡献。 本论文介绍了触摸屏的分类和原理,接着概要介绍嵌入式系统的相关原理理论,然后详细介绍了整个系统的开发环境,最后对整个触摸屏驱动系统进行了分析,讨论了系统具体实现。
关键词:Linux 操作系统;触摸屏;程序开发;交叉编译
目录
第一部分 绪论 ........................................................................................................................... - 2 - 1.1设计目的 ................................................................................................................................. 1 1.2 设计意义 ............................................................................................................................- 2 - 1.3 设计内容 ............................................................................................................................- 2 - 1.4 主要任务 ............................................................................................................................- 2 - 第二部分 正文 ........................................................................................................................... - 3 - 2.1触摸屏工作原理(触摸屏接口工作模式) .....................................................................- 3 - 2.2、设计总体方案 ..................................................................................................................- 4 - 2.3、设计所需工具 ..................................................................................................................- 7 - 2.4、平台构建过程 ..................................................................................................................- 7 - 2.4.1、硬件平台搭建 .......................................................................................................... - 7 - 2.4.2根文件系统的制作 ..................................................................................................... - 9 - (1)根文件系统 ................................................................................................................ - 9 - 第三章 程序 ............................................................................................................................. - 14 - 3.1.程序流程图: ...................................................................................................................- 14 - 3.2.分析驱动 ...........................................................................................................................- 14 - 3.2.1、触摸屏设备驱动中数据结构 ................................................................................ - 14 - 3.2.2、触摸屏驱动模块加载和卸载函数 ........................................................................ - 16 - 3.2.3、触摸屏设备驱动的读函数 .................................................................................... - 18 - 3.2.4、触摸屏设备驱动的轮询与异步通知 .................................................................... - 18 - 3.2.5、实验结果显示: .................................................................................................... - 20 - 第四部分 心得 ......................................................................................................................... - 20 - 4.1 课程设计心得体会: ......................................................................................................- 20 - 第五部分 参考文献 ................................................................................................................. - 21 - 5.1【参考文献】 ....................................................................................................................- 21 -
- 1 -
第一部分 绪论
1.1 设计目的
1.基于Linux操作系统,以及Emest III实验箱,利用触摸屏返回触点坐标值及 动作信息。
2.坐标及动作的具体显示:触摸笔动作,触点X坐标值,触点Y坐标值。
1.2 设计意义
1. 熟悉嵌入式系统开发平台
2. 掌握ARM嵌入式Linux操作系统下的各个指令的使用方法 3. 了解触摸屏的原理
1.3 设计内容
1.Linux系统的正确移植和使用 2.根文件系统的正确移植和使用 3.驱动程序的编译与装载
4.嵌入式系统下应用程序的交叉编译及下载与调试
1.4 主要任务
1.熟悉实验的流程
2.vivi,linux内核的烧写
3.cramfs文件系统(烧写前需编译)的烧写
4. 调用驱动程序的某些函数,编译与调试应用程序
- 2 -
第二部分 正文
2.1触摸屏工作原理(触摸屏接口工作模式)
(1)普通转换模式
普通转换模式(AUTO_PST = 0,XY_PST = 0)是用作一般目的下的ADC转换。这个模式可以通过设置ADCCON和ADCTSC来进行对AD转换的初始化;而后读取ADCDAT0(ADC数据寄存器0)的XPDATA域(普通ADC转换)的值来完成转换。 (2)分离的X/Y轴坐标转换模式:X轴坐标转换和Y轴坐标转换。
X轴坐标转换(AUTO_PST=0且XY_PST=1)将X轴坐标转换数值写入到ADCDAT0寄存器的XPDATA域。转换后,触摸屏接口将产生中断源(INT_ADC)到中断控制器。
Y轴坐标转换(AUTO_PST=0且XY_PST=2)将X轴坐标转换数值写入到ADCDAT1寄存器的YPDATA域。转换后,触摸屏接口将产生中断源(INT_ADC)到中断控制器。
(3)自动(连续)X/Y轴坐标转换模式。
自动(连续)X/Y轴坐标转换模式(AUTO_PST=1且XY_PST= 0)以下面的步骤工作:
触摸屏控制器将自动地切换X轴坐标和Y轴坐标并读取两个坐标轴方向上的坐标。触摸屏控制器自动将测量得到的X轴数据写入到ADCDAT0寄存器的XPDATA域,然后将测量到的Y轴数据到ADCDAT1的YPDATA域。自动(连续)转换之后,触摸屏控制器产生中断源(INT_ADC)到中断控制器。 (4)等待中断模式
当触摸屏控制器处于等待中断模式下时,它实际上是在等待触摸笔的点击。在触摸笔点击到触摸屏上时,控制器产生中断信号(INC_TC)。中断产生
- 3 -
后,就可以通过设置适当的转换模式(分离的X/Y轴坐标转换模式或自动X/Y轴坐标转换模式)来读取X和Y的位置。 (5)静态(Standby)模式
当ADCCON寄存器的STDBM位被设为1时,Standby模式被激活。在该模式下,A/D转换操作停止,ADCDAT0寄存器的XPDATA域和ADCDAT1寄存器的YPDATA(正常ADC)域保持着先前转换所得的值。
2.2、设计总体方案
1、软件
(1)Embest Online Flash Programmer For ARM: Embest Flash在线编程器 (2)HYPER TERMINAL(超级终端):传送vivi.nand;
- 4 -
传送vivi.nand
vivi> load flash kernel x <回车> 烧写更新内核,传送zImage文件; 等待传送内核文件
- 5 -
传送内核:
vivi>load flash root j <回车> 烧写更新文件系统; 烧写新的文件系统 load flash root j
(3) EmbestIDE Pro for ARM:
应用于嵌入式软件开发的新一代集成开发环境,是一个高度集成的图形界面操作环境,包含编辑器、编译汇编链接器、调试器、工程管理、Flash 编程等工具;支持的开发语言包括标准C和汇编语言。 (4)cygwin:
一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌
- 6 -
入式系统开发,把gcc,gdb,gas等开发工具进行了改进,能够生成并解释win32的目标文件。 2、硬件
S3C2410处理器是Samsung公司基于ARM公司的ARM920T处理器核,32位微控制器。该处理器拥有:独立的16KB指令Cache和16KB数据Cache,MMU,支持TFT的LCD控制器,NAND闪存控制器,3路UART,4路DMA,4路带PWM的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2个USB主机,1个USB设备,SD主机和MMC接口,2路SPI。S3C2410处理器最高可运行在203MHz。
2.3、设计所需工具
1.软件: Embest Online Flash Programmer For ARM,HYPER TERMINAL(超级
终端),EmbestIDE Pro for ARM,cygwin
1. 硬件:s3c2410开发板,Embest实验箱
2.4、平台构建过程
2.4.1、硬件平台搭建
硬件流程图:
- 7 -
(1) Vivi烧写过程
1)首先把SW104断开,Flash Programmer的Program,在File选择Open打开要烧写的配置文件S3C2410&NandFLash_vivi.cfg,在Flash Programmer的Program页中选择要烧写的文件vivi.bon&load.bin。点击按钮 Progarm 开始烧写,直到烧写成功
2) 连接串口线到 PC 机 COM1,运行光盘中提供的 Windows 超级终端Hyper Terminal.ht 把开发板重新加电,程序运行后,在超级终端上可以看到串口输出Wating,表示正在等待用户从超级终端下载文件。这时,请点击超级终端菜单\传送\选择 Xmodem 方式下载 vivi.nand 文件,点击 OK 后等待下载烧写结束即可。 (2) 内核zImage烧写
1) 首先SW104设为短接(从Nand Flash启动),并确定已经烧写vivi.nand,加电。
2 ) 在vivi启动等待中,敲入空格键进入vivi界面环境,并输入以下命令:vivi> load flash kernel x <回车> 烧写更新内核约1分钟即可烧写完毕 3 ) 点击超级终端菜单中的“传送”,选“发送文件”zImage” 并选择xModem方式传送)烧写结束,重起实验板,观测超级终端窗口提示信息就可以启动linux内核, (3) 新文件系统的烧写
1)首先SW104设为短接(从Nand Flash启动),确定已经成功烧写vivi.nand,加电运行可以看到vivi启动信息,输入空格进入命令状态;
2)双击运行Download.pjf(该文件在/tmp/edukit-2410/image/中)工程(将启动Embest IDE环境),点击连接Remote connect,程序应该正在运行(命令按钮STOP为红色);在串口输入help,看看有没有反应,如果没反应,点击IDE 按钮:Reset ->Start(F5);再输入help测试,直到有反应为止;
3)如果可以输出一些信息,再点击IDE中的Stop,配置Debug的Download地址为0x30000000,并点击IDE菜单Project选择Settings项,在Download页下拉Category到Download项,在Download File选择root.cramfs文件,点击确定后:
点击IDE菜单DEBUG选择Download下载文件系统映象
约1分钟
- 8 -
下载完毕后,点击Start(F5)
然后在超级终端里输入: load flash root j (烧写更新文件系统)约1分钟即可烧写完毕
注意:只能在“vivi的烧写”操作完成后,才可以按以上方法正确烧写root映象到Nand Flash。
重起实验板,观测超级终端窗口提示信息,引导整个系统启动到linux行命令输入状态。
2.4.2根文件系统的制作 (1)根文件系统
根文件系统是Linux系统的核心部分,包含系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件,并作为储存数据读写结果的区域。在Linux系统启动时,首先完成内核安装及环境初始化,最后会寻找一个文件系统作为根文件系统被加载。Linux系统中使用“/”来唯一表示根文件系统的安装路径。嵌入式系统中通常可以悬着的根文件系统有:Romfs、CRAMFS、RAMFS、JFFS2、EXT2等,甚至还可以使用NFS作为根文件系统。
(2)cramfs文件系统
Cramfs是Linux创始人Linux torvalds开发的一个适用于嵌入式系统的小文件系统。Cramfs是一个只读文件系统,采用zlib压缩,压缩比一般可以达到1:2,但仍可以做到高效的随机读取。Linux系统中,通常把需要修改的目录压缩存放,并在系统引导的时候再将压缩文件解开。因为cramfs不会影响系统读取文件的速度,而且是一个高度压缩的文件系统,因此非常广泛应用于嵌入式系统中。
(3)cygwin简介
Cygwin是一个在windows平台上运行的unix/Linux模拟环境,是cygnus solutions公司开发的自由软件。Cygwin中,“/”表示根目录,即cygwin的安
- 9 -
装目录。我们常用的set_env_linux.sh中定义的目录有:
SOURCEDIR:/tmp/edukit-2410存储了vivi、linux、fs等源代码和例程 WORKDIR:/usr/local/src/edukit-2410工作区。
一般情况下都要把已经规划好的目录结构转换成一个映象文件,即使用命令工具 mkcramfs(cygwin下为 mkcramfs.exe),把相应的 cramfs 目录树压缩为单一的映象文件。其命令格式为:
mkcramfs [-h] [-e edition] [-i file] [-n name] dirname outfile 可以使用我们提供的 mkcramfs.exe 在 cygwin 下编译生成文件系统映象文件 root.cramfs,再固化到开发系统 FLASH 上运行。
(4)常用的Linux行命令
1)、cd 改变当前目录(文件夹)。例如下, cd/ 返回到根目录 cd.. 退回到上级目录
cd/tmp/edukit-2410/进入/tmp/edukit-2410/文件夹 2)、ls 列出当前目录中的内容。 Ls 简单格式列表 ls–l 使用详细格式列表。 3)、pwd 显示当前所在的目录。
(5)tar工具命令
tar 程序用于储存或展开 tar 存档文件。 命令格式:
tar [-参数] [文件名][路径] -x :extract | --get 从存档展开文件 -v :--verbose 详细显示处理的文件 -j :--有 bz2 属性的必须包含
-f :--file [HOSTNAME:]F 指定存档或设备(缺省为 /dev/rmt0)
(6)解压原文件系统(命令+解压目录的存放)
1)先将 root.cramfs.tar.bz2文件放在C:\\cygwin目录中
- 10 -
2)解压文件系统
运行cygwin,执行以下命令解压安装:
$> source /tmp/edukit-2410/set_env_linux.sh变量设置 $> cd /
$> tar -xvjf root.cramfs.tar.bz2 $> ls ? root ?
root文件夹中就是我们想要的cramfs文件系统 3) 如果在根目录中产生root文件夹,解压成功 4)在root目录中新建xx文件夹,用于存放应用程序
进入该目录后执行以下命令编译链接测试程序: $> cd root $>mkdir xx
Linux编译环境
(7)编译应用程序 ts.c (命令+生成文件格式+存放位置):
将编写好的ts.c程序放在C:\\cygwin目录中 进入该目录后执行以下命令编译链接测试程序: $> cd /
$> arm-linux-gcc -o ts ts.c (也可以编写Makefile来编译)
生成文件: ts 如下图所示
将ts文件放入root 下的xx文件夹中
(8) 新文件系统的制作:
把刚才编译输出的ts文件拷贝到文件系统所在的工作目录root目录下,执行以下命令生成新的文件系统映象: $> cd /
- 11 -
$> mkcramfs root root.new
刚刚编译生成的文件系统映象 root.new 中已经包含测试程序即生成文件。 解压文件系统
解压成功如下
在root目录中新建xx文件夹,用于存放应用程序
将编写好的ts.c程序放在C:\\cygwin目录中
- 12 -
生成文件: ts 如下图所示
新文件系统的制作
生成文件:
- 13 -
第三章 程序
3.1.程序流程图:
3.2.分析驱动
触摸屏驱动在/kernel/drivers/char/s3c2410-ts.c 文件中。3.2.1、触摸屏设备驱动中数据结构
1)触摸屏的file_operations
static struct file_operations s3c2410_fops={
- 14 -
( owner: THIS_MODULE, open: s3c2410_ts_open, read: s3c2410_ts_read,
release: s3c2410_ts_release,
#ifdef USE_ASYNC
fasync: s3c2410_ts_fasync,//异步通知
#endif
poll: s3c2410_ts_poll,//轮询 };
(2)触摸屏设备结构体的成员与按键设备结构体的成员类似,也包含一个缓冲
区,同时包括自旋锁、等待队列和fasync_struct指针 typedef struct {
unsigned int penStatus; /* PEN_UP, PEN_DOWN, PEN_SAMPLE */ TS_RET buf[MAX_TS_BUF]; /* protect against overrun(环形缓冲
区) */
unsigned int head, tail;/* head and tail for queued events (环
形缓冲区的头尾)*/
wait_queue_head_t wq; //* 等待队列数据结构 spinlock_t lock; //* 自旋锁
#ifdef USE_ASYNC
struct fasync_struct *aq;
#endif
#ifdef CONFIG_PM
struct pm_dev *pm_dev; //友善之臂专有的,我后面的代码删除了
这段 #endif } TS_DEV;
(3)触摸屏结构体中包含的TS_RET值的类型定义,包含X、Y坐标和状态(PEN_DOWN、PEN_UP)等信息,这个信息会在用户读取触摸信息时复制到用户空 间
typedef struct {
- 15 -
unsigned short pressure; //* 压力,这里可定义为笔按下,笔抬起,笔拖曳
unsigned short x; //* 横坐标的采样值 unsigned short y; //* 纵坐标的采样值 unsigned short pad; //* 填充位 } TS_RET;
(4)在触摸屏设备驱动中,将实现open()、release()、read()、fasync()和poll()函数,因此,其文件操作结构体定义
触摸屏驱动文件操作结构体:static struct file_operations s3c2410_fops={}
3.2.2、触摸屏驱动模块加载和卸载函数
(1)在触摸屏设备驱动的模块加载函数中,要完成申请设备号、添加cdev、申
请中断、设置触摸屏控制引脚(YPON、YMON、XPON、XMON)等多项工作 触摸屏设备驱动的模块加载函数
static int __init s3c2410_ts_init(void) 触摸屏设备驱动模块卸载函数
static void __exit s3c2410_ts_exit(void)
(2)可知触摸屏驱动中会产生两类中断,一类是触点中断(INT-TC),一类是
X/Y位置转换中断(INT-ADC)。在前一类中断发生后,若之前处于PEN_UP状态,则应该启动X/Y位置转换。另外,将抬起中断也放在INT-TC处理程序中,它会调用tsEvent()完成等待队列和信号的释放 触摸屏设备驱动的触点/抬起中断处理程序
static void s3c2410_isr_tc(int irq, void *dev_id, struct pt_regs *reg)
- 16 -
当X/Y位置转换中断发生后,应读取X、Y的坐标值,填入缓冲区 触摸屏设备驱动X/Y位置转换中断处理程序
static void s3c2410_isr_adc(int irq, void *dev_id, struct pt_regs *reg) 触摸屏设备驱动中获得X、Y坐标
static inline void s3c2410_get_XY(void)
(3)tsEvent最终为tsEvent_raw(),这个函数很关键,当处于PEN_DOWN状态
时调用该函数,它会完成缓冲区的填充、等待队列的唤醒以及异步通知信号的释放;否则(处于PEN_UP状态),将缓冲区头清0,也唤醒等待队列并释放信号
触摸屏设备驱动的tsEvent_raw()函数 static void tsEvent_raw(void)
(4)在包含了对拖动轨迹支持的情况下,定时器会被启用,周期为10ms,在
每次定时器处理函数被引发时,调用start_ts_adc()开始X/Y位置转换过程
触摸屏设备驱动的定时器处理函数
static void ts_timer_handler(unsigned long data)
(5)在触摸屏设备驱动的打开函数中,应初始化缓冲区、penStatus和定期器、
等待队列及tsEvent时间处理函数指针 触摸屏设备驱动的打开函数
static int s3c2410_ts_open(struct inode *inode, struct file *filp)
- 17 -
(6)触摸屏设备驱动的释放函数非常简单,删除为用于拖动轨迹所使用的定
时器即可
触摸屏设备驱动的释放函数
static int s3c2410_ts_release(struct inode *inode, struct file *filp)
3.2.3、触摸屏设备驱动的读函数
触摸屏设备驱动的读函数实现缓冲区中信息向用户空间的复制,当缓冲区有内容时,直接复制;否则,如果用户阻塞访问触摸屏,则进程在等待队列上睡眠,否则,立即返回-EAGAIN 触摸屏设备驱动的读函数
static ssize_t s3c2410_ts_read(struct file *filp, char *buffer, size_t count, loff_t *ppos)
3.2.4、触摸屏设备驱动的轮询与异步通知
在触摸屏设备驱动中,通过s3c2410_ts_poll()函数实现了轮询接口,这个函数的实现非常简单。它将等待队列添加到poll_table,当缓冲区有数据时,返回资源可读取标志,否则返回0 触摸屏设备驱动的poll()函数
static unsigned int s3c2410_ts_poll(struct file *filp, struct poll_table_struct *wait)
而为了实现触摸屏设备驱动对应用程序的异步通知,设备驱动中要实现s3c2410_ts_fasync()函数 触摸屏设备驱动的fasync()函数
- 18 -
static int s3c2410_ts_fasync(int fd, struct file *filp, int mode)
3.3.应用程序的调试
使用触摸屏驱动编写应用程序,读取触摸屏的触点坐标值及动作信息(触点
x坐标值,y坐标及是否有压力值press),并在串口中断打印出来
对触摸屏设别的操作有打开设备,关闭设备,读操作等。编写应用程序读取触摸屏的触点坐标值及动作信息时,只需利用触摸屏驱动程序便可实现,先打开触摸屏设备,然后调用读函数即可。 其中,触摸笔动作取值如下: #define PEN_UP 0 /* 触摸笔抬笔,即触摸屏不被压下 */ #define PEN_DOWN 1 /* 触摸笔下笔,即触摸屏被压下 */ #define PEN_FLEETING 2 /* 触摸笔拖动 */ 结构体定义如下: typedef struct {
unsigned short pressure; /* 触摸笔动作 */ unsigned short x; /* 触点x座标值 */ unsigned short y; /* 触点y座标值 */ unsigned short pad; }TS_RET
打开应用程序:
- 19 -
3.2.6、实验结果显示:
第四部分 感想
第四部分 心得
4.1 心得体会:
为期几周的嵌入式课程及上机结束了,再次期间我积极亲自实验,用嵌入式
开发板来学习触摸板的设计。我学会了很多。
首先我扪主要了解整个设计过程,以及实验环境的建立,这次用的是交叉编译环境,通过这次课设我更清楚搭建嵌入式系统的开发平台,掌握了一些常用的命令,加上老师给我们的指导,知道了如何学习,如何思考,知道了运用linux
- 20 -
操作系统开发嵌入式。
其次是学会vivi,内核,根文件系统的编译与移植(烧写),通过这个过程我熟悉了怎么把软件固化到硬件上,知道了软件怎么控制硬件,这个步骤很重要,要烧写不成功,目标板系统就运行不起来,实验就失败了!
再次我们就运用老师给我们的应用程序,通过以上步骤实验系统搭建好了,只要调试好应用程序,然后再运行成功就行了,为此我认真看了实验指导书,经老师悉心指导,经过不断的操作终于编译成功。
我明白了只有不断的努力,不断的学习,才能在将来遇到的问题中能够游刃有余,才能够不会捉襟见肘。
第五部分 参考文献
5.1【参考文献】
1 程昌南,方强等.《ARM Linux入门与实践 》【M】.北京:北京航空航天大学出版社,2008.10
2 张晓林等.《嵌入式系统设计与实践》【M】.北京:北京航空航天大学出版社,2006.1
3 李俊等.《嵌入式Linux设备驱动开发详解》【M】.北京:北京人民邮电出版社,2008.3
- 21 -
4 黄智伟,邓月明,王彦.《ARM9嵌入式系统设计基础教程》.北京:北京航空航天大学出版社,2008.8
5 [美]Wayne Wolf. 嵌入式计算系统设计原理. 孙玉芳, 梁彬 罗保国 等译.
北京: 机械工业出版社, 2002
6 李剑, 赵鹏程, 汤建彬. 32位ARM嵌入式处理器的调试技术. 电子技术应用,
2003, (3)
7 钟汉如, 王创生. 嵌入式Linux的中断处理与实时调度的实现机制. 计算机
工程, 2002, 28(10)
8 Arnold Berger. 嵌入式系统设计. 吕骏 译. 北京: 电子工业出版社, 2002
- 22 -
正在阅读:
嵌入式课程设计之触摸屏程序设计01-16
汪洋中的一条船-郑丰喜(繁体完整版)03-11
难忘的一次旅行作文600字06-24
失信违法行为责任追究制度06-17
接插件的基本性能11-11
主厂房毛石回填及土方回填施工措施12-08
2018年医院党支部工作总结03-12
面试英语109-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 触摸屏
- 程序设计
- 嵌入式
- 课程
- 设计
- 山东2018高校教师资格证-教师职业道德修养题库400
- 办事处合作协议
- 2014美术类专业竞赛实施方案
- 课题研究文献资料的收集与分析记录表(珠)
- 工程验收备案表 - 图文
- 关于心理健康的议论文
- 实验四 蛙类毛细血管血液循环的观察
- “向四川地震灾区灾民捐款救助”活动倡议书
- 某公司建筑石料用灰岩矿露天开采扩建项目职业病危害预评价报告书 - 图文
- 石油公司财务预测与估值模型
- 大学生对于热点政治事件的关注程度
- 华南理工大学期中考试 材料力学试题-2009
- 积石山县癿藏的来历
- 中科院物理化学习题集02
- 天长中学英语试卷
- ACCESS上机练习及解答
- 24山砂水吉凶流年断法
- 课外阅读考级题目-《大林和小林》
- 一年级品德与生活上册奇妙的冬天教案4北师大版
- 紫穗槐果实里天然成分的提取(本科毕业论文)