版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、智能灌溉系统的研究与设计 毕业设计(论文)题 目 智能灌溉系统的研究与设计 教学点 专 业 年 级 姓 名 指导教师 定稿日期: 2011 年 6月 1 日 摘要本系统系统通过选择合适的传感器将对土壤中含水量以及空气湿度等重要物理量进行采集,通过信号及采集部分将其转化为数字信号,交给单片机系统进行处理,通过智能控制部分,在需要时驱动相关外设,进行自动精确定位地灌溉。具体流程图如下: 工作过程流程图符合湿度要求,重置定时器定时(10分钟),单片机待机不符合要求30s后响应中断驱动湿度传感器电路,采集数据,看是否符合湿度要求,并输出此时湿度单片机重置定时器计数后待机,使定时器30秒后发出中断信号根
2、据分析结果,调用电机运转子程序,同时控制电机与舵机分别旋转、摆动,并打开节流阀,驱动水泵实现精确定位,完成浇灌调用 土壤湿度分析子程序(即与标准湿度相比较),计算出土壤需要浇灌的部分,并计算出干湿度以决定浇灌用水量(由喷灌时间决定)利用单片机内定时器计数器,每隔10分钟(可调)定时向单片机发出中断信号单片机处于待机状态,等待中断信号单片机相应中断,驱动湿度传感器电路,使湿度传感器工作,采集数据(四个)并将其传至单片机,由单片机驱动液晶显示器输出土地情况关键字: 智能控制 精确定位 密封 湿度传感器 差动放大 顺序通电 液晶显示 机械设计部分 整体的机构形式如下所述: 水由出水口接入,经过水泵增
3、压后,经过导水软管,最后从管的另一端喷射出来。机械臂主要由导水软管,套筒,舵机,步进电机和与电机配合的传动装置组成。套筒下端固结有加工上锥齿的圆环,电机通过锥齿轮传动,带动套筒转动。舵机固定在套筒上,当套筒旋转时,舵机也随套筒旋转。导水软管穿过套筒与固定在套筒上端的舵机相固结,当舵机臂摆动时导水软管喷头处完成竖直方向的调整,以使喷出的水能够调整远近。而套筒转动则实现了喷水方向的调整。这样,通过水平旋转及竖直摆动,实现了喷灌的精确定位。考虑到水对电机、齿轮传动部分的腐蚀影响,电机及其与套筒的传动部分通过密封箱密封,导线引出,连接到控制电路部分及电源部分,以实现对机械系统的电力输入及控制。机械臂通
4、过套筒下端深埋入土壤进行固定。这种方案是我们经过多次调整最后确定出来的。下图为我们用机械仿真软件pro/engineer制作的图形(具体见附图)电机控制套筒水平转动套筒密封箱舵机与导水软管连接导水软管 我们的创新体现在我们的设计过程当中。在喷口的设计中,由于市场上所售的喷头多利用水压将水达到某个固定位置,因此不能实现喷灌位置的可调性要求。因此喷管管口需要重新设计。在喷头处,我们曾试验过多个方案。其中一个就是拟定用钢管作导水管,将水直接引到喷头,而喷头处设计成喷口可以转动的形式,通过增加一个电机并通过细杆与喷头处连实现竖直方向的转动,水平方向的转动还是靠另一个电动机带动套筒来实现(具体见附pro
5、e仿真图)。但是这种设计有两个问题我们没能解决。第一个问题就是密封的问题,喷口转动时对其密封要求较高,且此处水压较高,更增加密封难度。第二个问题就是底部的电机如何使上部的喷头进行竖直方向的摆动。此处传动距离较长,增加材料势必增加水平转动电机的负载,且此电机好密封,极易漏水烧毁电机。于是我们直接采用了接导水软管的方法。导水软管是用一种软橡皮材料做成的,我们在进行试验时,一端接从水泵流过的水,一端穿过套筒固定在舵机上,有较好的弹性,使灌溉机械臂在转动时,水管不会产生较大的阻力矩,也不会发生塑性变形影响使用。这种形式的优点是结构简单,使用方便,一根管足以解决喷头出的设计问题。缺点是电机带动套筒的转角
6、不能持续朝一个方向转动,否则水管会打结使水流不通,且从水管浇灌到地面的水流呈柱状,对地面冲击较大。软管长期拉伸压缩会造成水管脱胶,碎裂等问题。在实际设计计算中,需进行软管的拉压的疲劳强度的校核,及齿轮传动的校核计算。通过查机械设计的手册可以计算出所需的材料及其他要求。在进行设计的过程中,我们查阅了上市的喷头的基本的工作原理,对其有了初步的了解。在进行结构设计得过程中,我们查阅了相关的机械原理、机械设计方面的书籍,增长了我们的机械方面的知识及解决机械设计问题的能力。 具体构件可参见所附的proe零件图及整体装配图。硬件电路部分设计 A. 湿度传感器方案我们采用通DX-S2型土壤湿度传感
7、器,通过测出被测土壤的介电常数,并根据土壤容积含水率与土壤介电常数之间的非线性关系推导出土壤的容积含水率和重量含水率。本传感器对土壤水分变化有很高的灵敏度,因此温度、盐分、土壤性质变化因素的影响相对比较小,如果要求测量结果准确度高,应酌情对这些因素的影响进行修正。或采取其它措施减少这些因素的干扰。湿度传感器各项参数如下:测量参数 土壤容积/重量含水率 量 程 450%(绝对重量含水率) 精 度 误差不超过2% 响应时间 响应在1秒内进入稳定 工作环境 -30+55 工作电压 4.55.5VDC,典型值5.0VDC 工作电流 50mA 输出信号 02.5VB.运算放大器方案传感器输出的电压信号为
8、毫伏级,需要通过运放将信号放大,对运算放大器要求很高。 基于此,我们考虑了可以采用以下几种方案: 方案 一 、利用普通低温漂运算放大器构成多级放大器。 普通低温漂运算放大器构成多级放大器会引入大量噪声。由于 A/D 转换器需要很高的精度,所以几毫伏的干扰信号就会直接影响最后的测量精度。在调试中误差较大,所以,此种方案不宜采用。 方案二、由高精度低漂移运算放大器构成差动放大器。 差动放大器具有高输入阻抗,增益高的特点,可以利用普通运放 ( 如LM324) 做成一个差动放大器。 U1-U3组成仪表放大器,U4构成电压跟随器,用于调零电路. 基于以上分析,我们采用此种放大方式,(四集成度,芯片型号L
9、M324)C.电机方案 由于对浇灌机械臂的转速要求不高,且要实现精确定位,而且步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。由此,电机采用四相六线混合式步进电机,以实现对喷灌机械臂的转动控制。 在最初的电机驱动方案中,采用L298芯片+二极管吸收电路,用设计好的开关电源给L298以及步进电机供电。电路经keil+prot
10、eus仿真后可以实现对电机的控制,仿真阶段未出现任何问题。电路图如下: 但此电路在实际调试中,由于从l298的2、3、13、14脚输出信号变化较快,二极管导通出现问题;电机正转调试c语言子程序如下:#include<reg51.h>void delay1s(void) unsigned char j,k; for(j=50;j>0;j-) for(k=100;k>0;k-); main() unsigned char a8=0x24,0x35,0x11,0x39,0x28,0x3a,0x12,0x36 ; unsigned char b; unsigned char i
11、=0;while(i<=50) for(b=0;b<8;b+) P1=ab; delay1s();i+; 1、电机的转速控制:上程序中,通过j、k的取值,可以控制延时程序延时的时间,进而控制步进电机的转动频率,进而实现对电机速度的控制。实际应用中,可将其设置为函数间接口的变量,以实现调速。2、电机的转动位置控制:在while循环中,没执行一次,电机转动一个齿距角。由于所用电机为50齿,所以每完成一次上述程序,电机转动一周。转动角度与i的取值关系为:=i50*2可以将i设置成函数间接口的变量,通过对其赋值实现精确定位。3、实现正反转反转程序只需将0x24,0x35,0x11,0x39
12、,0x28,0x3a,0x12,0x36的顺序倒过来,即依次为0x36,0x12,0x3a,0x28,0x39,0x11,0x35,0x24,依次循环。在运行时,电机的各项性能已经满足使用需要,但仍有需改进的地方:此电机在高频状态,转速较高时,易出现丢步、振动现象,需用细分方案来解决;另外,电机驱动电路的散热方法亦非尽善尽美,需要更好的解决方案。D显示部分设计:在每次湿度传感器采集到数据时,由单片机驱动液晶显示器显示土壤湿度。我们选用了成都市飞宇达实业有限公司出品的FYD12864-0402B型的液晶显示模块。此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置
13、。该模块具有2.75.5V的宽工作电压范围,且具有睡眠、正常及低功耗工作模式,可满足系统各种工作电压及便携式仪器低功耗的要求。液晶模块显示负电压,也由模块提供,从而简化了系统电源设计。模块同时还提供LED背光显示功能。除此之外,模块还提供了画面清除、游标显示/隐藏、游标归位、显示打开/关闭、显示字符闪烁、游标移位、显示移位、垂直画面旋转、反白显示、液晶睡眠/唤醒、关闭显示等操作指令。下图为液晶显示程序流程图: 下图为proteus仿真图: E 、舵机控制方案 舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直
14、流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM周期信号,本设计是产生20ms的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。当系统中只需要实现一个舵机的控制,采用的控制方式是改变单片机的一个定时器中断的初值,将20ms分为两次中断执行,一次短定时中断和一次长定时中断
15、。这样既节省了硬件电路,也减少了软件开销,控制系统工作效率和控制精度都很高。 具体的设计过程:例如想让舵机转向左极限的角度,它的正脉冲为2ms,则负脉冲为20ms-2ms=18ms,所以开始时在控制口发送高电平,然后设置定时器在2ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为18ms,再过18ms进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2ms,等待下次中断到来,如此往复实现PWM信号输出到舵机。用修改定时器中断初值的方法形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。F.电源部分设计对于此系统的供电问题,由于需要对电机供电,因此需要大电流
16、,传统的线性电源,体积笨重,内阻大,效率低,大电流时驱动负载能力差,因此我们采用了开关电源,内阻小,适合强电流供电。其电路图如上,通过电路的连接,我们得到了12V (2A)5V(1A)3.5V(1A)三路电源,而且调试成功。对于此电路有一个亮点就是,电源系统中有两个开关控制电路,一个是对强电的开关控制,另外一个是对变压器副边整流后电压的开关控制以达到稳压目的,普通的稳压管,如果整流后的电压为16V而稳压管是12V则在负载电流为1A时,稳压管的功率是4W,此时稳压管发烫,而且电能浪费,而对于由UA741控制的初步稳压电路可以实现在负载电流为1A使稳压功耗不足1W. 电路原理图如下: G、对单片机
17、的改进设计 在进行实验过程中,由于处理中断较多,我们感觉到51单片机的片内资源不够,增加芯片势必增加电路板的体积。所以我们最后学习并采用了MSP430的单片机来改进我们的系统。 MSP430F247单片机具有超低功耗、集成高性能的模拟器件、16位RISC结构的CPU、在线编程、多时钟、集成开发环境简单等特点。片内资源丰富,有ADC,PWM,若干TIME,串行口,WATCHDOG,FLASH,比较器,模拟信号等。另外在本系统中我们需要应用多路A/D转换功能,本单片机刚好为我们提供了8路A/D转换接口。同时本单片机具有强大的处理功能,采用了精简指令集( RISC )结构,具有丰富的寻址方式( 7
18、种源操作数寻址、 4 种目的操作数寻址)、简洁的 27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理指令;有较高的处理速度,在 8MHz 晶体驱动下指令周期为 125 ns 。这些特点保证了可编制出高效率的源程序。低功耗是目前一项很令人关注的性能指标,MSP430 系列单片机的电源电压采用的是 1.83.6V 电压。因而可使其在 1MHz 的时钟条件下运行时, 芯片的电流会在 200400uA 左右,时钟关断模式的最低功耗只有 0.1uA 。其次是独特的时钟系统设计。基本时钟系统和锁频环( FLL 和 FLL+ )时钟系统或 DCO 数字振荡
19、器时钟系统。由系统时钟系统产生 CPU 和各功能所需的时钟。并且这些时钟可以在指令的控制下,打开和关闭,从而实现对总体功耗的控制。当系统处于省电的备用状态时,用中断请求将它唤醒只用 6us 。并且该单片机内的片内可擦写FLASH为我们提供了一个很方便的存储器,即使在掉电的情况下也不会改变内部的数据。Msp430F247单片机的种种功能刚好满足了我们的需求,正是它的存在,是我们的系统更加完善。 程序清单A、程序流程符合湿度要求,重置定时器定时(10分钟),单片机待机不符合要求30s后响应中断驱动湿度传感器电路,采集数据,看是否符合湿度要求,并输出此时湿度单片机重置定时器计数后待机,使定时器30秒
20、后发出中断信号根据分析结果,调用电机运转子程序,同时控制电机与舵机分别旋转、摆动,并打开节流阀,驱动水泵实现精确定位,完成浇灌调用土壤湿度分析子程序(即与标准湿度相比较),计算出土壤需要浇灌的部分,并计算出干湿度以决定浇灌用水量(由喷灌时间决定)利用单片机内定时器计数器,每隔10分钟(可调)定时向单片机发出中断信号单片机处于低功耗状态,等待中断信号单片机相应中断,驱动湿度传感器电路,使湿度传感器工作,采集数据并将其传至单片机,由单片机驱动液晶显示器输出土地情况B、 部分模块驱动程序: 1、液晶驱动: /*初始化液晶*/void initLCD(void) Delayms(50); WR_COM
21、(0x30); Delay10us(20); WR_COM(0x30); Delay10us(5); WR_COM(0x0c); Delay10us(20); WR_COM(0x01); Delayms(20); WR_COM(0x06); WR_COM(0x0c); CLR(); /*清屏*/void CLR(void)Busy(); RS_0; RW_0; E_1; _NOP(); P4OUT=0x01; E_0;/*写控制字函数*/void WR_COM(unsigned char ins) Busy();RS_0;RW_0;E_1; P4OUT=ins;E_0;/*写数据函数*void
22、 WR_DAT(unsigned char dat) Busy();RS_1;RW_0;E_1;P4OUT=dat;E_0;/*初始化I/O*void LCD_port_init(void) P5SEL =0X00; P4SEL =0X00; P5DIR|=BIT0; P5DIR|=BIT1; P5DIR|=BIT2; P4DIR =0XFF; P4OUT=0X00; initLCD();2、 步进电机驱动:void delay1s(void) unsigned char j,k; for(j=50;j>0;j-) for(k=100;k>0;k-); main() unsigne
23、d char a8=0x24,0x35,0x11,0x39,0x28,0x3a,0x12,0x36 ; unsigned char b; unsigned char i=0;while(i<=50) for(b=0;b<8;b+) P1=ab; delay1s();i+; void power(float t/*速度值,保留一位小数*/,unsigned char m) unsigned char gaodu=0; uchar b,c,d,e,f,g; f=m; while(f) for(c=0;c<5;c+) for(b=8;b>0;b-) g=b-1; P3OUT=
24、ag; power_delay(t); f-; gaodu=m-f; d=gaodu/10; e=gaodu%10; now_hight9=d+0x30; now_hight10=e+0x30; write_char(now_hight,0,1); void anti_power(float t/*速度值,保留一位小数*/,unsigned char m) unsigned char gaodu=0; uchar b,c,d,e,f; f=0; while(m) for(c=0;c<5;c+) for(b=0;b<8;b+) P3OUT=ab; power_delay(t); f+
25、; m-; gaodu=70-f; d=gaodu/10; e=gaodu%10; now_hight9=d+0x30; now_hight10=e+0x30; write_char(now_hight,0,1); void anti_power_d(float t/*速度值,保留一位小数*/,unsigned char m) unsigned char gaodu=0; uchar b,c,d,e,f; f=0; while(m) for(c=0;c<5;c+) for(b=0;b<8;b+) P3OUT=ab; power_delay(t); f+; m-; gaodu=ii-
26、f; d=gaodu/10; e=gaodu%10; now_hight9=d+0x30; now_hight10=e+0x30; write_char(now_hight,0,1); 3、 舵机驱动: BCSCTL1=0x0; BCSCTL2=0x88; do IFG1&=OFIFG; for(i=0xff;i>0;i-); while (IFG1&OFIFG)!=0); P1DIR=0XFF; P1SEL=0XFF; TACTL=0x2d2; CCTL1=OUTMOD_7; CCR0=20000; while(1) CCR1=2000; delay(); CCR1=1
27、000; delay();4、 键盘驱动:/初始化P1中断void KEY_1_init(void) P1DIR=0; P1SEL=0; P1DIR|=BIT3; P1DIR|=BIT5; P1DIR|=BIT6; P1DIR|=BIT7; P1OUT=0X00; P1IE=0; P1IES=0; P1IFG=0; P1IE|=BIT0; P1IES|=BIT0; P1IE|=BIT1; P1IES|=BIT1; P1IE|=BIT2; P1IES|=BIT2; P1IE|=BIT4; P1IES|=BIT4;/初始化P2中断+P3void KEY_2_init(void) P2DIR=0;
28、P2SEL=0; P2IE=0; /禁止P2口中断 P2IES=0XFF; /现在是下降沿触发 P2IFG=0; /标志寄存器清零,无中断请求。 P2IE|=BIT0; P2IES&=BIT0; P2IE|=BIT1; P2IES&=BIT1; P2IE|=BIT2; P2IES&=BIT2; P2IE|=BIT3; P2IES&=BIT3; P2IE|=BIT4; P2IES|=BIT4; P2DIR|=BIT5; P2DIR|=BIT6; P2DIR|=BIT7; P2_7_H;/高阻 P3SEL=0; P3DIR=0XFF; P6SEL=0; P6DIR|
29、=BIT3; /_EINT();int keyprocess(void) int np10,np11,np12,np13; int nres=0; /P1.5输出低电平 P1OUT=0xd0; np10=P1IN&BIT0; if(np10=0) nres=7; np11=(P1IN&BIT1)>>1; if(np11=0) nres=1; np12=(P1IN&BIT2)>>2; if(np12=0) nres=4; np13=(P1IN&BIT4)>>4; if(np13=0) nres=11;/取消键 /P1.6输出低电
30、平 P1OUT=0xb0; np10=P1IN&BIT0; if(np10=0) nres=8; np11=(P1IN&BIT1)>>1; if(np11=0) nres=2; np12=(P1IN&BIT2)>>2; if(np12=0) nres=5; np13=(P1IN&BIT4)>>4; if(np13=0) nres=0; /P1.7输出低电平 P1OUT=0x70; np10=P1IN&BIT0; if(np10=0) nres=9; np11=(P1IN&BIT1)>>1; if(n
31、p11=0) nres=3; np12=(P1IN&BIT2)>>2; if(np12=0) nres=6; np13=(P1IN&BIT4)>>4; if(np13=0) nres=12;/确定键 P1OUT=0x00; /恢复以前值 for(;) /读各个管脚的状态 np10=P1IN&BIT0; np11=(P1IN&BIT1)>>1; np12=(P1IN&BIT2)>>2; np13=(P1IN&BIT4)>>4; if(np10=1&&np11=1&&
32、amp;np12=1&&np13=1) /等待松开按键 break; return nres;int keyscan(void) int np10,np11,np12,np13; int nres=0; for(;) /读取各个管脚的状态 np10=P1IN&BIT0; np11=(P1IN&BIT1)>>1; np12=(P1IN&BIT2)>>2; np13=(P1IN&BIT4)>>4; /是否有键被按下 if(np10=0|np11=0|np12=0|np13=0) /有键被按下 _NOP(); bre
33、ak; Delay(50); /读各个管脚的状态 np10=P1IN&BIT0; np11=(P1IN&BIT1)>>1; np12=(P1IN&BIT2)>>2; np13=(P1IN&BIT4)>>4; /是否有键被按下 if(np10=0|np11=0|np12=0|np13=0) /有键被按下,进行按键分析 nres=keyprocess(); else return 10;/非有效键 return nres; 4、 延时程序: extern void Delay_(unsigned int n) unsigned i
34、nt i=60000; uchar j; while(i) for(j=0;j<50;j+) while(n!=0) n-; i-; extern void Delay(unsigned int n) while(n!=0) n-;extern void Delayms(unsigned char t) / delay 1ms unsigned int i; for(;t!=0;t-) for(i=0;i<1600;i+);extern void Delay10us(unsigned char k) / delay 10us unsigned char i; for(;k!=0;k
35、-) for(i=0;i<16;i+);extern void power_delay( float t) unsigned int i,tt; t=50.0/t; tt=t*100; for(;tt!=0;tt-) for(i=0;i<8;i+);3、 主程序:#include"msp430x24x.h"#include"lianjie.h"#include"declaration.h"#include"delay.c"#include"lcd_show.c"#include&qu
36、ot;key.c"#include"8563.c"#include"power.c"#include"raise.c"#include"flash.c"#include"fujia.c"/*初始化系统时钟*/void InitSystemClock(void) unsigned char i; WDTCTL=WDTPW+WDTHOLD; /关闭看门狗 BCSCTL1=0x00; /Set 430 clk 开启XT2,DOC的标称频率为最低 且不分频;XT1为低速晶体(32.768K) BCSCTL2=SELM_2+SELS; /选择MCLK SCLK的时钟源为高速时钟 不分频,均为8M do IFG1&=OFIFG; for(i=0xff;i>0;i-); while (IFG1&OFIFG)!=0);void main(void) InitSystemClock(); sendinit(); flash_ini(); Init_TimerB(); KEY_2_init(); KEY_1_init();/ 里面已有开中断了! LCD_port_init();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业销售个人的工作总结
- 乡村医生先进事迹500字(10篇)
- DB12T 598.17-2015 天津市建设项目用地控制指标 第17部分:墓葬项目
- 中秋节的慰问信(5篇)
- 团支部书记竞选演讲稿四篇
- 新学期学习计划范本锦集8篇
- 业务员的实习报告范文4篇
- 高等数学教程 上册 第4版 习题及答案 P177 第7章 多元微积分
- 天然气公司股东协议书-企业管理
- 3D立体风立体商务汇报
- 蓝色简约风中国空军成立75周年纪念日
- 2024年全国企业员工全面质量管理知识竞赛题库(含答案)(共132题)
- 知识创业思维与方法智慧树知到答案2024年湖南师范大学
- 无人机全行业保险
- 2023年广东省建筑设计研究院校园招聘笔试参考题库附带答案详解
- 员工人事档案目录
- 迅达SWE30-100K自动扶梯电路分析_图文
- 电子工程师必备基础知识
- 用户运营基础知识
- 钣金与焊接工艺规范
- 最新X线诊断报告模板(干货分享)
评论
0/150
提交评论