




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录一 摘要1二 设计目的与意义1三 方案论证与确定23.1系统方案的确定.23.2传感器方案的确定.33.3测量显示方案的确定3四 系统工作原理分析4五 电路制作与调试六 附录七 参考文献一摘 要在现今科技高速发展的时代,各行各业对控制和测量的要求越来越高,其中,温度测量和控制在很多行业中都有比较重要的应用,尤其在工业上,如炼钢时对温度高低的控制。要控制好温度,测量是前提,测量的精度影响着后续工序的进行,因此温度测量的方法和选取就显得相当重要了。针对各种温度测量方案的讨论分析后,我们组决定以AT89S52为核心,采用DS18B20温度传感器进行温度信号的检测,并通过LCD液晶显示测量所得温
2、度,外加红外遥控调节设置温度测量的上下限数值(默认温度上下限为1024),在所测温度到达所设上下限数值时,蜂鸣器启动报警提示。本报告是我们组所设计的数字温度计的说明书,包括方案论证选取、工作原理、所用元件介绍和设计电路原理图、调试程序等。2 设计目的与意义随着电子技术的高速发展,对电子方面人才的要求越来越高,不仅要求其具备相关的专业理论知识,还要求其具有较强的设计、制作等实践动手能力。此次课程设计无疑是对从事测控专业的人的一次很好的锻炼和考验,是培养测控技术的人才的一次良好的机会,为其提供了一个理论知识与实践相结合的平台。通过本次课程设计,引导学生结合所学的测控电路理论知识,思考设计方案,以小
3、组合作方式,分工完成各个部分,从而掌握相关的测量显示电路的设计和调试技术,一方面提高了学生的实践动手和协作能力,另一方面培养了学生综合运用所学理论知识进行工程设计的能力。通过此次课程设计,可以培养学生的工程设计能力,包括动手能力、独立思考设计能力、解决实际设计过程中遇到的问题以及团队协作能力等,为今后的专业学习和工程实践打下坚实的基础。3 方案论证与确定3.1系统方案的确定3.1.1方案一该方案利用AVR单片机对输入信号进行模数转换输出数字信号控制数码管显示温度值。并且可以通过编写程序对输入信号进行分段线性化处理,使得测量精度大大提高,而且该电路无须外接译码器,结构简单。工作框图如图1所示:图
4、1 方案一工作框图3.1.2方案二该方案以AT89S52为控制器,采用DS18B20温度传感器检测温度信号,利用红外遥控设置温度测量的上下限数值,并通过LCD液晶显示。工作框图如图2所示:图2 方案二工作框图经过综合研究分析,考虑整个设计和成本,方案三成本低,测量温度方便简单,故此次数字温度计课程设计选取方案三。3.2传感器方案的确定方案一该方案采用AD590。AD590拥有良好的线性关系,灵敏度较高、使用简单方便。但是这种传感器的价格比其他的两种都贵很多。故不选用。方案二:DS18B20数字温度传感器DS18B20是美国DALLAS半导体公司智能温度传感器,他能够直接读出被测温度并且可根据实
5、际要求通过简单的编程实现912位的数字值读数方式从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面拥有很大优势,给用户带来了更方便的使用和更令人满意的效果。经过上述二种方案的论证比较,综合考虑成本、性能等因素,最终选取方案二。3.3测量显示方案的确定方案一该方案采用LED显示。LED数码显示中每一个像素单元就是一个发光二极管,如果是单色,一般是红色发光二级管。如果是彩色,一般是三个三原色小二极管组成的一个大二级管。这些二级管组成的矩阵由
6、数码控制实时显示文字或者图像,造价相对低廉,组成的显像面积大。方案二该方案采用LCD液晶显示。液晶显示器是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过方向的特性,而达到白底黑字或黑底白字显示的目的。LCD液晶的像素单元是整合在同一块液晶版当中分隔出来的小方格。通过数码控制这些极小的方格进行显像。造价高但是显示非常细腻。经过研究分析,选择方案二。4 系统工作原理分析本系统由温度传感器DS18B20、AT89S52、LCD显示电路、软件构成。DS18B20输出表示摄氏温度的数字量,然后用51单片机进行数据处理、译码、显示、报警等,系统框图如图3所示:图3 系统框图4
7、.1微控制器原理AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8K Bytes ISP的可反复擦写100000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,其具有如下特点:40个引脚,8K Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器,32个外部双向输入/输出口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗电路,片内时钟振荡器。单片机引脚如图4所示:图4 单
8、片机引脚图4.2传感器原理DS18B20简介DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。DS18B20元件图如图5所示:DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; 图5 DS18B20元件图
9、负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20内部结构DS18B20采用脚PR35封装或脚SOIC封装,其内部结构框图如图所示。C64 位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器Vdd 64位ROM的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
10、高速暂存RAM的结构为字节的存储器,结构如图7所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低位一直为,是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用户要去改动,R1和0决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRC图7 DS18B20字定义由表1可见,DS18B20温度转换的时间
11、比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。表1 DS18B20温度转换时间表高速暂存的第、字节保留未用,表现为全逻辑。第字节读出前面所有字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第、字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位时,表示测得的温度值为负值,要先
12、将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0
13、110 1111FE6FH-551111 1100 1001 0000FC90H表2一部分温度对应值表 DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、T字节内容作比较。若TH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的
14、脉冲信号送给减法计数器;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器和温度寄存器被预置在55所对应的一个基数值。减法计数器对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器的预置值减到时,温度寄存器的值将加,减法计数器的预置将重新被装入,减法计数器重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到
15、时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。 另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。DS18B20测温原理DS18B20低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。当计数
16、门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。此外,用斜率累加器补偿和修正测温过程中的
17、非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,4.3温度数值分析利用的单片机的一个IO口,读取DS18B20的温度高位,温度低位。由上面的分析可知:温度高位的高5位的符号位、低3位是整数部分的高四位(整数部分的最高位永远为0),温度低温的高四位为整数部分的低四位,温度地位的低四位是小数部分用以下公式计算: 整数部分温度低位/16温度高位×16 小数部分十分位(温度低位&0x0f)×10/16由于DS18B30的集成度很高,使得设计的原理还是比较简单,设计的关键是了解DS18B20的时序,准确地获得温度高位
18、和温度低位。5 电路制作与软件调试5.1硬件制作本次设计应用Protel DXP绘制电路原理图,生成PCB图,然后用雕刻机刻板,焊接电路元件,最后用程序调试系统功能。硬件电路主要由单片机最小系统、DS18B20为核心的传感器电路、液晶显示电路、报警电路、红外遥控电路和供电电路组成。单片机最小系统:提供一个上电复位高电平,和12MHZ时钟振荡。DS18B20传感器电路:加电即可工作,DATA端加4.7K电阻作上拉电阻保证有足够大的灌拉电流。液晶显示电路:报警电路:利用5V蜂鸣器作报警提示。供电电路:利用7805组成线性稳压电源为整个系统供电。具体电路连接见附录SCH电路原理图,硬件接线正确,单片
19、机能构正常工作,硬件调试成功。5.2软件调试首先用Proteus进行仿真,调试程序,然后在制作好的电路板上调试程序。测温精度可取到小数点后三位。主程序流程主程序说明:小于10度,亮黄色LED,表示较凉,开蜂鸣器; 大于24度,亮绿色LED,表示温度较热,开蜂鸣器; 遥控远程控制,改变上下限报警温度。主程序流程图如图8所示: 开始温度读取数值送显示判定按键摄氏变华氏< 10度开黄灯报警> 24度遥控信号初始化开绿灯报警改变上下限温度是否是是否否图8 主程序流程图 子程序流程DS18B20工作流程图如图9所示;计算温度流程图如图10、图11所示;温度读取流程图如图12所示。Y发DS18
20、B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNY初始化调用显示子程序0.5 S到?初次上电读出温度值温度计算处理显示数据刷新发温度转换开始命令NYNY图9 DS18B20工作流程图 开始温度零下?温度值取补码置“”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“+”标志NY 图10 计算温度流程图温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号) 结束NNYY图11 显示数据刷新流程图图12 温度读取流程图温度读取程序开始复位DS18B20,等待大于480us发送避开R
21、OM信息指令发送转换命令,开始转换延时等待转换完成发送读取指令开始读取温度,保存温度进制处理,化为十进制温度读取程序结束6 附录6.1课程设计心得体会本次课程设计,我们组成功完成了数字温度计的设计、制作与调试。三天的时间里,我们分工合作,组长全瑞负责写程序,我和景存负责电路部分(主要绘制电路、焊接电路),安荣负责刻板、包装。最后的调试工作我们共同参与,遇到了不少问题,大家从电路、程序中寻找出错的原因(负责检查自己负责的那部分,并作相应修改),经过讨论、思考找到解决的方法,使得最终用程序调试电路显示成功。在这里,很感谢与我共同奋斗的我们组的成员,尤其是景存,在我绘制电路原理图和PCB图时给予我很
22、多帮助。这次课程设计,我尝试用Protel DXP绘制电路图,因为我们在讨论方案是确定了电路制作方面采用刻板方式。虽然以前有学过Protel 99,但从未接触过DXP,所以还是去图书馆借了相关的书籍,边学边绘制。这次用DXP而不用99,主要是考虑到对以后学习FPGA等会有更大的帮助。绘制电路图的过程中,的确遇到了不少问题。虽然这次设计的电路并不复杂,(主要由单片机最小系统、DS18B20测温电路、液晶显示电路、红外遥控电路、报警电路和供电电路组成),但里面的元件查找和封装很繁琐,导入PCB后有些封装太大,要做相应的替换。通过这次绘制电路,认识了不少元件的各种封装,更学会了刻板时用到的相关参数的
23、设置,例如焊盘、布线等参数的设置。因为是第一次刻板,在设置这些参数时还请教了我们513实验室的师兄,在这里非常感谢他们给予的帮助。导入PCB后,更头痛的是布局。刚开始尝试用自动布局功能,但是出来的效果不是很理想,有不少跳线,所以还是用手动布局。对应着电路原理图,初步调整元件的位置,在尽量避免线路的交叉。在布局过程中,景存和我一起思考讨论布局方案,可是第一次自动布线后,还是有不少跳线。我们研究自动布线时线路的走向,讨论怎样移动一下元件的位置能让这里的跳线消除,让线路有空间绕过去而不必跳线。另外结合刻板的实际(例如雕刻机的刀有些钝),线的大小和焊盘孔径的大小的修改也相当考验我。当安荣把第一块板刻出
24、来时,发现线太细,有些几乎要断了,孔径太小,根本无法钻孔。就这样,我结合师兄给予的建议和实际出来的效果修改了相关参数,最后终于有所成效。出来自己负责的绘制电路原理图和PCB图外,我还学会了雕刻电路板(例如如何定位雕刻刀、如何调整进刀的大小等),在电路调试中更是深有感慨。一个作品无论大小、复杂或简单,在软硬件相结合的过程中总会出现一些问题,要我们去调试,去检查,才能使结果更精确。而且调试时让我着实体会到前期电路制作部分很重要,电路制作得好,会减少调试中出现问题的可能性。这次课程设计我受益匪浅,也是进实验室以来的又一次不错的经历。团队协作做出来的作品,每一部分都不可或缺,既要分工又要合作,这样才能
25、有更佳的效果。6.2系统电路原理图 6.5程序代码*LCD1602模块*/#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit rs=P27;/液晶使能端口sbit rw=P26;sbit e=P25;sbit P3_6=P36;sbit P1_0=P10;sbit P1_1=P11;/sbit P1_0 = P10;/sbit P1_1 = P11;void delay_ms(uchar ms) /延时 uint i,j; for(i=0;i<ms;i+) for(j=0;j&l
26、t;120;j+);void lcd_wcmd(uchar cmd) /液晶写指令rs=0;rw=0;e=0;P0=cmd;e=1;e=0;delay_ms(5);void lcd_wdat(uchar dat) /液晶写数据rs=1;rw=0;e=0;P0=dat;e=1;e=0;delay_ms(5);void lcd_dis(uchar post,uchar *p)lcd_wcmd(0x80 | post);/设置数据地址指针显示while(*p!='0')lcd_wdat(*p+);uchar code def_char0=0x10,0x06,0x09,0x08,0x0
27、8,0x09,0x06,0x00; /字符void lcd_wcgram(uchar adress,uchar tmp)uchar i;for(i=0;i<8;i+)lcd_wcmd(adress+i);lcd_wdat(tmpi);void lcd_inti()delay_ms(15);lcd_wcmd(0x38);/16X2字符,5X7点阵,8位数据接口lcd_wcmd(0x38);lcd_wcmd(0x08);/关闭显示lcd_wcmd(0x01);/清屏lcd_wcmd(0x06);/设置光标工作方式lcd_wcmd(0x0c);/开显示,设置光标显示方式lcd_wcgram(0
28、x48,def_char0); /载入用户自定义字符sbit DQ=P37; /18B20数据管脚/*ds18b20延迟子函数(晶振12MHz )*/ void delay_18B20(unsigned int i)while(i-);void reset() uchar x=0; DQ = 1; /DQ复位 delay_18B20(8); /稍做延时 DQ = 0; /单片机将DQ拉低 delay_18B20(80); /精确延时 大于 480us DQ = 1; /拉高总线 delay_18B20(14); x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败 delay_
29、18B20(20); unsigned char rbyte()uchar i=0;uchar dat = 0;for (i=8;i>0;i-) DQ = 0; / 给脉冲信号 dat>>=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); return(dat); void wbyte(uchar dat) uchar i=0; for (i=8; i>0; i-) DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat>>=1; uchar rTe
30、mpetuare(uchar tmp)uchar a=0,b=0,temp,decimal;uint uival;reset();wbyte(0xCC); /跳过读序号列号的操作wbyte(0x44); /启动温度转?reset();wbyte(0xCC); /跳过读序号列号的操作wbyte(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=rbyte(); /读取温度值低位b=rbyte(); /读取温度值高位temp=b;temp&=0xf0;if(temp) /负温if(a=0)a=a+1; /bit7向bit8位产生进位b=b+1; else a=a+1;
31、 b=b;tmp0='-'elsetmp0=' 'temp=(b<<4)|(a>>4); /组合decimal=a&0x0f; /将小数点后的数据提取出来uival=decimal*625; tmp0='T'tmp1='='tmp2=0x20; /空格 tmp3=temp/100 | 0x30; /取百位tmp4=temp%100/10 | 0x30; /取十位tmp5=temp%100%10 | 0x30; /取个位tmp6=0x2e; /小数点tmp7=uival/1000 | 0x30; /十
32、分位tmp8=uival%1000/100 | 0x30; /百分位tmp9=uival%1000%100/10 | 0x30; /千分位tmp10=uival%1000%100%10 | 0x30; /万分位tmp11=0x20; /空格tmp12=0x01; /字符tmp13='0'return temp; /十进制温度/*红外解码模块*/#define c(x) (x*110592/120000)sbit Ir_Pin=P32; /红外数据管脚unsigned char Ir_Buf4; /用于保存解码结果/=unsigned int Ir_Get_Low() /计数器1
33、,用于解码延时TL1=0;TH1=0;TR1=1;while(!Ir_Pin && (TH1&0x80)=0);TR1=0;return TH1*256+TL1;/=unsigned int Ir_Get_High() /计数器1,用于解码延时TL1=0;TH1=0;TR1=1;while(Ir_Pin && (TH1&0x80)=0);TR1=0;return TH1*256+TL1;char jianche() /解码程序char i,j;uint temp;restart:while(Ir_Pin);temp=Ir_Get_Low();if
34、(temp<c(8500) | temp>c(9500) goto restart;/引导脉冲低电平9000temp=Ir_Get_High();if(temp<c(4000) | temp>c(5000) goto restart;/引导脉冲高电平4500for(i=0;i<4;i+) /4个字节for(j=0;j<8;j+) /每个字节8位temp=Ir_Get_Low();if(temp<c(200) | temp>c(800) goto restart;temp=Ir_Get_High(); if(temp<c(200) | temp>c(2000) goto restart;Ir_Bufi>>=1;if(temp>c(1120) Ir_Bufi|=0x80;return Ir_Buf2&0x0f; /所得码/*时钟模块*/extern uchar minTX; /最小报警温度extern uchar maxTX; /最大报警温度uchar storeT14; /实际温度
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度综合性医院消毒灭菌专业服务合同
- 2025年度农业土地整治土地承包合同
- 2025年度抵押车个人车辆抵押权解除后续贷合同模板
- 宠物运输司机劳务协议
- 2025年广东生态工程职业学院单招职业适应性测试题库必考题
- 2025年二手房市场分析:二手房市场降幅收窄
- 2024年三季度报重庆地区A股主营业务利润排名前十大上市公司
- 2024-2025学年福建省福州市马尾第一中学等六校高二上学期期中联考生物试卷
- 2023-2024学年湖南省衡阳市祁东县高考考前仿真联考三生物试卷
- 意见征询稿回复函
- 跨云平台的DevOps集成
- 纺织染整行业安全培训
- 小学综合实践活动《察探究活动跟着节气去探究》课教案
- 水工建筑物维护技术
- 载重汽车的安全操作规程范本
- 平台对接技术方案
- 化妆品包装相容性评估方法
- 安全生产法律法规、标准清单
- 消防车辆与泵装备的配置与选用与更新的技术要求与管理办法
- 学校重大事项议事决策制度
- 英纳能特种防护材料珠海产研生态基地建设项目(一期)环境影响报告表
评论
0/150
提交评论