高瑶ATMEGA直流电机测速系统设计方案.docx_第1页
高瑶ATMEGA直流电机测速系统设计方案.docx_第2页
高瑶ATMEGA直流电机测速系统设计方案.docx_第3页
高瑶ATMEGA直流电机测速系统设计方案.docx_第4页
高瑶ATMEGA直流电机测速系统设计方案.docx_第5页
免费预览已结束,剩余27页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南通纺织职业技术学院毕业论文设计基于 ATMEGA8 直流电机测速系统设计高瑶班级: 09 电子信息专业:电子信息工程技术教 学 系:机电系指导老师: 邱宏完成时间 2018 年 9 月至 2018 年 12 月目录2.31.42.43.4.51.52.561.62.7394.1113113214. .211.212.2224261/30基于 ATMEGA8的直流电机调速系统的设计摘要 : 文章介绍了一种直流电机测速系统的设计过程,首先明确设计任务、提出了电路设计的总体方案,接着介绍硬件电路主要功能模块的作用、电路结构原理、及关键元件的选型与参数;然后是系统的软件设计,分析了软件所要实现的功能

2、、并画出软件的方案流程图,给出了几个软件功能模块的子程序;最后是系统的调试部分,包括硬件软件调试的一般过程,并且结合本设计的具体,对开发过程中出现的一些问题现象及调试解决的过程进行了阐述。关键词 : 直流电机测速ATMEGA8MAX72192/30一 引言1. 直流电机的应用与特点直流伺服电机常常用于实现精密调速和位置控制随动系统中,在工业、国防和民用等领域内到广泛应用,特别是火炮稳定系统、舰载平台、雷达天线、机器人控制等场合。直流电机由于具有速度控制容易 , 启动、制动性能良好 , 平滑调速范围宽等特点 , 在冶金、机械制造、轻工等工业部门中得到广泛应用。早期直流电动机的控制均以模拟电路为基

3、础,控制系统的硬件部分非常复杂, 功能单一 , 而且系统非常不灵活、调试困难,阻碍了直流电动机控制技术的发展和应用范围的推广。随着单片机技术的日新月异, 使许多控制功能及算法可以采用软件技术来完成 , 不但为直流电动机的控制提供了更大的灵活性 , 而且使系统能达到更高的性能 , 从而大大降低了系统成本 , 有效地提高了工作效率。无刷直流电动机具有控制简单、动态响应好、可靠性高等优点 ,作为伺服电机有很好的应用和研究价值。伺服电机为实现位置定位要求能频繁地启动和制动 ,并且有很快的动态响应。2. 文章的选题意义本文的课题意义在于:1、本文设计的测速系统中采用现代流行的智能化元件,相对于传统的模拟

4、电路控制直流伺服电机,不仅电路结构更加简单,而且可以非常方便地实现功能的升级。文章中的直流伺服电机的测速系统,完全实现智能,传感器采集信号送与单片机处理显示,无需人工操作,同时对驱动显示的实时监控,信号的采集处理上,以单片机代替了模拟电路,避免了实现控制逻辑时需要的许多电子元件 ,而采用单片机后 ,绝大多数控制逻辑可通过软件实现。例如:可以实现较复杂的控制。单片机具有更强的逻辑功能,运算速度快、精度高、存储容量大 ,因此有能力实现复杂的控制。提高控制的灵活性和适应性。单片机的控制方式是由软件完成的,如果需要修改控制规律,一般不必改变系统的硬件电3/30路 , 只须修改程序即可。在系统调试和升级

5、时 , 可以不断尝试 , 选择最优参数。无零点漂移 , 控制精度高。数值控制不会出现模拟电路中经常遇到的零点漂移问题 , 无论被控制量是大还是小 , 都可保证足够的控制精度。因此,本文的设计为闭环的控制应用场合也具有重要的借鉴参考意义。2、本文采用模块化的设计理念,顺应产品设计的流行趋势,使得产品无论在设计分工、生产、调试售后服务上,都提供了极大的便利,同时采用了先进的控制功能模块,对这些模块的应用提供了一种成功的案例。例如,对于主控芯片采用的是 ATMEGA8 单片机,它是目前性价比较高的单片机。显示管理芯片采用的是 PS7219, PS7219 是一种高性价比的多位 LED 显示管理芯片,

6、其内部具有 158RAM 功能控制寄存器,可方便寻址、对每位数字可单独控制、刷新。显示亮度可数字控制,每位都具有闪烁使能控制。3.文章的主要内容本次设计的是一个直流伺服电机的测速系统,第一部分介绍了硬件电路的设计:首先明确了设计任务,提出了电路总体结构方案,接着分别叙述了硬件主要功能模块在本设计中的作用、电路结构原理、及关键元件的选型与参数;第二部分是系统的软件设计,首先分析了软件所要实现的功能、并画出软件的方案流程图,然后给出了几个软件功能模块的子程序,由于涉及到知识产权的保护,未能给出完整的程序清单。第三部分是系统的调试部分,分别介绍了硬件软件调试的一般过程,并且结合本设计的具体内容,对开

7、发过程中出现的一些问题现象及调试解决的过程进行了阐述。4/30二 任务分析与方案确定1. 设计目标任务本文设计的直流伺服测速系统要具有如下的功能:1 转速的范围在 0-6000 转/分进行测速。2 实时显示转速的数值,误差小于5%。2. 设计的总体方案采用模块化设计的理念,在硬件设计方面,电源部分采用直流稳压电源,220V 交流电经过,变压,整流,滤波后输出稳定的5V 直流电对单片机进行供电。显示部分需要4 位数据,采用LED 数码管,可靠稳定,对数码管的驱动采用专用芯片 PS7219,芯片与单片机连接仅需要 3 根线,芯片与数码管之间采用动态扫描,单片机的选择采用 atmega8,内部自带

8、ROM , RAM ,无需扩展,而且可在线下载,方便了软件的调试,提高效率。在软件设计方面,如果采用1 秒钟刷新的方案,则由于脉冲数量足够多,精度满足,但是显示的实时性不够;采用0.2 秒刷新一次的方法,实时性满足,但是由于脉冲数量太少,例如,由于每转传感器发出的脉冲是18 次,因此在 3000 转/分时,在 0.2 秒的时间内,精度是3000/180 转 /脉冲,如果在0.4 秒的时间内,精度是3000/360 转/脉,在 1 秒内精度是3000/900 转/脉,因此采用分级修正的方法来满足显示的精度与显示实时性的要求,即0.2 秒刷新一次数据,如果每相邻的脉冲数相同,则修正一次显示的数据,

9、如果转速稳定,速度的显示可以修正到 4 转/分的精度,满足要求。5/30系统结构图如图1 连接一个直流稳压电源向单片机提供0-5V 的电压信号,传感器采集电机信号送到单片机处理计算。单片机把传感器送来的信号处理后通过驱动电路送到显示,通过LED 显示出来。电源单片机传感器电机显示驱显示动图1 系统总体结构三 硬件电路设计1、电源电路电路结构如图 3所示,此电路可把市用220V电源变压,整流变为稳定的5V电压。为单片机和驱动提供稳定的电源。当 220V电压过来后先经过电容进行滤波,然后经过共模扼流圈到达变压器,但是 220V的电压并不是稳定的电压,一般在 180V-220V之间波动,由于稳压器稳

10、压范围在 6.5V-24V 之间,所以经过推算出变压器的变压倍数需要 11 倍,但是为了根精确我选用 22倍的变压器。因此变压过后的电压在 8.1V-11.4V 之间,经过电桥后电压变为原先的 1.2 倍后为 9.7V-13.7V ,此时在稳压器的稳压范围之内,通过稳压器变为5V的电压。一般变压器稳压倍数不要选太小这样变压过来的电压值会比较大,比较大的电压经过稳压器稳压,这样稳压器的消耗功率会增大,同时发热量也比较大,会造成不必要的消耗,而且对稳压器也有影响,减少寿命。因此要选用适中的电压范围。6/301234R1VR15vT1Vin Vout120.1uF20/2wGNDL1 t?JP1D1

11、C1C3C42DC1+C2w101VA0.1uFC5C6C8-C330uFC70.1uF0.1uF0.1uFD30.1FVA470uFC234L2t?图 2 电源电路(3 主要元件选型及参数这是一个输出正5V 直流电压的稳压电源电路。220V 通过电容滤波后,经过共模扼流圈再次滤过高频电压后通过变压器变为 10V 左右的电压。电容 C5 起到一个中转作用,把变压后的电能储存起来,防止不稳定的电压影响稳压器。采用集成稳压器 7805 , C7 、C8 分别为输入端和输出端滤波电容, R1 为负载电阻。当输出电较大时, 7805 应配上散热器。D3 是输出保护二极管,一旦输出电压低于稳压值时, D

12、3 导通,将输出电流旁路,保护 7805 稳压器输出级不被损坏。L1,L2 起到稳压作用,阻止频率较高的不稳定电压通过,也可以用电感替代,但是 磁珠有很高的电阻率和磁导率,等效于电阻和电感串联,同时磁珠的电阻值和电感值不会随频率变化,因此优先用磁珠。2、单片机电路1)单片机电路作用传感器把电机转速以脉冲形式反馈给单片机电路,单片机根据所接收到的脉冲信号将电机转速换算出来发送到显示电路。 主要元件选型及参数ATmega8是基于增强的 AVR RISC结构的低功耗 8位CMOS微控制器。由于其先进的指令集以及单时钟周期指令执行时间,ATmega8的数据吞吐率高1MIPS/MHz,从而可以缓减系统在

13、功耗和处理速度之间的矛盾。主要引脚作用:(11 引脚连接的是复位电路,电源上电时,C9 充电,在10K 电阻上出现电压,使得单片机复位;几个毫秒后,C9 充满, 10K 电阻上电流降为0,电压也为 0,使得单片机进入工作状态。工作期间,按下S1,C9 放电。 S1 松手,C9 又充电,在 10K 电阻上出现电压,使得单片机复位。几个毫秒后,单片机进入工作状态。(211引脚为传感器输入引脚,接收传感器送来的脉冲信号。(39、 10 引脚接的是晶振电路。(413、14、15 引脚连接显示电路,为7219 发送处理后的显示数据。8/303、显示电路1)显示电路的作用。本系统设计中需要四位数码管显示,

14、因此一般采用动态显示的方法,但动态扫描占用的端口多,且编程复杂,所以本文显示电路采用专用PS7219串行显示管理芯片,该芯片本身只需3根线就可与单片机实现接口,其接口采用流行的同步串行外设接口 SPI),可与任何一种单片机方便接口,PS7219接收单片机所要显示的数据并将其显示在LED 显示器上 , 并动态地扫描管理显示。硬件连接简便,软件编程容易。尤其用在单片机担负繁忙数据处理任务的系统中,节省单片机用于显示扫描的时间,更显出其优越性。2)电路结构电路结构如图 4所示,单片机将要显示的数据以串口的形式按指令格式发送到 PS7219数据控制寄存器中, PS7219将每位数据对应的共阴极断码以及

15、每一位的位控制端在内部自带时钟的触发下动态逐位的输出,实现四位数据的依次动态扫描。图 4 显示电路3)元件的选择及主要参数9/30PS7219 是一种高性价比的多位LED 显示管理芯片,广泛地应用于智能仪表当中,其接口采用流行的同步串行外设接口SPI),可与任何一种单片机方便接口,并可同时驱动8 位 LED。其内部具有15 8RAM功能控制寄存器,可方便寻址、对每位数字可单独控制、刷新。显示亮度可数字控制,每位都具有闪烁使能控制。内部自带时钟电路,无需任何外部元件便可多路复用自动扫描。 N 个 PS7219 级联,可实现N8 位 LED 的显示。适于各种智能仪表的显示。 PS7219 具有以下

16、主要特点:表 1 7219 引脚介绍18RST复位引脚12LOAD装载数据输入,当 LOAD为高电平,串行输入数据的最后 16 位被锁定1DIN串行输入,在 CLK 的下降沿,数据被加载到内部16 位移位寄存器中13CLK时钟输入,最高频率为 500,在 CLK 的下降沿,数据被移入到内部移位寄存器中。5-8,3,10,11BIG1-BIG88 位数字驱动线,它从显示器吸入电流13CON显示控制端,低电平选通,高电平显示无效14-17,20-23A-G,DP七段驱动器和小数点线,它供给显示器源电流24DOUT串行数据输出,输入到 DIN 的数据在 16.5个时钟周期后在 DOUT端有效19V+

17、电源电压 , 工作电压为 5V9GND地主要引脚作用:1. SEGA-SEGG为断码输出,分别接在四位数码管上,从单片机过来的数据经过驱动加载在数码管上。2. BIG1-BIG4 为位码输出,分别接在数码管位码引脚上,通过单片机控制逐个点亮。3. LOAD,DIN,CLK 连接在单片机上,单片机处理的数据输入过来, 7219接收并10/30保存,然后送与数码管动态显示。单片机每0.2秒发送一次数据,当数据与上次相同时,单片机不动作;不同时,新数据刷新老数据。4. V+ 为5V 电源供电, ISET为复位电路, GND 接地。4、整体电路11/30A+5VR1R1L2Vout Vin21GND2

18、0/2wC+C7AVD3C8470uFC5C-0.1uFC6AVT10.1uF JP1Q1DC1C122w100.1uF0.1uF1C4C30.1uFC2330uF0.1FL143+5R6B7显示信号线C1310K0.1uF11U1B7CC42314D2C(ICP)PB0(ADC0)PC015E1V(OC1A)PB12413U2F10A(ADC1)PC1(AIN1)PD7C1011917DINV+G5(MOSI/OC2)25(ADC2)PC2(MISO)PB418212LOADISET 18DP 3+526(SCK)PB51922pF13CLK92DIG0SEG A14(ADC3)PC3(XT

19、AL1/TOSC1)PB6111610DIG1SEG B(XTAL2/TOSC2)PB8Y1C11620DIG2SEG C1723DIG3SEG D32122pFDIG4SEG E1015DIG5SEG F27517S1(ADC4/SDA)PC4DIG6SEG G28(RXD)PD0DIG7C916(SS/OC1B)PB2(TXD)PD1324DOUT SEG DP 22R310uF(INT0)PD24159(RESET)PC6(INT1)PD3GND1K64GND22(XCK/T0)PD4CGND(T1)PD51112MAX7219ERGD(AIN0)PD628R2(ADC5/SCL)PC5

20、NG10K824+5v3.9K10KR5R4DC_spd1aVCCNC6bab1c8df gb2eb39f edcg dpb4 12dpU3C120.1uFD图 5 电路原理图12/301234图 6 PCB 板 PCB 排版时的注意事项:1、元器件的封装选择:元器件的封装选择要依据元器件的功能而选用,功能不同封装也不同,比如,电容 C5,C6,电容 C5 是有极性的电解电容,容量可能要大一点,所以封装就不能用预设的封装而要自己绘制,同时C5 的元器件是圆柱体,因此封装一定要和事物相一致,这样才能为以后元器件的焊接带来方便,另外一定要注意有极性电容的正负极。2、元器件位置的摆放:13/30元器

21、件位置的放置非常重要,位置的摆放会影响电路功能的好坏,不同的摆放电路的功能效果就会不一样。一般数字电路和模拟电路要分开摆放,模拟电路的敏感度强,比较容易受到干扰,同时数字电路的频率较高,干扰性较大,所以最好分开摆放。有些元器件属于大功率元器件,耗能、发热都比较大,因此其周围的元器件不能摆放太密集,特别是电解电容受热会影响其功能,最好与大功率元件保持一定的距离。大功率元器件一般摆放在板子边缘有利于散热。3、布线:电源、 地线的考虑不周到而引起的干扰,会使产品的性能下降,有时甚至影响到产品的成功率,所以对电、 地线的布线要认真对待,一般数字电路和模拟电路的地线要分别接地,同时地线、电源线要适当的加

22、粗。数字电路的频率高,对信号线来说,高频的信号线尽可能远离敏感的模拟电路器件,宁可绕远线也要避免干扰。低频信号线采用一点接地而高频信号线最好多点接地。三 软件设计1. 软件设计方案流程图1、主程序设计方案流程图主程序开始参数初始化数码显示自检开中断等待中断图 7 主程序设计方案流程图14/30主程序设计方案流程图如图7 所示,程序开始后,先进行参数的初始化:堆栈 SP 初始化、功能寄存器初始化、参数初始化。然后进行数码显示自检,自检完成后中断开启,等待中断。当累计计时到200ms 时,读取脉冲计数并清零,然后与前几次相同的脉冲数进行比较,根据相同的次数n 分别计算出当前的速度值,然后刷新显示缓

23、冲,并将显示标志置位,为显示输出做准备,再中断返回。若不到200ms,则 2ms 查看一次显示标志是否置位,若置位则发送一位显示数据,直到显示缓冲数据发送完毕,清零显示标志并退出,否则直接退出。2、功能模块子程序#include #include #include #include #include /*端口定义 */#define DIN0/PB0,PIN14#define CLK1/PB1,PIN15#defineL_DINPORTB &= (1 #defineH_DINPORTB |= (1#defineH_CLKPORTB |= (1#defineL_CLKPORTB &= (1#de

24、fineH_LOADPORTD |= (1/PD7,PIN13#defineL_LOADPORTD &= (1 #defineSTEP_DIR_LPORTB |= (1#defineSTEP_DIR_RPORTB &= (1 /PIN16,POS-2/默认,进位#defineSTEP_P_HPORTC |= (1/PD2,PIN4#defineSTEP_P_LPORTC &= (1 #define UP_KEY0/PC0,PIN23,s1#define DWN_KEY1/PC1,PIN24,s2#define SET_RUN2/PC2,PIN25,s3#define PAUSE3/PC3,PI

25、N26,s4#define L_limit5/PC5,PIN17,POS-1,jinxianwei#define R_limit6/PD6,PIN18,POS-3,tuixianwei15/30#define round_p10/3/=60/18/每圈产生18 个脉冲/*变量定义开始初始化设置启动 200ms定时计数对单位脉冲计数根据公式计算速度初值重设返回图 8脉冲采集子程序流程图*/unsigned char k。unsigned char send_address。 / 寄存器地址unsigned char send_date。/ 发送的数据uint16_tdc_m_p5=0,0,0,0

26、,0。 / 直流电机脉冲uint8_tdc_m_dspbuf4=1,2,3,4。uint8_tstep_dspbuf4=5,6,6,8。uint16_tstep_v_value101=0,12,13,13,13,13,14,14,14,15,15,15,16,16,16,17,17,18,18,19,19,16/3020,21,21,22,22,23,24,24,25,25, 26,26,27,28,29,29,30,31,32,33,/16034,35,37,38,39,41,43,44,46,48, 51,53,56,59,63,66,71,76,82,88,97,106,118,133,

27、136,140,144,148,152,156,161,166,172,177,183,190,197,205,213,222,231,242,254,266,281,296,313,333,355,380,410,444,485,533, 592,666,761,889,1066, 1333。uint8_tinttime0=0,inttime2=0。 /200ms的定时计数uint16_tstep_ctl=0 。 /25ms为单位的控制脉冲计数uint8_twork_p_time=0。 / 脉冲变化次数 0uint8_twork_p_flag=0。 / 发出一个脉冲的标志uint8_tupk

28、eyflag=0,keyflag=0 。 / 连续按键的时间清零uint8_tdwnkeypress=0,upkeypress=1,setflag=0。uint8_toldsetflag=1。uint8_tlightlednum3=0。uint8_tlightlednum2=0。uint8_tlightlednum0=0,step_dspflag=0,dc_m_dspflag=0。uint8_tlightlednum1=0,runflag=0,fast_dir=0。uint16_tdc_m_sum=0,dc_m_sp=0,dc_m_sp_old=0 。uint8_toldpauseflag=1

29、,pauseflag=0x55,flashtime=0。uint8_twdtflag=0xaa。/*函数定义*/void model(void。uint8_t readportstate(uint8_t portnumuint8_t pcount=0,fuzzystate=1,i=0。while (fuzzystatepcount=0 。fuzzystate=0。for(i=0。 i/直到 3 次读取的数据完全相同,否则继续读取if(_BV(portnum & PINC pcount+。if(pcount return 0。else if (pcount=8 return 1。else fuz

30、zystate=1。void system_init(voidDDRC=0x10。17/30PORTC=0xff。DDRB=0xff。PORTB=0xff。DDRD=0xDF。PORTD=0xff。TCCR0=0x05。 /fosc*1/1024normal modelTIMSK=(1|(0 。TCCR1B=0。TCCR1A=0 。TCCR1B=(1|(1|(1。 /外部脉冲上升沿触发计数TCNT1=0x00。void displayfloatnum(uint16_t floatnum/获取要显示的4 位数据的数值lightlednum0=(uint8_t(floatnum%10。lightl

31、ednum1=(uint8_t(floatnum/10%10。lightlednum3=(uint8_t(floatnum/1000。lightlednum2=(uint8_t (floatnum/100%10。/call this routine to initialize all peripherals/*18/30显示发送定义发送地址变量model-address定义发送数据model-data加载线清零延时发送 8位地址完?NNodel-adress第 8位是 1?Y数据线 H-DIN 置 1时钟线 HCLK 产生下降沿发送地址右移一位发送 8位地址完?N发送数据 model-data

32、第 8位是 1?Y数据线 H-DIN 置 1时钟线 HCLK 产生下降沿发送地址右移一位结束YN数据线 L-DIN 清 0时钟 HCLK 产生下降沿YN数据线 L-DIN 清 0时钟 HCLK 产生下降沿19/30图 9显示子程序流程图*/void Display_initail(voidunsigned char i。L_CLK。L_LOAD。send_address=0x0F 。send_date=0x00 。 / 显示检测处于正常状态model( 。send_address=0x0C 。send_date=0x01 。 / 采用工作模式model( 。send_address=0x0A

33、。send_date=0x0F 。 / 初始状态显示最亮model( 。send_address=0x0B 。send_date=0x04 。 / 显示扫描7 个数码管model( 。send_address=0x09 。send_date=0xFF 。 / 采用 BCD译码模式model( 。send_address=0x01 。send_date=0x88 。 / 前四位显示8. ,后三个数码管全亮model( 。for(i=0。 isend_date=0x88。send_address+。model(。/*20/3025ms定时复位看门狗定时初值重装N中断次数 8?Y读取 T1 脉冲数计

34、算最近 5次脉冲数之和换算成转速值转速限幅转速发生改变?N计算转速每位 BCD 码Y清除显示标志刷新显示缓冲刷新前 4次脉冲数量记录当前转速返回显示数据发送图 10转速 25ms中断计量模块*/void model(voidunsigned charmodel_address=send_address。21/30unsigned charmodel_date=send_date。unsigned char i。L_LOAD。for(i=0。 iasm(nop 。asm(nop 。for(i=0。 iif(model_address&0x80=0x80H_DIN。H_DIN 。asm(nop。

35、asm(nop 。H_CLK。H_CLK 。asm(nop。 asm(nop 。L_CLK 。L_CLK。asm(nop。 asm(nop 。elseL_DIN。L_DIN。asm(nop。 asm(nop 。H_CLK。H_CLK 。asm(nop。 asm(nop 。L_CLK 。L_CLK。asm(nop。 asm(nop 。model_address=model_address1。for(i=0。 iif(model_date&0x80=0x80H_DIN。H_DIN 。asm(nop。 asm(nop 。H_CLK。H_CLK 。asm(nop。 asm(nop 。22/30L_CL

36、K 。L_CLK。asm(nop。 asm(nop 。elseL_DIN。L_DIN。asm(nop。 asm(nop 。H_CLK。H_CLK 。asm(nop。 asm(nop 。L_CLK 。L_CLK。asm(nop。 asm(nop 。model_date=model_date1。H_LOAD。for(i=0。iasm(nop 。L_LOAD。SIG_OVERFLOW0(wdtflag=0xaa。TCNT0=77。/256-180。 /25ms unitinttime0+。inttime2+。step_ctl+。flashtime+。if(inttime0=8/200msdc_m_p0=TCNT1。TCNT1=0。dc_m_sum=0。dc_m_sum+=dc_m_p0。dc_m_sum+=dc_m_p1。dc_m_sum+=dc_m_p2。dc_m_sum+=dc_m_p3。dc_m_sum+=dc_m_p4。dc_m_sp=dc_m_sum*round_p。/ 最高转速 3600 转, 16 位的数据决定 if(dc_m_sp9900 dc_m_sp=9900 。 if(dc_m_sp=dc_m_sp_o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论