




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计(论文)任务书 信息工程 学 院物联网 专 业2014-2 班 一、课程设计(论文)题目基于Ucos的多通道数据采集系统 二、课程设计(论文)工作自 2017 年 06 月 26 日起至 2017 年 06 月 30 日止。三、课程设计(论文) 地点: 嵌入式系统实验室 四、课程设计(论文)内容要求:1本课程设计的目的(1)使学生掌握嵌入式开发板(实验箱)各功能模块的基本工作原理; (2)培养嵌入式系统的应用能力及嵌入式软件的开发能力; (3)使学生较熟练地应用嵌入式操作系统及其API开发嵌入式应用软件;(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。 2课程设计的任务及要求1)基本要求:(1)分析所设计嵌入式软件系统中各功能模块的实现机制;(2)选用合适嵌入式操作系统及其API;(3)编码实现最终的嵌入式软件系统; (4)在实验箱上调试、测试并获得最终结果。2)创新要求: 在基本要求达到后,可进行创新设计,如改善嵌入式软件实时性能;扩展嵌入式软件功能及改善其图形用户界面。3)课程设计论文编写要求(1)要按照书稿的规格打印誊写课程设计论文。(2)论文包括目录、正文、小结、参考文献、谢辞、附录等(以上可作微调)。(3)课程设计论文装订按学校的统一要求完成。4) 课程设计评分标准: (1)学习态度:20分;(2)回答问题及系统演示:30分(3)课程设计报告书论文质量:50分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。5)参考文献:(1)罗蕾.嵌入式实时操作系统及应用开发北京航空航天大学出版社 (2)Jean J.Labrosse. 嵌入式实时操作系统uC/OS-II北京航空航天大学出版社(3)王田苗.嵌入式设计与开发实例.北京航空航天大学出版社(4)北京博创科技公司. 嵌入式系统实验指导书6) 课程设计进度安排(1)准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关资料。(2)嵌入式软件设计分析阶段(4学时):程序总体设计、详细设计。(3)嵌入式软件代码编写调试阶段(8学时):程序模块代码编写、调试、测试。(4)撰写论文阶段(4学时):总结课程设计任务和设计内容,撰写课程设计论文。7) 课程设计题目具体要求:本题的具体任务是设计多任务的嵌入式软件 ,通过分析、设计、编程、调试、测试等步骤,形成一个基于ucos可稳定运行的嵌入式多任务软件系统。学生签名: 2017 年 6 月26 日课程设计(论文)评审意见(1)考勤(10分): 优()、良()、中()、一般()、差(); (2)系统设计(20分):优( )、良()、中()、一般()、差(); (3)编程调试(10分):优()、良()、中()、一般()、差();(4)回答问题(15分):优()、良()、中()、一般()、差();(5)论文撰写(35分):优()、良()、中()、一般()、差();(6)创新思想(10分):优()、良()、中()、一般()、差();综合评定等级:评阅人: 职称:副教授 2017 年6 月 30日目录一、课设目的及内容11.1课设目的11.2课设内容1二、设计的原理22.1总体设计原理22.2A/D转换器原理22.3基于uc/os2II的系统程序流程3三、环境搭建及开发环境5四、主要程序代码设计7五、运行测试结果20六、心得体会22七、参考文献23一、课设目的及内容1.1课设目的在二十一世纪的今日,人们生活在一个信息的的时代,各种各样不同的信息给予我们很多不同的选择。 对于信息的需求,各类人有着不同的需求,但是肯定的是,对于信息的重要性大家已经有了认识。数据采集 已经成为一种专业的技术,在各个领域得到了广泛的应用。数据采集系统起源于20世纪50年代,并当 即就获得了初步的认可,在很多的地方得到了运用。在60年代前后,国外就有了用于专业数据采集的系 统。20世纪70年代后期,随着微型机的发展,诞生了采集器、仪表同计算机溶为一体的数据采集系 统。由于这种数据采集系统的性能优良,超过了传统的自动检测仪表和专用数据采集系统,因而获得了 惊人的发展。到了现在,经过更长久的发展,嵌入式系统已经走进千家万户,嵌入式的数据采集系统不仅功 耗低,而且操作简单,正适合应用于在家中,路上或者生活中的各处。1.2课设内容一、 基本要求(必做)(1) 求出四路通道的平均值,并绘制在显示屏上(平均值应该象其他通道的值一样,可以根据实时采集值的变化而变化)。(2) 报警,在超出阈值时报警一次,如果此后此通道的值不变则不再报警,若此通道的值被调小为小于阈值而后又被调为大于阈值,则再次报警一次。(3) 设置时间和日期初值,并实时显示在LCD上(同各通道的值同屏显示)。并能够在整点的时候发声提示。二、 提高要求(选做) 在一的基础上利用四路通道平均值的大小控制电机的转动速度,使电机实时转动。二、设计的原理2.1总体设计原理本系统由硬件和软件两部分组成。硬件以AT89C51和12位ADC芯片AD574A为核心,具有键盘控制和液晶显示功能,并有一路数模转换输出。该系统还具有实时时间显示和看门狗功能,可以通过RS232和GPIB接口以便与外部(微机)通信。系统的软件以实时嵌入式操作系统uc/os2为基础,采用多任务机制,通过任务调度和任务监视,系统具有较好的实时性和安全性。uc/os2II是源码公开的实时嵌入式操作系统,采用优先级调度算法完成任务间的调度,并支持抢占式调度。uc/os2II具有可裁减的体系结构,并具有内存管理、中断管理和任务控制块(TCB)扩展的功能。uc/os2II还提供很多系统服务,例如邮箱、消息队列、信号量等等。 2.2A/D转换器原理主要介绍以下三种方法:逐次逼近法、双积分法、电压频率转换法1)逐次逼近法逐次逼近式A/D是比较常见的一种A/D转换电路,转换的时间为微秒级。采用逐次逼近法的A/D转换器是由一个比较器、D/A转换器、缓冲寄存器及控制逻辑电路组成,如图所示。基本原理是从高位到低位逐位试探比较,好像用天平称物体,从重到轻逐级增减砝码进行试探。逐次逼近法的转换过程是:初始化时将逐次逼近寄存器各位清零;转换开始时,先将逐次逼近寄存器最高位置1,送入D/A转换器,经D/A转换后生成的模拟量送入比较器,称为 Vo,与送入比较器的待转换的模拟量Vi进行比较,若VoVi,该位1被保留,否则被清除。然后再置逐次逼近寄存器次高位为1,将寄存器中新的数字量送D/A转换器,输出的 Vo再与Vi比较,若Vo=2.44US (6) 、一个或多个输入的Burst转换模式 (7) 、可选择由输入跳变或定时器匹配信号触发转换 (8)、2个转换器的全局启动命令 描述: A/D转换器的基本时钟由VPB时钟提供。每个转换器包含一个可编程分频器,可将时钟调整至逐步逼近 转换所需的4.5MHZ。完全满足精度要求的转换需要11个这样的时钟。2、4X4键盘 键盘按与微控制器的连接方式,其结构可分为线性键盘和矩阵键盘两种形式。 线性键盘由若干个独立的案件组成,每个按键的一端与微控制器的一个I/O口相连。有多少个键就要有 多少根线与微控制器的I/O口相连,适用于按键少的场合。矩阵键盘的按键按N行M列排列。根据矩阵 键盘的识键和译键的不同,矩阵键盘又可以分为非编码键盘和编码键盘两种。非编码键盘主要用软件的 方法识键和译键。根据扫描方法的不同,可以分为行扫描法,列扫描法和反转法三种。 在本设计中,使用了节省口线的行扫描法来检测键盘,与4X4的矩阵键盘接口只需要8根口线,设 置KEY1KEY为输出扫描码的端口,KEYAKEYB为键值读入口。3、 LCD显示模块 在这里应用了LCD显示模块来进行数据的输出。GUI即图形用户接口,是操作系统和用户的人机接 口。 GUI是一种嵌入式应用中的图形支持系统。它设计用于为任何使用LCD图形显示的应用提供高效的独立 于处理器和LCD控制器的图形用户接口,它适用单任务或是多任务系统环境,并适用于任意LCD控制器 和CPU下任何尺寸的真实显示或是虚拟显示。它的设计结构是模块化的,由不同模块中的不同层组成, 由一个LCD驱动层来包含所有对LCD的具体图形操作。 使用GUI来控制LCD的显示,不仅代码容易,简单,而且在任何的CPU上都能运行。所以本人在这里选 择了这样的方式。四、主要程序代码设计完成要求1:求出四路通道的平均值,并绘制在显示屏上(平均值应该象其他通道的值一样,可以根据实时采集值的变化而变化)。 #include.ucos-iiincludes.h /* uC/OS interface */#include .ucos-iiaddosaddition.h#include .incdrv.h#include #include.incdrvad.h#include .incdrvIIS-S3C44B0.h#include .incdrvOSFile.h#define ID_ChannelTextCtrl 101#define ID_ValueTextCtrl 102#define Draw_Wnd_ID 104PTextCtrl pChannelTextCtrl,pValueTextCtrl;float result_AD0,result_AD1,result_AD2,result_AD3,average;int WarnningData5=33,33,33,33,33;int edit2=0,0;int bufferAUDIO_IN_BUFFERSIZE*20;/*任务定义*/OS_STK Main_StackSTACKSIZE*8=0, ; /Main_Test_Task堆栈void Main_Task(void *Id); /Main_Test_Task#define Main_Task_Prio 12OS_STK Display_Task_StackSTACKSIZE*8=0, ; /Main_Test_Task堆栈void Display_Task(void *Id); /Main_Test_Task#define Display_Task_Prio 20OS_STK AD0_Task_StackSTACKSIZE*8=0, ; /Main_Test_Task堆栈void AD0_Task(void *Id); /Main_Test_Task#define AD0_Task_Prio 21OS_STK AD1_Task_StackSTACKSIZE*8=0, ; /Main_Test_Task堆栈void AD1_Task(void *Id); /Main_Test_Task#define AD1_Task_Prio 22OS_STK AD2_Task_StackSTACKSIZE*8=0, ; /Main_Test_Task堆栈void AD2_Task(void *Id); /Main_Test_Task#define AD2_Task_Prio 23OS_STK AD3_Task_StackSTACKSIZE*8=0, ; /Main_Test_Task堆栈void AD3_Task(void *Id); /Main_Test_Task#define AD3_Task_Prio 24/*已经定义的OS任务*tcp监控任务11以太网物理层监控任务8触摸屏任务9键盘任务10lcd刷新任务59系统任务1*/*事件定义*/OS_EVENT *Nand_Rw_Sem; /Nand_Flash读写控制权旗语/and you can use it as folloeing:/ Nand_Rw_Sem=OSSemCreate(1); /创建Nand-Flash读写控制权旗语,初值为1满足互斥条件/ OSSemPend(Nand_Rw_Sem,0,&err);/ OSSemPost(Nand_Rw_Sem);OS_EVENT *Uart_Rw_Sem; /Uart读写控制权旗语/and you can use it as folloeing:/ Uart_Rw_Sem=OSSemCreate(1); /创建Uart读写控制权旗语,初值为1满足互斥条件/ OSSemPend(Uart_Rw_Sem,0,&err);/ OSSemPost(Uart_Rw_Sem);/void initOSGUI()/初始化操作系统的图形界面initOSMessage();initOSList();initOSDC();initOSCtrl();initOSFile();/ Main function. /int Main(int argc, char *argv)ARMTargetInit(); /开发板初始化OSInit(); /操作系统初始化 uHALr_ResetMMU();/复位MMULCD_Init(); /初始化LCD模块LCD_printf(LCD initialization is OKn);/向液晶屏输出数据LCD_printf(320 x 240 Text Moden);initOSGUI();/初始化图形界面LoadFont();/调Unicode字库LoadConfigSys();/使用config.sys文件配置系统设置LCD_printf(Create task on uCOS-II.n);OSTaskCreate(Main_Task, (void *)0, (OS_STK *)&Main_StackSTACKSIZE*8-1, Main_Task_Prio);/ 创建系统任务OSTaskCreate(Display_Task,(void *)0, (OS_STK *)&Display_Task_StackSTACKSIZE-1, Display_Task_Prio);/ 20OSTaskCreate(AD0_Task,(void *)0, (OS_STK *)&AD0_Task_StackSTACKSIZE-1, AD0_Task_Prio);OSTaskCreate(AD1_Task,(void *)0, (OS_STK *)&AD1_Task_StackSTACKSIZE-1, AD1_Task_Prio);OSTaskCreate(AD2_Task,(void *)0, (OS_STK *)&AD2_Task_StackSTACKSIZE-1, AD2_Task_Prio);OSTaskCreate(AD3_Task,(void *)0, (OS_STK *)&AD3_Task_StackSTACKSIZE-1, AD3_Task_Prio);OSAddTask_Init();/创建系统附加任务LCD_printf(Starting uCOS-II.n);LCD_printf(Entering graph mode.n);LCD_ChangeMode(DspGraMode);/变LCD显示模式为文本模式InitRtc();/初始化系统时钟Nand_Rw_Sem=OSSemCreate(1); /创建Nand-Flash读写控制权旗语,初值为1满足互斥条件/OSStart();/操作系统任务调度开始/不会执行到这里return 0;/void Wave();/void init_ADdevice()/rADCPSR=20;/rADCCON=ADCCON_SLEEP;/U8 onKey(int nkey, int fnkey)static BOOLEAN input=FALSE;static int EditNumber=1;if(EditNumber=1)switch(nkey)case 14:/OKif(!input)SetWndCtrlFocus(NULL, ID_ChannelTextCtrl);pChannelTextCtrl-text0=0; /清空文本框SetTextCtrlEdit(pChannelTextCtrl, TRUE);DrawTextCtrl(pChannelTextCtrl);input=TRUE;edit0=1;elseSetTextCtrlEdit(pChannelTextCtrl, FALSE);DrawTextCtrl(pChannelTextCtrl);input=FALSE;edit0=0;EditNumber=2;return TRUE;case 16:/CancelSetTextCtrlEdit(pChannelTextCtrl, FALSE);input=FALSE;edit0=0;EditNumber=2;return TRUE;else if(EditNumber=2)switch(nkey)case 14:/OKif(!input)SetWndCtrlFocus(NULL, ID_ValueTextCtrl);pValueTextCtrl-text0=0; /清空文本框SetTextCtrlEdit(pValueTextCtrl, TRUE);DrawTextCtrl(pValueTextCtrl);input=TRUE;edit1=1;elseSetTextCtrlEdit(pValueTextCtrl, FALSE);DrawTextCtrl(pValueTextCtrl);input=FALSE;edit1=0;EditNumber=1;WarnningData Unicode2Int(pChannelTextCtrl-text)=Unicode2Int(pValueTextCtrl-text);return TRUE;case 17:/CancelSetTextCtrlEdit(pValueTextCtrl, FALSE);DrawTextCtrl(pValueTextCtrl);input=FALSE;edit1=0;EditNumber=1;return TRUE;return FALSE;void Main_Task(void *Id) /Main_Test_TaskPOSMSG pMsg;init_ADdevice(20,ADCCON_SLEEP);for(;)POS_Ctrl pCtrl;pMsg=WaitMessage(0);if(pMsg-pOSCtrl)if(pMsg-pOSCtrl-CtrlMsgCallBk)(*pMsg-pOSCtrl-CtrlMsgCallBk)(pMsg);elseswitch(pMsg-Message)case OSM_KEY:pCtrl=GetCtrlfromID(NULL, GetWndCtrlFocus(NULL);if(pCtrl-CtrlType=CTRLTYPE_WINDOW)if(PWnd)pCtrl)-style&WND_STYLE_MODE)=WND_STYLE_MODE)/焦点是有模式窗口,消息直接传递过去OSOnSysMessage(pMsg);break;if(onKey(pMsg-WParam,pMsg-LParam) )break;default:OSOnSysMessage(pMsg);break;DeleteMessage(pMsg);OSTimeDly(200);void Display_Task(void * Id) /Main_Test_TaskPDC pdc; int a0,a1,a2,a3,a4;structRECT ChannelTextCtrl_Rect,ValueTextCtrl_Rect,Draw_Wnd_Rect;char Channel_Caption_810=Channel:;char Value_Caption_810=Value:;char Draw_Wnd_Caption_8=Draw Window;char vol_8=Vol;char chn_8=Chn;char chn0_8=0;char chn1_8=1;char chn2_8=2;char chn3_8=3;char chn4_8=ave;char vol_10_8=10;char vol_20_8=20;char vol_30_8=30;u16 Channel_Caption_1610;u16 Value_Caption_1610;U16 Draw_Wnd_Caption_1620;u16 vol_165;u16 chn_165;u16 chn0_162;u16 chn1_162;u16 chn2_162;u16 chn3_162;u16 chn4_165;u16 vol_10_163;u16 vol_20_163;u16 vol_30_163;Wnd Draw_Wnd;PWnd pDraw_Wnd;int warnning5=1,1,1,1,1;BOOLEAN IsEdit=0;pdc=CreateDC();pDraw_Wnd=&Draw_Wnd;strChar2Unicode(Draw_Wnd_Caption_16, Draw_Wnd_Caption_8);strChar2Unicode(Channel_Caption_16, Channel_Caption_8);strChar2Unicode(Value_Caption_16, Value_Caption_8);strChar2Unicode(chn_16, chn_8);strChar2Unicode(vol_16, vol_8);strChar2Unicode(chn0_16, chn0_8);strChar2Unicode(chn1_16, chn1_8);strChar2Unicode(chn2_16, chn2_8);strChar2Unicode(chn3_16, chn3_8);strChar2Unicode(chn4_16, chn4_8);strChar2Unicode(vol_10_16,vol_10_8);strChar2Unicode(vol_20_16,vol_20_8);strChar2Unicode(vol_30_16,vol_30_8);SetRect(&ChannelTextCtrl_Rect, 10,50,55,75);SetRect(&ValueTextCtrl_Rect, 10,125,55,150);SetRect(&Draw_Wnd_Rect, 74, 9, 301, 216);pChannelTextCtrl=CreateTextCtrl(ID_ChannelTextCtrl, &ChannelTextCtrl_Rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME, NULL,NULL);pValueTextCtrl=CreateTextCtrl(ID_ValueTextCtrl, &ValueTextCtrl_Rect, FONTSIZE_MIDDLE, CTRL_STYLE_FRAME, NULL,NULL);pDraw_Wnd=CreateWindow(Draw_Wnd_ID, &Draw_Wnd_Rect, FONTSIZE_SMALL,WND_STYLE_MODELESS, Draw_Wnd_Caption_16, NULL);ClearScreen();TextOut(pdc, 55, 10, vol_16, TRUE, FONTSIZE_SMALL);TextOut(pdc, 290, 215, chn_16, TRUE, FONTSIZE_SMALL);TextOut(pdc, 110, 215, chn0_16, TRUE, FONTSIZE_SMALL);TextOut(pdc, 150, 215, chn1_16, TRUE, FONTSIZE_SMALL);TextOut(pdc, 190, 215, chn2_16, TRUE, FONTSIZE_SMALL);TextOut(pdc, 230, 215, chn3_16, TRUE, FONTSIZE_SMALL);TextOut(pdc, 270, 215, chn4_16, TRUE, FONTSIZE_SMALL);TextOut(pdc, 60, (int)(205-1*200/3.3), vol_10_16, TRUE, FONTSIZE_SMALL);TextOut(pdc, 60, (int)(205-2*200/3.3), vol_20_16, TRUE, FONTSIZE_SMALL);TextOut(pdc, 60, (int)(205-3*200/3.3), vol_30_16, TRUE, FONTSIZE_SMALL);DrawTextCtrl(pChannelTextCtrl);DrawTextCtrl(pValueTextCtrl); a0=0;a1=0;a2=0;a3=0;a4=0; for(;) average= (result_AD0+ result_AD1+ result_AD2+ result_AD3)/4;TextOut(pdc, 10, 35, Channel_Caption_16, TRUE, FONTSIZE_SMALL);TextOut(pdc, 10, 110, Value_Caption_16, TRUE, FONTSIZE_SMALL);if(edit0=1)if(IsEdit=1)FillRect(pdc, 10, 35, 60, 45, GRAPH_MODE_NORMAL, COLOR_WHITE);IsEdit=0;elseIsEdit=1;if(edit1=1)if(IsEdit=1)FillRect(pdc, 10, 110, 60, 120, GRAPH_MODE_NORMAL, COLOR_WHITE);IsEdit=0;elseIsEdit=1;DrawWindow(pDraw_Wnd);MoveTo(pdc, 75, 15);LineTo(pdc, 80,10);LineTo(pdc, 85, 15);MoveTo(pdc,80 , 10);LineTo(pdc, 80, 210);LineTo(pdc, 300, 210);MoveTo(pdc, 295, 205);LineTo(pdc, 300, 210);LineTo(pdc, 295, 215);MoveTo(pdc, 80, (int)(210-1*200/3.3);LineTo(pdc, 300, (int)(210-1*200/3.3);MoveTo(pdc, 80, (int)(210-2*200/3.3);LineTo(pdc, 300, (int)(210-2*200/3.3);MoveTo(pdc, 80, (int)(210-3*200/3.3);LineTo(pdc, 300, (int)(210-3*200/3.3); if(result_AD1WarnningData1) if(a0=0)Wave();a0=1; if(result_AD2WarnningData2) if(a1=0)Wave();a1=1;if(result_AD0=WarnningData0)FillRect(pdc, 105, (int)(210-result_AD0*20/3.3), 120, 210,GRAPH_MODE_NORMAL, COLOR_BLACK);elseif(warnning0=1)FillRect(pdc, 105, (int)(210-result_AD0*20/3.3), 120, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);warnning0=0;elsewarnning0=1;FillRect(pdc, 105, (int)(210-WarnningData0*20/3.3), 120, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);if(result_AD1=WarnningData1)FillRect(pdc, 145, (int)(210-result_AD1*20/3.3), 160, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);else if(warnning1=1)FillRect(pdc, 145, (int)(210-result_AD1*20/3.3), 160, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);warnning1=0;elsewarnning1=1;FillRect(pdc, 145, (int)(210-WarnningData1*20/3.3), 160, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);if(result_AD2=WarnningData2)FillRect(pdc, 185, (int)(210-result_AD2*20/3.3), 200, 210,GRAPH_MODE_NORMAL, COLOR_BLACK);elseif(warnning2=1)FillRect(pdc, 185, (int)(210-result_AD2*20/3.3), 200, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);warnning2=0;elsewarnning2=1;FillRect(pdc, 185, (int)(210-WarnningData2*20/3.3), 200, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);if(result_AD3=WarnningData3)FillRect(pdc, 225, (int)(210-result_AD3*20/3.3), 240, 210,GRAPH_MODE_NORMAL, COLOR_BLACK);elseif(warnning3=1)FillRect(pdc, 225, (int)(210-result_AD3*20/3.3), 240, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);warnning3=0;elsewarnning3=1;FillRect(pdc, 225, (int)(210-WarnningData3*20/3.3), 240, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);if(average=WarnningData4)FillRect(pdc, 265, (int)(210-average*20/3.3), 280, 210,GRAPH_MODE_NORMAL, COLOR_BLACK);elseif(warnning5=1)FillRect(pdc, 265, (int)(210-average*20/3.3), 280, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);warnning5=0;elsewarnning5=1;FillRect(pdc, 265, (int)(210-WarnningData4*20/3.3), 280, 210, GRAPH_MODE_NORMAL,COLOR_BLACK);OSTimeDly(500);void AD0_Task(void * Id) /Main_Test_Taskfor(;)result_AD0=GetADresult(0)*33/1024;/Uart_Printf(result_AD0=%dn,result_AD0);OSTimeDly(100);void AD1_Task(void * Id) /Main_Test_Taskfor(;)result_AD1=GetADresult(1)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村新型合作经营体系建设协议
- 时间单位的换算说课课件
- 骆驼祥子人物分析:名著阅读与生活实践教案
- 一年级写景作文望雪250字(13篇)
- 人教版三年级下册期末考试数学试卷(含答案)2024-2025学年广东省汕头市潮南区
- 健康医疗信息服务平台建设合同
- 早教知识培训名称大全课件
- 写人作文大头男孩500字8篇
- 沧桑800字初三话题作文(15篇)
- 日记战胜困难500字13篇
- 2025年摄影测量竞赛题库及答案
- 2025年高压电工作业复审考试试题库与答案
- 应收款考核管理办法
- 中国现代国防教学课件
- 食堂工人培训课件
- 部编版三年级语文上册说课标说教材
- 医德医风课件培训宣传
- 2025届江苏省苏州地区学校英语八年级第二学期期末联考试题含答案
- 胸痹的中医治疗
- 人流术后的护理及健康宣教
- 财务岗位笔试题目及答案
评论
0/150
提交评论