




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学校代码: 10128单片机工程实践(第十组)题 目: 温度监测器 (任务三) 组长: 组员: 指导教师:刘伟、裴岩、斯日古楞、杨传颖、韩海波、高鹏 、郭慧(研)、胡元元(研)设计时间:2013年7月1日2013 年7月12日一、 设计目的:1、通过一个以8 位单片机为核心的模拟量数字表的硬件调试过程,通过蜂鸣器自检、键盘自检、LED自检的程序设计,掌握具有A/D、七段LED 显示等接口电路的单片机应用系统的设计思想和方法。2、学习应用系统软件的模块化设计方法,学习伟幅仿真器及相关软件调试程序的方法及步骤,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。3、通过上述过程建立工程概念、提高学生工程实践能力、素质和团队的合作的能力。二、 设计任务:1、蜂鸣器自检 要求:利用程序实现两种以上声音。 2、键盘自检 要求:确定键盘正确。 3、LED 显示器自检 要求:确定LED 显示器每一段均正确。4、温度监测器要求:利用AD7109、LED显示器等完成温度监视,实现温度范围为 -XXX+XXXX采样、转换和显示。任务分工(1)组长( )负责设计主程序,设计总体思路与框架,调试及整个项目组的分配。(2)组员( )负责编写程序并协助组长将整个程序整合及画程序流程图。(3)组员( )负责调试程序的软件运行环境并协助组长完成程序的整合及画硬件框图。三、 框图1.硬件编程框图及相关说明(1) 蜂鸣器自检 P2.3 说明:执行指令CLR P2.3后,P2.3为“0” ,晶体管导通,蜂鸣器BEP得电发声。据此可以判断蜂鸣器电路是正确的。注意:如果蜂鸣器未带振荡器,要想让蜂鸣器产生声音必须要让晶体管按照一定的频率不断地导通、截止交互变化,即P2.3不断地输出“0“、“1”,输出的频率不同时,声音也不同。如果蜂鸣器带振荡器,则只需控制其通、断即可。(2) LED自检COMa f b g e c d habh138Y0SEL1ABC+5VDT12803Q1P0(字型口)P2.7P2.6P2.5(字位口) 说明: LED显示器由若干个发光二极管组成,它有共阴极和共阳极两种结构。该图结构为共阳极,且是动态扫描显示(动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。),COM端为高电平时,显示器工作,反相驱动器的功能是使LED稳定的亮。P0口控制LED显示什么字形的即字形口,P2.5、 P2.6 、P2.7、是选择字位的即哪位LED亮,R的作用是泄流。(3) 键盘自检说明:单片机上电复位时,P2口为高电平,SEL8有效及74HC245三态门状态为打开状态,此时可以采集键盘、拨盘信息了SEL7有效关闭三态门。K1-K4为仪表键盘(用户使用)SW1-SW4拨盘(自检开关),通过上拉电阻使K(SW)闭合为“0”打开为“1”。(4) 温度监测器字型字位p0p2.5p2.6p2.7C51p1A/D说明:P0口 控制LED显示字型,p1口采样。 P2.5,p2.6,p2.7控制字位口。2.自检程序框图 开始(1)蜂鸣器自检程序: 打开蜂鸣器延时1关闭蜂鸣器打开蜂鸣器延时2关闭蜂鸣器( 2 )LED自检框图开始第一位LED的b、c、g、h段依次亮 灭显示查表第一位LED显示“-1.”查表第二、三、四、五位LEDa、b、c、d、e、f、g、h段依次动态亮第二、三、四、五位LED依次动态显示1、2、3、4、5、6、7、8、9第一、二、三、四、五位LED 显示“-1.8.8.8.8.”( 3 ) 键盘自检框图3. 温度检测器主程序框图、子程序框图主程序流程图开始初始化数据采样数字滤波排序,求平均值标度变换代码转BCD码代码送入缓冲区LED显示数据采样开始开高位门 采集高8位关闭8位门关高位门储存与OF作与运算得有效高4位采样次数到了吗?储存N 移动指针 Y结束开低8位门 采集低8位 数据排序,由小到大开始数据首地址给R0A=R0?移动指针取高4位给A移动指针NY移动指针取另一个数的高4位0取低8位给A比较高4位AR0?移动指针N取另一个数的低8位Y变换高4位比较AR0NN取低8位Y交换移动指针移动指针取另一个数的低8位取高4位移动指针交换储存移动指针移动指针交换取另一个数的低4位循环次数到了吗? 结束 求平均值开始A清0把第2个数首地址给R0CLR C地址加1MOV A,R0存储ADD A,R低位相加地址加1地址加1CLR C高四位RRCRRC一次除2低8位RRCRRC一次除2移动指针循环次数到了吗?高位相加ADD A,RNY结束存储循环次数到了吗?N Y 开始代码转BCD码CLR CR2,R3清零R1为低字节屏蔽R4高4位CLR CR4带进位左循环一位R2加1十进制调整设置内循环初值R5=80HR3加0十进制调整R1为0吗?R2加1 十进制调整R3 加0十进制调整NR5为0吗?YR4为高字节R4为0吗?R4为0吗?储存R2,R3结束 代码送入缓冲区开始取转码高字节屏蔽高字节低4位R1为高字节高4位把负号给R2R1是否为0?MOV R3 存高字节低4位MOV R4 存低字节高4位MOV R5 存低字节低4位MOV R2 存高字节高4位MOV R3 存高字节低4位MOV R4 存低字节高4位MOV R5 存低字节低4位结束LED显示开始灭显示设置外循环初值R1=150设置内循环初值R0=250查表LED第五位显示低字节低4位R0是否为0?NLED第四位显示低字节高4位YLED第三位显示高字节低4位结束LED第二位显示高字节高4位R0是否为0?NY四、程序清单:=蜂鸣器自检程序=3MOV R2,#0CCHBEEP: SETB P2.3 CALL DELAY2 CLR P2.3 CALL DELAY1 SETB P2.3 CALL DELAY2 CLR P2.3 CALL DELAY3 SETB P2.3 CALL DELAY1 CLR P2.3 CALL DELAY1 DJNZ R2,BEEP H1:SETB P2.3 SJMP H1DELAY1: ORG 1000H MOV R6,#0FFHLOOP1: MOV R7,#0FFH NOPLOOP2: DJNZ R7,LOOP2 DJNZ R6,LOOP1 DELAY2: MOV R6,#0FHLOOP3: MOV R7,#2FH NOPLOOP4: DJNZ R7,LOOP4 DJNZ R6,LOOP3 DELAY3: MOV R6,#03FHLOOP5: MOV R7,#0F8H NOPLOOP6: DJNZ R7,LOOP6 DJNZ R6,LOOP5 RET=LED自检程序=zj0:mov r2,#04h lcall display0 ;调用display0 djnz r2, ks14 ;控制循环两次后跳到ks14 sjmp zj0ks14: mov p0,#0h ;P0口清零 lcall sel8 mov p1,#0ffh ;P1口置一,做串口 mov a,p1 ;读取P1口的值 cjne a,#0ffh,kkk1 ;判断是否有值输入 sjmp ks14 lcall delay10 ;延时10mskkk1:mov p1,#0ffh ;判断是否扔有值输入 mov a,p1 cjne a,#0ffh,kkk2 sjmp ks14kkk2:lcall sel7 ;关245 cpl a ;将A取反 mov r7,#40h ;设置循环次数zj14: lcall display24 ;调用display24 djnz r7,ks14 ;判断循环是否结束 sjmp zj14display24:mov p0,a ;将A的值送到P0显示 lcall sel2 ;选择LED第二位显示 lcall d5ms ;延时5ms lcall sel3;选择LED第三位显示 lcall d5ms lcall sel4;选择LED第四位显示 lcall d5ms lcall sel5;选择LED第五位显示 lcall delay10;延时10ms retdisplay0:mov r1,#08h;设置循环初值loop1:mov a,#01h;使段亮 mov p0,a lcall sel1 lcall d5ms mov a,#80h;使段亮 mov p0,a lcall sel1 lcall d5ms mov a,#08h;使段亮 mov p0,a lcall sel1 lcall d5ms mov a,#04h;使段亮 mov p0,a lcall sel1 lcall delay10 djnz r1,loop1 retd5ms: mov r6,#0ah;延时5msloop4:mov r7,#0f8h noploop5:djnz r7,loop5 djnz r6,loop4 retdelay10:mov r6,#14h;延时10ms loop6:mov r7,#0f8h nop loop7:djnz r7,loop7 djnz r6,loop6 retsel1:clr p2.5;选择led第一位 clr p2.6 clr p2.7 retsel2:clr p2.5;选择led第二位 clr p2.6 setb p2.7 retsel3:clr p2.5;选择led第三位 setb p2.6 clr p2.7 retsel4:clr p2.5;选择led第四位 setb p2.6 setb p2.7 retsel5:setb p2.5;选择led第五位 clr p2.6 clr p2.7 retsel7:setb p2.5;关245 setb p2.6 clr p2.7 retsel8:setb p2.5;开245 setb p2.6 setb p2.7 ret=键盘自检程序(先亮后响)=kr245: mov p0,#0 ;P0口清零 lcall sel8 ;打开245 mov p1,#0ffh ;给P1口置一 mov A,p1 ;读取P1口值 anl A,#0fh ;屏蔽高四位 cjne A,#0fh,qw1 ;键值与15比较 sjmp kr245qw1: lcall delay10 ;延时10MS在判断有键按下 mov p1,#0ffh mov A,p1 anl A,#0fh cjne A,#0fh,qw2;有键按下则跳到qw2 sjmp kr245 qw2:lcall sel7 ;关245 cjne A,#0fh,q1 ;判断是否有键按下 sjmp kr245 q1: setb p2.3 ;将p2.3置一,蜂鸣器不响 cjne A,#0dh,q2;键值与13比较,不等跳到q2 sjmp k2 q2: jc q3 ;c1到q3 ,否则跳到k1 sjmp k1 q3: cjne A,#07h,k3 ;键值与7比较,不等跳到k3 ;否则跳到k4 sjmp k4 k1:lcall d1 ;调用d1和延时程序后跳回kr245 lcall xhyan sjmp kr245 k2: lcall d1 ;调用d1、d2和延时程序后跳回kr24 lcall d2 lcall xhyan sjmp kr245 k3: lcall d1 ;调用d1、d2、d3和延时程序后跳回kr24 lcall d2 lcall d3 lcall xhyan sjmp kr245 k4: lcall d1 lcall d2 lcall d3 lcall d4 lcall xhyan ljmp kr245beepss:clr p2.3 ;使蜂鸣器响260ms lcall delay setb p2.3 ; 停260ms lcall delay retxhyan: mov r0,#8h ;延时2sloop1: lcall delay djnz r0,loop1 ret delay:mov r6,#0ffh ;延时260ms loop2:mov r7,#0ffh loop3:djnz r7,loop3 djnz r6,loop2 mov r6,#0ffh loop4:mov r7,#0ffh loop5:djnz r7,loop5 djnz r6,loop4 retdelay10:mov r6,#14h ;延时10ms loop6:mov r7,#0f8h nop loop7:djnz r7,loop7 djnz r6,loop6 retsel3: clr p2.7 ;选中LED第三位 setb p2.6 clr p2.5 ret sel7: clr p2.7 ;关245 setb p2.6 setb p2.5 ret sel8: setb p2.7 ;开245 setb p2.6 setb p2.5 ret d1:lcall sel3 ;显示“1”,并响一声 mov p0,#0ch lcall beepss ret d2:lcall sel3;显示“2”,并响一声 mov p0,#0b6h lcall beepss ret d3:lcall sel3 ;显示“3”,并响一声 mov p0,#9eh lcall beepss ret d4:lcall sel3 ;显示“4”,并响一声 mov p0,#0cch lcall beepss ret=温度监视器程序=*温度监视器主程序*adcygw1 equ 30horg 0000hsjmp mainorg 0003hsjmp int0org 000bhsjmp displayorg 0060hmian: mov tmod,#02hmov th0,#00hmov tl0,#00h mov r0,#adcygw1mov r1,#6setb tr0setb et0 setb ea setb ex0lcall sjpx;调用数据排序子程序lcall qpj;调用求平均子程序lcall bdbh;调用标度变换子程序lcall bmdh;调用代码变换子程序lcall dmshc;调用代码送缓存子程序sjmp main;*,采集数据(外部中断子程序);*int0:push a;保护现场 push psw clr rs1 setb rs0 clr ea;关中断 clr p2.0;采集高8位 clr p2.1 mov a,p1 setb p2.1 anl a,#0fh;屏蔽高8位中前四位 mov r0,a;储存 inc r0 clr p2.2;采集低8位 mov a,p1 setb p2.2 setb p2.0 mov r0,a inc r0 dec r1 cjne r1,#0,next1 mov r0,#30h mov r1,#6next1:setb ea;开中断 pop psw;恢复现场 pop a reti;*数据排序(由小到大);*sjpx:setb rs1;选1区 clr rs0 mov r5,#5;外循环次数stpx2:mov r0,#30h;第一个数的高8位地址 mov r4,#5;内循环次数stpx1:mov a,r0 mov r1,#30h inc r0 inc r0cmp1:subb,a,r0;比较高8位 jc cmp2;前者不大于后者,跳到CMP2 mov a,r1;前者高8位给A xch a,r0;交换高8位 mov r0,a;后者高8位送到前者高8位地址中 dec r0 mov a,r0;前者的低8位给A mov 50h,r0;前者低8位地址送到50H单元 mov r1,50h;前者低8位地址给R1 inc r0 inc r0 xch a,r0;交换低8位 mov 50h,a;后者低8位给50H地址单元 mov r1,50h;后者低8位送到前者低8位地址中 inc r0 sjmp endpx1cmp2:mov a,r1;前者低8位给A mov 50h,r0;后者低8位给50H单元 cjne a,50h,endpx1;前者不大于也不等于后者,即小于 cmp3:dec r0 mov a,r0;前者低8位给A mov 50h,r0;前者低8位地址送到50H单元 mov r1,50h inc r0 inc r0 clr c subb a,r0比较低8位 jc endpx1;小于跳转 mov a,r1;前者低8位给A xch a,r0;交换低8位 mov e1,a;后者低8位送到前者低8位地址中 dec r0 mov a,r0;后者高8位给A mov 50h,r0;后者高8位地址送到50H单元 mov r1,50h;后者高8位地址送R1中 dec r0 decr0 xch a,r0;交换高8位 mov r1,a;前者高8位送到后者低8位地址单元中 inc r0 inc r0endpx1:djnz r4,stpx1 djnz r5,stpx2 ret;*去大去小求平均;*degsgw equ 32hdegsgw equ 33hsjzhgw equ 3chsjzhdw equ 3dhqpj:clr rs0;选2区 setb rs1; mov a,#0 mov r0,#degsgw mov r1,#4 mov r2,#degsgw inc r0 mov r3,#degsgw;前者低8位stqh:clr c inc r0 inc r0 mova,r0;后者的低8位给A add a,r3;低8位相加 mov r3,a;低8位之和存R3 dec r0 mov a,r0;后者高8位给A addc a,r2;高8位相加 mov r2,a;高8位之和存R2 inc r0 djnz r1,stqh mov r4,#2 mov 3ch,r2;数据高8位之和存3CH单元 mov 3dh,r3;数据低8位之和存3DH单元qpjyw:mov a,r2 clr c rrc a;移高位 mov r2,a mov a,r3 rrc a;移低位 mov r3,a djnz r4,qpjyw mov 3eh,r2;平均数高位存3EH单元 mov 3fh,r3;平均数低位存3FH单元 ret*标度变换*pjsdw equ 3fhpjsgw equ 3ehk1 equ 26h;k=2.1483,扩大256倍,为226Hk2 equ 2hbdbh:setb rs0 setb rs1 mov r0,#pjsdw mov r4,pjsdw mov r1,#0;存低字节 mov r2,#0存中字节 mov r3,#0;存高字节 clr csetb1:mov a,r1 add a,#k1;低字节相加 mov r1,a;低字节之和存R1 mov a,r2 addc a,#k2;中字节相加 mov r2,a;中字节存R2 mov a,r3 addc a,#0;高字节相加,捕捉进位 mov r3,a;高字节之和存R3 djnz r4,setb1 dec r0 mov a,r0 mov r5,a cjne r5,#0,nextbd1;判断平均数高位是否为0 sjmp nextbd2nextbd1:clr c rlc a;左移平均数高8位 mov r5,a;外循环次数stbd11:mov r6,80h;内循环次数 stbd2:mov a,r1 clr c add a,#k1;低字节相加 mov r1,a;低字节之和存R1 mov a,r2 addc a,#k2;中字节相加 mov r2,a;中字节之和存R2 mov a,r3 addca,#0;高字节相加 mov r3,a;高字节之和存R3 djnz r6,stbd2 djnz r5,stbd11nextbd2:mov r7,#8stbdyw:clr c rrc a ;高字节带进位循环左移1位 mov r3,a mov a,r4 rrc a;中字节带进位循环左移1位 mov r2,a mov a,r1 rrc a;低字节带进位循环左移1位 mov r1,a djnz r7,stbdyw clr c mov a,r1 subb a,#20h;b1=800=320H,低字节相减 mov 41h,a mov a,r2 subb a,#3h;高字节相减 mov 40h,a ret;*BCD码转换;*bssw equ 41hbdgw equ 40hdmbh: setb rs0;选3区 setb rs1; mov r2,#0 mov r3,#0 mov r1,bddw;标度变换低位为循环次数 clr cstdm1: mov a,r2 add a,#1 da a mov r2,a mov a,r3 addc a,#0 da a mov r3,a djnz r1,stdn1 mov r4,bdgw mov a,r4 cjne r4,#0,enddm sjmp nextdmnextdm:anl a,#0fh clr c rlc a;标度变换高位带进位循环左移1位 mov r4,a;外循环次数stdmi1:mov r5,80h;内循环次数stdmi:mov a,r2 add a,#1 da a mov r2,a mov a,r3 addc a,#0 da a mov r3,a djnz r5,stdmi djnz r4,stdmi1enddm: mov 42h,r2;存标度变换的高位 mov 43h,r3;存标度变换的低位 ret*代码送入缓存区*bdgw1 equ 40hdmgw equ 42hdmdw equ 43hdmshc: setb rs0;选3区 setb rs1; mov a,bdgw1 anl a,#0f0h ;屏蔽标度变换的高字节中的低4位 mov r1,a cjne r1,#0,fscl;判断是否为0,即正负zscl: mov r6,dmgw mov a,r6 anl a,#0f0h ;屏蔽代码变换的高字节的低4位 swap a ;r2存高字节的高4位 mov r2,a mov a,r6 anl a,#0fh ;屏蔽代码变换的高字节的高4位 mov r3,a ;r3存高字节的低4位 mov r6,dmdw mov a,r6 anl a,#0f0h ;屏蔽代码变换的低字节的低4位 swap a ;r4存低字节的高4位 mov r4,a mov a,r6 anl a,#0fh ;屏蔽代码变换的低字节的高4位 mov r5,a;r5存低字节的低4位 sjmp endshcfscl: mov r2,#0bh ;送负号代码 mov r6,dmgw mov a,r6 anl a,#0fh ;屏蔽代码变换高字节高4位 mov r3,a ;r3存高字节的低4位 mov r6,dmdw mov a,r6 anl a,#0f0h ;屏蔽代码变换低字节低4位 swap a ;r4存低字节的高4位 mov r4,a mov a,r6 anl a,#0fh ;屏蔽代码变换的低字节的高4位 mov r5,a ;r5存低字节的低4位 sjmp endshcendshc: mov 44h,r2 ;代码高字节高4位送44h单元 mov 45h,r3 ;代码高字节低4位送45h单元 mov 46h,r4 ;代码低字节高4位送46h单元 mov 47h,r5 ;代码低字节低4位送47h单元 ret;*LED代码显示;*display: clr ea push psw setb rs1 ; 选2区 clr rs0 push A setb eamov r2,#01hmov r0,#44hxs1:mov A,r0 inc r0bc: mov dptr,#tab movc A,A+dptr mov p0,A mov A,r2 jb acc.1,l2 jb acc.2,l3 jb acc.3,l4 jb acc.4,l5ll: acall yans mov p0,#0;灭显示rll:mov A,r2 rl A mov r2,A jb acc.5,xs1 clr ea pop A pop psw setb ea retil2: lcall sel2 ajmp lll3: lcall sel3 ajmp lll4: lcall sel4 ajmp lll5: lcall sel5 ajmp llyans: mov r6,#28hloop1:mov r7,#34hloop2:djnz r7,loop2 djnz r6,loop1 rettab: DB 7eh,0ch,0b6h,9eh,0cch,0dah,0fah,0eh,0feh,0deh,0h,80hled:mov dptr,#tabsel5:clr p2.7 clr p2.6 setb p2.5 retsel4:setb p2.7 setb p2.6 clr p2.5 retsel3:clr p2.7 setb p2.6 clr p2.5 retsel2:setb p2.7 clr p2.6 clr p2.5 ret5、 设计体会(一)在这两个星期的单片机实训中,我对理论知识,和在实践中的编程的方法上,学到了很多!在发现问题、分析问题、解决问题的能力上有了很大的提高,编程的基本本方法,编程的思想得到了增强!也锻炼了怎样凝聚一个团队的力量,发挥每个人的优势,完成最好的配合,实现共同的目标 这是一门实训课,我必须把所学的知识转成眼前实实在在的东西,并能满足“客户”的基本要求。所以,对于每一项任务,我必须清楚主要是什么,哪里加特色。怎样做既合理又能使“用户”的更满意。在这过程中,我们总是以“先主干后枝叶”的去完成,最后整个小组站在用户的角度去讨论,发现问题,分析问题解决问题。在具体的编程过程中,尤其是最后的任务,程序相对比较大,不能把整个程序编出来再去调试,然后就是对某个功能,先编程,后调试,然后再加入到总的程序里!在某个功能可以实现,但是在加到主程序的时候又出现了错误!作为一个团队,我们共同去修改,商量怎么去实现! 在这过程中很明显的暴露了我的不足。对于程序编程语言的不了解,和软件的不熟悉,造成实现程序功能的难度加大。在整个过程中我们这一组都是各尽所能,对于任务都是发挥自己的优势,然后相互讲解,互相学习。对于复杂的问题,各抒己见,相互讨论,共同解决。让我充分的体会到了团队合作的力量,了解到要做一个巨大的工程,不是一个人所能完成的,发挥自己的所长,和团队配合,实现最终的目的! 在整个实训过程,各个指导老师对我们的指导,为我们提供了很大的帮助!很感谢指导老师们!(二)通过本次单片机实训让我认识到将理论知识应用到实际中去的重要意义,同时也意识到自己在这方面能力的欠缺。首先我们在蜂鸣器自检程序中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件智能AI教学课件
- 广东会计初级自考试题及答案
- 历年护理考试题及答案
- 礼仪学堂考试题及答案
- 乐器辅助考试题及答案
- 广东房屋构造自考试题及答案
- 康复基层考试题及答案
- 钼钨冶炼辅料制备工适应性考核试卷及答案
- 信息安全管理员职业考核试卷及答案
- 混凝土浇筑工数字化技能考核试卷及答案
- 火灾调查第四章-火灾痕迹物证课件
- 大型医院耗材管理SPD系统
- 精选提高脑卒中偏瘫患者良肢位摆放的正确率品管圈讲义
- 大金龙纯电动车hvcm及bms外网协议
- GB/T 8295-2008天然橡胶和胶乳铜含量的测定光度法
- GB/T 19960.1-2005风力发电机组第1部分:通用技术条件
- 生产作业管理讲义
- 二年级上册《树之歌》优秀课件
- 锅炉安全技术规程
- 初中音乐《快乐的女战士》《水草舞》课件
- 易制毒化学品岗位责任制度
评论
0/150
提交评论