已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京航空航天大学ARM9嵌入式系统实验报告实验一、ARM基础知识和开发环境一、实验目的1掌握ARM的串行口工作原理。2学习编程实现ARM的UART通讯。3掌握S3C2410寄存器配置方法。二、实验内容 1熟悉打开已有工程的步骤,掌握仿真调试的方法。 2建立一个新工程,熟练掌握编译器和链接器的设置方法。 3从串口输入字符串,将09数字在超级终端上连续显示,“Enter”键换行。 4将第三步得到的字符转换成BCD码,限制在01023,用于控制直流电机。三、预备知识 1了解EWARM集成开发环境的基本功能 2学习串口通讯的基本知识3熟悉S3C2410串口有关的寄存器四、实验设备及工具 12410s教学实验箱2S3C2410的JTAG仿真器3ARM EWARM5.3集成开发环境 4串口连接线五、实验原理及说明 1 异步串行IO 异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数据的各不同位可以分时使用同一传输通道,因此串行IO可以减少信号连线,最少用一对线即可进行。接收方对于同一根线上一连串的数字信号,首先要分割成位,再按位组成字符。为了恢复发送的信息,双方必须协调工作。在微型计算机中大量使用异步串行IO方式,双方使用各自的时钟信号,而且允许时钟频率有一定误差,因此实现较容易。但是由于每个字符都要独立确定起始和结束(即每个字符都要重新同步),字符和字符间还可能有长度不定的空闲时间,因此效率较低。 图1 异步串行I/O示意图2 RS-232C接口通信的两种基本连接方式这是美国电子工业协会推荐的一种标准(Electronic industries Association Recoil-mended Standard)。它在一种25针接插件(DB25)上定义了串行通信的有关信号。这个标准后来被世界各国所接受并使用到计算机的IO接口中。两种连接方式如图2:图2 RS-232C接口通信的两种基本连接方式3 信号电平规定1) EIA电平:双极性信号逻辑电平, 它是一套负逻辑定义 -3V到-25V之间的电平表示逻辑“1” +3V到+25V之间的电平表示逻辑“0”2) TTL电平:计算机内部(S3C2410)使用LVTTL电平3) 电平转换电路:常用专门的RS-232接口芯片,如SP3232、SP3220等,在LVTTL电平和EIA电平之间实现相互转换。4 异步串行口接口电路图3 异步串行口接口电路5 发送数据和接收数据1) 发送数据void Uart_SendByten(int Uartnum, U8 data) /往串口发送数据WrUTXH0(data); /往串口数据寄存器写数据 2) 接收数据 char Uart_Getchn(char* Revdata, int Uartnum, int timeout)/接收数据RdURXH0(); /读取串口数据寄存器数据 void Uart_SendByten(int Uartnum, U8 data if(Uartnum=0) while(!(rUTRSTAT0 & 0x4); /Wait until THR is empty.hudelay(10);WrUTXH0(data); else while(!(rUTRSTAT1 & 0x4); /Wait until THR is empty.hudelay(10);WrUTXH1(data); char Uart_Getchn(char* Revdata, int Uartnum, int timeout)if(Uartnum=0) if(rUTRSTAT0 & 0x1)=0x01) /Receive data read *Revdata=RdURXH0(); return TRUE; else return FALSE; elsewhile(!(rUTRSTAT1 & 0x1);/Receive data read*Revdata=RdURXH1();return TRUE; void init_MotorPort() rGPBCON=rGPBCON&0x3ffff0|0xa; /Dead Zone=24, PreScalero1=2;rTCFG0=(016)|2;/divider timer0=1/2;rTCFG1=0;rTCNTB0= MOTOR_CONT;rTCMPB0= MOTOR_MID;rTCON=0x2;/update mode for TCNTB0 and TCMPB0.rTCON=0x19;/timer0 = auto reload, start. Dead Zonevoid SetPWM(int value)rTCMPB0= MOTOR_MID+value; 6 寄存器1) 线路控制寄存器ULCONn2) 控制寄存器UCONn3) 状态寄存器UTRSTAT4) 发送寄存器UTXH和接收寄存器URXH六、实验方法1 以实验一为模板,完成实验的1和2。2 将接收串口数据的数组cl1改为cl256,用cli=0x0d 回车字符作为一帧结束的条件。3 将“Exp4 电机转动控制实验” inc目录下的MotorCtrl.H 和src目录下的MotorCtrl.C拷到该工程相应目录,将MotorCtrl.C 添加到工程中。4 在main函数里包含以下头文件 #include “./inc/MotorCtrl.h”5 在main函数里包含以下头文件 #include “inc/macro.h“,#define MOTOR_COUNT 12657。 6 在Main函数里执行init_MotorPort()。7 直流电机调试的函数是 SetPWM(setspeed -512)*MOTOR_COUNT/1024),setspeed是速度指令,取值范围01023。七、程序源代码/#include./ucos-ii/includes.h /* uC/OS interface */#include ./ucos-ii/add/osaddition.h/#include ./inc/drivers.h#include ./inc/MotorCtrl.h /*修改1: 包含头文件./inc/MotorCtrl.h*/#include ./inc/macro.h/*修改2: 包含头文件./inc/macro.h*/#include ./inc/sys/lib.h/#include ./src/gui/gui.h#define U8 unsigned char#include #include #define TRUE 1#define FALSE 0#define MOTOR_COUNT 12657 /*修改3: 定义MOTOR_COUNT 值*/#pragma import(_use_no_semihosting_swi) / ensure no functions that use semihosting #define rUTRSTAT0(*(volatile unsigned *)0x50000010)#define rUTRSTAT1(*(volatile unsigned *)0x50004010)#define WrUTXH0(ch)(*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)#define WrUTXH1(ch)(*(volatile unsigned char *)0x50004020)=(unsigned char)(ch)#define RdURXH0()(*(volatile unsigned char *)0x50000024)#define RdURXH1()(*(volatile unsigned char *)0x50004024)/void Uart_SendByten(int Uartnum, U8 data);void Uart_SendByten(int,U8);char Uart_Getchn(char* Revdata, int Uartnum, int timeout);void ARMTargetInit(void);void hudelay(int time);int main(void) /int ndev; char c1256; char err; char al1; int i,j; int setspeed=0;ARMTargetInit(); / do target (uHAL based ARM system) initialisation / init_MotorPort(); /*初始化*/while(1) Uart_SendByten(0,0xa);/换行 Uart_SendByten(0,0xd);/回车 for(i=0;i256;) err=Uart_Getchn(al,0,0);/从串口采集数据 if (err=TRUE) Uart_SendByten(0,al0);/显示采集的数据 c1i=al0-0x30; if(0xd=al0) al0=0; if(i4) setspeed=0; for(j=0;ji;j+) setspeed=setspeed*10+c1j; else setspeed=0; for(j=i-3;j1023) setspeed=1023; i+; SetPWM(setspeed -512)*MOTOR_COUNT/1024);void Uart_SendByten(int Uartnum, U8 data)/ok eric rong /int i;if(Uartnum=0) while(!(rUTRSTAT0 & 0x4); /Wait until THR is empty.hudelay(10);WrUTXH0(data); else while(!(rUTRSTAT1 & 0x4); /Wait until THR is empty.hudelay(10);WrUTXH1(data); char Uart_Getchn(char* Revdata, int Uartnum, int timeout)if(Uartnum=0)while(!(rUTRSTAT0 & 0x1); /Receive data read*Revdata=RdURXH0();return TRUE;elsewhile(!(rUTRSTAT1 & 0x1);/Receive data read*Revdata=RdURXH1();return TRUE;八、思考题1232串行通讯的数据格式是什么?答:从低位到高位的一帧数据格式为:起始位(Start)+数据位(Data)+奇偶校验位(Parity)+停止位(Stop),如图4所示:图4 232串行数据的通讯格式2串行通讯最少需要几根线,分别如何连接?答:至少需要三根线:串口的2脚(发送数据TXD)与另一串口的3脚(接收数据RXD)连接,同时两串口的5脚(信号地)连接在一起,即简单连接法,如下图5:图5 串行通讯连接方法3ARM的串行口有几个,相应的寄存器是什么? 答:S3C2410自带三个异步串行口控制器。涉及的寄存器有:1、涉及的UART通道管脚设置寄存器如设置rGPHCON将GPH2、GPH3引脚的功能设为TXD0、RXD0;2、波特率设置寄存器rUBRDIVn(n=02);3、线控制寄存器rULCONn,主要用来选择每帧数据位和停止位宽度,奇偶校验模式及是否使用红外模式;4、控制寄存器rUCONn,用于选择UART时钟源、设置中断方式、接受超时时能、接受错误状态中断使能等;5、FIFO设置寄存器rUFCONn与FIFO状态寄存器rUFSTATn;6、流量控制寄存器rUMCONn与流量状态寄存器rUMSTATn;7、发送/接受状态寄存器rUTRSTATn,用来表明数据是否已经发送完毕、是否已经接受到数据;8、错误状态寄存器rUERSTATn,用来表示各种错误是否发生如溢出错误、校验错误、帧错误等;9、发送缓冲数据寄存器rUTXHn与接受数据缓冲寄存器rURXHn。4用中断方式实现串口驱动。答:中断方式实现串口驱动的流程如下:开始设置rINTMSK打开串口接受中断串口数据到达,在相应IRQ中断服务程序中,接受串口数据至缓冲区RxbufferMAX_LEN,并设置全局变量IsReady为真值,然后清除并关闭串口接受中断数据处理并从串口发送数据响应结束,继续等待结束。实验二LCD 和电机等综合实验一、实验目的1学习直流电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。2编程实现ARM系统的输出用于控制直流电机的转动。3了解LCD基本概念与原理。 4理解LCD的驱动方式的基本原理和方法。 5熟悉用ARM内置的LCD控制器驱动LCD。二、实验内容 1通过一个电位器控制直流电机转动速度,并且用该电位器值使屏幕显示不同颜色。 2用三个电位器分别控制R、G、B,观察屏幕的变化。 3使用函数Uart_Printf(),将RGB的值打印到串口输出。三、预备知识 1用EWARM集成开发环境,编写和调试程序的基本过程。 2ARM应用程序的框架结构。 3LCD的图形显示方式。 4了解直流电机的基本原理。 四、实验设备及工具 硬件:ARM嵌入式开发平台、用于S3C2410的JTAG仿真器、PC机Pentium100以上。 软件:PC机操作系统Win2000或WinXP、EWARM集成开发环境、仿真器驱动程序、超级终端通讯程序 五、实验原理及说明 1S3C2410 LCD控制器逻辑框图如图1所示: 图1 S3C2410 LCD控制器逻辑框图2. ARM9 S3C2410和液晶屏接口电路如图2所示:图2 ARM9 S3C2410和液晶屏接口电路3TFT LCD 时序图3 TFT LCD时序4UPTECH-2410-S LCD图形显示方式UPTECH-2410-S的LCD显示模块由LCD控制器和16位色彩色LCD示器组成。其显示方式以直接操作显示缓冲区的内容进行,LCD控制器会通过DMA从显示缓冲区中获取数据,不需要CPU干预。本系统采用的LCD分辨率为640X480,工作在65536色彩色显示模式,在该模式下,显示缓冲区中的一个字节数据代表LCD上的一个点的颜色信息,因此,所需要的显示缓冲区大小为640X480X2字节。其中每个字节的彩色数据格式如图2所示:图2 每个字节的彩色数据格式5UPTECH-2410-S LCD控制器初始化初始化LCD控制寄存器,包括设置LCD分辨率,扫描频率,显示缓冲区等。初始化LCD端口,由于LCD控制端口与CPU的GPIO端口是复用的,因此必须设置相应寄存器为LCD驱动控制端口。六、实验方法1以实验四模板,将实验六 inc目录下的LCD320.H 和src目录下的LCD640.C拷到模板下的相应目录,将LCD640.C 添加到工程中。2在main函数里包含以下头文件 #include inc/lcd320.h“ 3在main函数里包含以下头文件 #include inc/macro.h“ 4声明引用的变量 extern U32 LCDBufferII2480640;5删除模板内Main函数中和步进电机相关的内容,简化Main函数6在Main函数里执行LCD_Init();7将AD采样的结果在驱动电机的同时,和jcolor建立起联系。8显示缓冲区填充LCDBufferII2kj=jcolor; 9调用LCDFresh()函数。七、程序源代码#include ./inc/drivers.h#include ./inc/lib.h#include #include #include #include ./inc/max504.h#include ./inc/MotorCtrl.h#include ./inc/EXIO.h#include ./inc/lcd320.h#include ./inc/macro.h#include ./uhal/isr.h#define MCLK (50700000)#define MOTOR_SEVER_FRE1000/20kHz#define MOTOR_CONT(MCLK/2/2/MOTOR_SEVER_FRE)#define MOTOR_MID(MOTOR_CONT/2)#define ADCCON_FLAG(0x115)#define ADCCON_ENABLE_START_BYREAD(0x01)#define rADCCON(*(volatile unsigned *)0x58000000)#define rADCDAT0(*(volatile unsigned *)0x5800000C)#define PRSCVL (496)#define ADCCON_ENABLE_START (0x1)#define STDBM (0x02)#define PRSCEN (0x114)#define rADCCON (*(volatile unsigned *)0x58000000)#define rADCDAT0 (*(volatile unsigned *)0x5800000C)#define rUTRSTAT0 (*(volatile unsigned *)0x50000010)/#define rUTRSTAT0 (*(volatile unsigned *)0x50000024) #define RdURXH0()(*(volatile unsigned char *)0x50000024)extern U32 LCDBufferII2480640;void ARMTargetInit(void);void init_ADdevice()/初始化rADCCON=(PRSCVL|ADCCON_ENABLE_START|STDBM|PRSCEN);int GetADresult(int channel) rADCCON=ADCCON_ENABLE_START_BYREAD|(channel2)2)2); for(i=0;i480;i+) for(j=0;j640;j+) LCDBufferII2ij=jcolor; /*像素点颜色赋值*/ LCD_Refresh(); /*刷屏*/ Uart_Printf(0,%d ,r); Uart_Printf(0,%d ,g); Uart_Printf(0,%d,b); Uart_Printf(0,%s,n); 八、思考题1液晶显示的基本原理是什么?答:LCD显示器是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的,液晶可以被用来当做控制光线是否通过的开关一个开关。每个液晶单元都对应着一个电极,对其通电,便可使用光线通过(也有刚好相反的,即不通电时光线通过,通电时光线不通过)。光源的提供方式有两种:透射式和反射式,例如:笔记本LCD为透射式,微控制器使用的LCD则为反射式。2总线方式驱动液晶模块和使用控制器进行驱动控制有什么异同?答:(1) 总线驱动方式 一般带有驱动模块的LCD显示屏使用这种驱动方式,由于LCD已经带有驱动硬件电路,因此模块给出的是总线接口,便于与单片机的总线进行接口。驱动模块具有八位数据总线,外加一些电源接口和控制信号。而且自带显示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。由于只有八条数据线,因此常常通过引脚信号来实现地址与数据线复用,以达到把相应数据送到相应显示缓存的目的。(2) 控制器扫描方式 S3C2410X中具有内置的LCD控制器,它具有将显示缓存(在系统存储器中)中的LCD图象数据传输到外部LCD驱动电路的逻辑功能。 S3C2410X中内置的LCD控制器可支持灰度LCD和彩色LCD。在灰度LCD上,使用基于时间的抖动算法(time-based dithering algorithm)和FRC (Frame Rate Control)方法,可以支持单色、4级灰度和16级灰度模式的灰度LCD。 在彩色LCD上,可以支持256级彩色,使用STN LCD可以支持4096级彩色。对于不同尺寸的LCD,具有不同数量的垂直和水平象素、数据接口的数据宽度、接口时间及刷新率,而LCD控制器可以进行编程控制相应的寄存器值,以适应不同的LCD显示板。都有显示缓冲供用户使用,但是使用控制器驱动方式,可通过只设置控制器的寄存器来间接控制LCD的各类引脚信号,降低了编程难度,使用更为便捷。 3LCD显示图形的基本思想是什么?答:UPTECH-3000的LCD显示模块由S3C2410的LCD控制器和256色彩色LCD显示器组成。直接操作显示缓冲区的内容进行显示,LCD控制器会通过DMA从显示缓冲区中获取数据,不需要CPU干预。本系统采用的LCD分辨率为320X240,工作在256色彩色显示模式,在该模式下,显示缓冲区中的一个字节数据代表LCD上的一个点的颜色信息,显示缓冲区大小为320X240X1字节。其中每个字节的彩色数据格式如图所示:实验三、基于实时操作系统mC/OS-II实验一、实验目的1了解uCOS-II内核的主要结构。2在内核移植了uCOS-II 的处理器上创建任务。二、实验内容 1运行实验十,在超级终端上观察四个任务的切换。2任务13,每个控制“红”、“绿”、“蓝”一种颜色的显示,适当增加OSTimeDly()的时间且优先级高的任务延时时间加长,以便看清三种颜色。3引入一个全局变量 BOOLEAN ac_key,解决完整刷屏问题。4任务4管理键盘和超级终端,当键盘有输入时在超级终端上显示相应的字符。三、预备知识1掌握在EWARM集成开发环境中编写和调试程序的基本过程。 2了解S3C2410处理器的结构。 3了解uCOS-II系统结构。四、实验设备及工具 硬件:ARM嵌入式开发平台、用于S3C2410的JTAG仿真器、PC机Pentium100以上。 软件:PC机操作系统Win2000或WinXP、EWARM集成开发环境、仿真器驱动程序、超级终端通讯程序。五、实验原理及说明1移植概念所谓移植,指的是一个操作系统可以在某个微处理器或者微控制器上运行。虽然uCOS-II的大部分源代码是用C语言写成的,仍需要用C语言和汇编语言完成一些与处理器相关的代码。比如:uCOS-II在读写处理器、寄存器时只能通过汇编语言来实现。因为uCOS-II在设计的时候就已经充分考虑了可移植性,所以,uCOS-II的移植还是比较容易的。 2移植mCOS-II时须满足的条件a) 处理器的C编译器能产生可重入代码; b) 在程序中可以打开或者关闭中断; c) 处理器支持中断,并且能产生定时中断(通常在10100Hz之间);d) 处理器能容纳一定量数据的硬件堆栈;e) 处理器有将栈指针和其他CPU寄存器内容保存到栈(或者内存)的指令,以及相应的出栈指令。3状态的切换多任务,uCOS-II支持多任务并行执行,使用OSTaskStkInt()创建新任务,同时调用本函数来初始化该任务的栈结构。任务的状态转换如图1:图1 任务的状态转换图4 mC/OS-II的软硬件体系结构5 移植工作的主要内容1) 设置OS_CPU.H中与处理器和编译器相关的代码;2) 用汇编语言编写四个与处理器相关的函数(OS_CPU.ASM);3) 用C语言编写十个操作系统相关的函数(OS_CPU_C.C)。六、实验方法1以实验十为模板,将实验六 inc目录下的LCD320.H 和src目录下的LCD640.C拷到 模板下的相应目录,将LCD640.C加入工程中。2包含以下头文件 #include “inc/lcd320.h”。3改LCD640.C 文件中包含头文件的路径, #include ./inc/drv/reg2410.h 4声明引用的变量 extern U32 LCDBufferII2LCDHEIGHTLCDWIDTH;七、程序源代码#include./ucos-ii/includes.h /* uC/OS interface */#include ./ucos-ii/add/osaddition.h#include ./inc/drivers.h#include ./inc/sys/lib.h#include ./src/gui/gui.h#include #include #include ./inc/lcd320.h/#include ./inc/drv/reg2410.hextern U32 LCDBufferII2LCDHEIGHTLCDWIDTH; /*申明引用的变量*/int i = 0;int j = 0;BOOLEAN ac_key = 0; /*定义全局变量ac_key,解决完整刷屏 */char err;char c11;void Uart_SendByten(int,U8);char Uart_Getchn(char* Revdata, int Uartnum, int timeout);void hudelay(int time);#define rUTRSTAT0(*(volatile unsigned *)0x50000010)#define rUTRSTAT1(*(volatile unsigned *)0x50004010)#define WrUTXH0(ch)(*(volatile unsigned char *)0x50000020)=(unsigned char)(ch)#define WrUTXH1(ch)(*(volatile unsigned char *)0x50004020)=(unsigned char)(ch)#define RdURXH0()(*(volatile unsigned char *)0x50000024)#define RdURXH1()(*(volatile unsigned char *)0x50004024)/#pragma import(_use_no_semihosting_swi) / ensure no functions that use semihosting OS_EVENT *MboxSem;/*任务定义*/*OS_STK SYS_Task_StackSTACKSIZE= 0, ; /system task刷新任务堆栈#define SYS_Task_Prio1 void SYS_Task(void *Id);*/OS_STK task1_StackSTACKSIZE=0, ; /Main_Test_Task堆栈void Task1(void *Id); /Main_Test_Task#define Task1_Prio 12OS_STK task2_StackSTACKSIZE=0, ; /test_Test_Task堆栈void Task2(void *Id); /test_Test_Task#define Task2_Prio 15OS_STK task3_StackSTACKSIZE=0, ; /test_Test_Task堆栈void Task3(void *Id); /test_Test_Task#define Task3_Prio 17OS_STK task4_StackSTACKSIZE=0, ; /test_Test_Task堆栈void Task4(void *Id); /test_Test_Task#define Task4_Prio 10/*已经定义的OS任务*#define SYS_Task_Prio1#define Touch_Screen_Task_Prio9#define Main_Task_Prio 12#define Key_Scan_Task_Prio 58#define Lcd_Fresh_prio 59#define Led_Flash_Prio 60*/*事件定义*/ Main function. /int main(void)ARMTargetInit(); / do target (uHAL based ARM system) initialisation /OSInit(); / needed by uC/OS-II / LCD_Init();/OSInitUart();/initOSFile();/#if USE_MINIGUI=0/initOSMessage();/initOSDC();/LoadFont();/#endif/loadsystemParam();/ create the tasks in uC/OS and assign increasing / priorities to them so that Task3 at the end of / the pipeline has the highest priority. /LCD_printf(Create task on uCOS-II.n);/OSTaskCreate(SYS_Task, (void *)0, (OS_STK *)&SYS_Task_StackSTACKSIZE-1, SYS_Task_Prio);OSTaskCreate(Task1, (void *)0, (OS_STK *)&task1_StackSTACKSIZE-1, Task1_Prio);OSTaskCreate(Task2, (void *)0, (OS_STK *)&task2_StackSTACKSIZE-1, Task2_Prio);OSTaskCreate(Task3, (void *)0, (OS_STK *)&task3_StackSTACKSIZE-1, Task3_Prio); OSTaskCreate(Task4, (void *)0, (OS_STK *)&task4_StackSTACKSIZE-1, Task4_Prio); OSAddTask_Init(0); BSPprintf(0,Starting uCOS-II.n);/LCD_printf(Starting uCOS-II.n);/LCD_printf(Entering graph mode.n);/LCD_ChangeMode(DspGraMode);OSStart(); / start the OS / never reached /return 0;/main/void Task1(void *Id) for(;) if(ac_key = 1) 全局变量判断 for (i=0;i480;i+) ac_key=0; for (j=0;j640;j+) LCDBufferII2ij=0x000000f8; LCD_Refresh(); ac_key=1; OSTimeDly(1000); void Task2(void *Id) for(;) if(ac_key = 1) for (i=0;i480;i+) ac_key=0; for (j=0;j640;j+) LCDBufferII2ij=0x0000fc00; LCD_Refresh() ; ac_key=1; OSTimeDly(1000); void Task3(void *Id) for(;) if(ac_key = 2) for (i=0;i480;i+) ac_key=0; for (j=0;j640;j+) LCDBufferII2ij=0x00f80000; LCD_Refresh() ; ac_key = 1; OSTimeDly(1000); void Task4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年放射科医生放射学影像诊断技术考核试卷及答案解析
- 2025年内蒙古自治区专业技术人员继续教育公需科目试题及答案
- 2025反假币考试题库及答案
- 2025年机械员考试题库及参考答案新
- 变压器火灾事故应急演练脚本
- 2025年火警故障测试题及答案
- 2025年焊工作业人员职业技能考试笔试试题含答案
- 2025年事业单位职测招考笔试试题含答案
- 2025年中级银行从业资格之中级银行业法律法规与综合能力通关提分题库及答案
- 2025建筑电工考试真题及答案
- 业财融合视角下财务分析体系的创新与应用
- 五花肉课件教学课件
- 2025中数联物流科技(上海)有限公司招聘考试参考试题及答案解析
- 【MOOC】金融风险管理-中央财经大学 中国大学慕课MOOC答案
- MOOC 创新与创业管理-南京师范大学 中国大学慕课答案
- 锻炼口才的100篇文章
- 库房温湿度记录表正式版
- 汽车发动机电控系统检修全套课件
- 高性能计算机集群平台实施与售后方案
- 西北师范大学大学大学生艺术团建设规划
- 刘玲玲 练习习题答案合订版
评论
0/150
提交评论