




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能控制设计大赛 2010/5/12所在单位: 华南理工大学自动化学院 09一班作者: 09 自动化 王艺霖 09 自动化 杨开宇 09 自动化 程世杰密码门禁系统目录设计任务及要求 4摘要 5一、 方案论证与比较 61. 密码锁部分 62. 控制器部分 73. 计数系统部分 74. 直流电源部分 85. 门轴旋转角度判定部分 8二、 系统的具体设计及实现 91. 系统总框图 92. 硬件设计101) 门禁物理模型设计构造 10A. 模型顶部卡槽11B. 电机控制器12C. 内筒及单向齿设计132) 4*4键盘设计133) 报警装置设计 144) 电磁继电器 155) 光电对管 156) LCD屏 167) 单片机、晶振及复位按键 173. 软件设计1) 主程序部分 172) 基础类函数 183) 功能函数 19三、 测试、结果及分析 201. 基本功能部分 202. 发挥功能部分 21参考文献 22附录一、完整的系统原理图 23附录二、完整的系统源代码 24密码门禁系统论文一、 设计任务设计一个密码门禁系统。对人流量进行统计,并用密码形式限制使用人员。门禁形式如图所示,为转盘加4个把手。要求参赛队自行制作,实现门禁关闭时,转盘锁死;开启时可被每个通行人员推行转动90度角,并记录人数。其系统的示意图如图一所示:图一 门禁俯视图二、 设计要求1. 基本要求:1) 要求使用者在入口处通过键盘输入密码,当密码正确时,允许通过;2) 当密码正确允许人员通过时,开始计时;当超过设定时间,门禁自动再次关闭,禁止通行,需要重新输入密码;3) 能对一天内通过门禁的人数及时间进行统计并显示。2. 扩展要求:1) 使用非实体按键(如触摸屏和光感按键)进行输入;2) 当输入密码错误次数超过3次时,声光报警;3) 门禁自动关闭时间可修改;4) 其他创新。 摘要在现代社会中,密码门禁系统不仅应用在科研工厂领域,其功用也逐渐体现在其他方面。随着人们生活质量的提高和安全意识的加强,酒店商场甚至一些家庭中都出现了密码门禁的影子,密码门禁将更好的服务于人们的日常生活生产,给予人们更多的安全保障。目前,单片机控制器在从生活工具到工业应用的各个领域,都起到了很大的作用。对于密码门禁的要求,主要是保证其安全系数高,使用灵活度较好,保密性高,能够较为准确地达到设定的要求。本密码门禁系统设计采用电磁继电器控制器进行门锁的控制,通过大量物理结构的优化,使得密码门的开闭更为合理、便捷,也使得一些原本复杂的计数统计工作,在物理模型的帮助下,变得更为简单、精确。AT89S52单片机作为整个系统的核心部分,联系了各个功能区的工作和信息反馈,并最终对统计数据进行合理处理,呈递给液晶屏显示。通过4*4矩阵键盘录入密码等信息,同时可查看全部共六大模块的功能并操作。对人数、通过时间等的记录,是通过LM339光电对管进行测量的,它能很方便、快捷地测量出所需数据,同时,组合安装起来较为简便。对于各功能模块,最终统计数据的显示,我们是通过1602LCD液晶屏来显现的,它具有直观、清晰、显示信息量大的的特点。该系统的优越性在于它的物理硬件结构功能较为强大,很大程度上辅助了软件部分的功能,同时,诸多的性能优化,也使得这一系统功能更为全面,更附和实际情况的需求。关键字:AT89S52单片机,LM339光电对管,1602液晶屏,物理结构,性能优化。一、 方案论证与比较1. 密码锁部分方案一:采用数字电路控制。采用数字密码锁电路的好处就是设计简单。用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,共设了9个用户输入键,其中只有4个是有效的密码按键,其它的都是干扰按键,若按下干扰键,键盘输入电路自动清零,原先输入的密码无效,需要重新输入;如果用户输入密码的时间超过40秒(一般情况下,用户不会超过40秒,若用户觉得不便,还可以修改)电路将报警80秒,若电路连续报警三次,电路将锁定键盘5分钟,防止他人的非法操作。电路由两大部分组成:密码锁电路和备用电源(UPS),其中设置UPS电源是为了防止因为停电造成的密码锁电路失效,使用户免遭麻烦。密码锁电路包含:键盘输入、密码修改、密码检测、开锁电路、执行电路、报警电路、键盘输入次数锁定电路。方案二:采用一种是用以AT89S52为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。2. 控制器部分 方案一:电磁铁控制器 采用自制电磁铁控制器控制门栓的开闭,通过单片机供给电磁铁控制器电路一个电信号,使该电路导通,吸起作为门栓的铁片,从而实现对密码门的开闭控制。 该系统的好处在于电路结构较为简单,控制电路开闭的变量很少,便于调整和控制。方案二:电机控制器采用电机代替电磁铁控制门栓的开闭,电机工作时,门栓被带离中心套筒的卡槽处,并压缩外壁弹簧;电机停止转动,门栓则被弹簧弹回中心套筒卡槽中。通过比较以上两种方案,方案一自制电磁铁的铁芯等材料不易选购,且很难达到满意的情况,而方案二用电机取代,制作更为简便,且效果十分显著。所以我们采用了第二种方案。3. 计数系统部分方案一:在密码门中心套筒中安装光电管,每转过90度角记录一次时间和人数。优点:能很方便的记录人数和时间信息;缺点:无法避免门转过90度角而人未过门的情况,导致记录错误。方案二:通过LM339光电对管与一对金属触片同时控制,实现了门开闭状态反馈系统与记录人数、时间的系统单独进行,联合判断。只有当人转动转门并过了光电对管,才会进行计数统计。通过比较以上两种方案,方案二较之方案一更为严谨周密,避免了门开人未过的情况影响最后计数结果,且系统结构更为清晰,制作简便。所以我们选择了第二种方案。4. 直流电源部分方案一:通过单片机直接输出一个高电位给电机控制器系统,使得电机带动弹簧销子弹开,从而使得门锁解开。缺点:单片机输出的高电位并不稳定,且达不到电机正常工作所需电压,从而使整个门锁控制电路效果不明显。方案二:对电机控制器系统外接一独立电源,通过单片机控制该电源的导通与否,从而控制电机的正常工作。通过比较以上两种方案,方案二能提供较为稳定的工作电压,使电机控制器系统能正常运行,方便操作,所以我们选择了第二种方案。5. 门轴旋转角度判定部分 方案一:通过一对光电对管测量门轴的旋转角度,从而控制电机的开关,以控制门把是否每次均能转到90度位置。 缺点:系统较为复杂,制作难度高,且精确度不高。 方案二:在门把活动轨迹上每90度设置一个凹槽,同时在每两个凹槽之间,制作一个凸型轨道,通过此设计,使得门把在较小外力作用下,即可精确的滑动至指定位置,不会出现任何偏差。 通过比较以上两种方案,方案二通过简单的物理模型,实现了方案一需通过光电对管、电机等复杂原件组合才能实现的结果,设计制作更简便,可操作性更强,且精确度优于前者,所以我们选择了第二种方案。二、 系统的具体设计及实现1. 系统总框图图二 系统各部件关系图 本密码门禁系统以AT89S52单片机为系统核心,配合LCD显示屏、声光报警系统、键盘输入系统以及电磁铁控制器系统,很好的实现了对于密码门的开关,过门人数、时间的统计,同时,还实现了对于密码锁系统的修改、数据的查询等功能。如图二所示。2. 硬件设计1) 门禁物理模型设计构造 图2-1 物理模型总外观 图2-3 外筒剖切 图2-2 物理模型拆解图A. 模型顶部细节图2-4 模型顶部细节图2-5 门把转动电位变化如图,4个同样的凸起坡度,使得门把被推过一个小角度后自己滑回下一个正位。同时,凹槽的设计,使得门把手能在门锁状态下,精确地停留在90度角位置,保证了系统的稳定性。B. 电机控制器 图2-5 电机控制器结构 当对直流电机供电时,电机带动弹簧销子摊开,压缩弹簧;当电机停止转动的时候,弹簧将销子弹回,卡入内筒的固定孔内,从而将门锁死。 图2-6 电机控制器C. 内筒及单向齿设计 D.图2-7 内筒及单向齿2) 4*4键盘设计 在本系统中,针对用户调整各项参数时的需要,我们采用了4*4键盘,只占用8个IO口(P1口)就实现了16个按键,使操作界面更加人性化,操作过程更加简单、方便。键盘的原理图如下图2-8所示。图2-8 矩阵键盘3) 报警装置设计 报警装置由LED灯和蜂鸣器组成。当在规定时间内连续输错三次,则会输出警告提示,同时蜂鸣器报警。期间,无法继续进行任何操作,待警报结束,需重新操作。 图2-9 报警装置(LED灯、蜂鸣器)4) 电磁继电器 当密码输入正确,控制电路会给予电磁控制器系统一个高电位,使电机开始工作,弹起弹簧销子,从而解开锁门状态。图2-10 电磁继电器5) 光电对管 本装置的一对光电对管是用以记录过门人数以及过门时间,它仅在门把手不处于90度正位时才会检测,由光电门和门把手下的触片电位共同判断是否有人经过,使结果更加准确。图2-11 光电对管6) LCD屏 本系统采用1602LCD液晶显示屏作为显示部分,当把需要显示内容发送给液晶显示器,其便会自动显示出来。液晶模块和单片机相连接,如图2-12所示。图2-12 LCD液晶显示屏 7) 单片机、晶振及复位按键 图2-13 单片机、晶振及复位按键3. 软件设计 1) 全局变量(不只这些,这里只是特别声明出来便于后面阅读):asstick, asstickswitch, wrongtimes2) 主程序部分 回显时间:调用回显函数来回显系统内部的时钟菜单选择:开门 查看记录 修改开门延迟 改开门密码 查看触发报警的人 改管理员密码开门:调用检测输入密码函数(传参为常规密码),若返回为密码错误,则重新执行检测输入密码函数(传参为常规密码),如果正确,则调用电磁铁控制函数。查看记录:调用查看记录函数修改开门后延迟:调用检测输入密码函数(传参为常规密码),若返回为密码错误,则重新执行检测输入密码函数(传参为常规密码),如果返回为密码正确,则调用修改延迟函数,如果键入为空,则回显错误信息,并重新执行修改延迟函数,如果键入有效,则修改延迟变量的值。改开门密码:调用检测输入密码函数(传参为管理员密码),如果错误则重新执行检测输入密码函数(传参为管理员密码),如果正确则调用修改密码函数(传参为修改常规密码),若返回值为两次输入不同,则重新调用修改密码函数(传参为修改常规密码)。查看触发报警的人:调用查看触发报警记录函数改管理员密码:调用检测输入密码函数(传参为管理员密码),如果错误则重新执行检测输入密码函数(传参为管理员密码),如果正确则调用修改密码函数(传参为修改管理员密码),若返回值为两次输入不同,则重新调用修改密码函数(传参为修改管理员密码)。3) 基础类函数 键盘扫描函数:用于扫描轻触矩阵键盘哪个键被按下,并返回键位代码回显函数:用于在液晶屏上回显需要的字符主时钟:位于计时器中断0中,用于系统内部时钟的进位计算副计时器:位于计时器中断0中,中断发生时,asstick自减1次,并判断asstick是否为零,为零则把asstickswitch置为0;延迟函数:用于简单的系统延迟报警函数:用于在输错3次密码后声光报警读入字符串函数:含有一个参数(标记字符串长度),用于读入指定长度的字符串输入4) 功能函数 检测输入密码函数扫描键盘函数“退格”删除一个值“数字键”键入一个值“跳出”回主程序“确定”进入下一步读取管理员密码或普通密码,存为标准值核对标准值与输入值YNAsstickswitch=1 ?YNWrongtimes+Asstick=60Asstickswitch=1Wrongtimes=3?Y调用报警程序Wrongtimes=0Asstickswitch=0N返回标记输入正确的值Asstickswitch=0Wrongtimes=0返回标记输入错误的值电磁铁控制函数电磁铁通电asstick=用户设定值asstickswitch=1把手处在正位且asstickswitch=1NY电磁铁断电把手不在正位YN电磁铁探测到人YN记下人数,时间结束三、 测试、结果及分析 1. 基本功能部分 要求实现功能测试结果使用者在入口处通过键盘输入密码,当密码正确时,允许通过使用者密码输入正确,门锁解除,允许通过当密码正确允许人员通过时,开始计时;当超过设定时间,门禁自动再次关闭,禁止通行,需要重新输入密码;当通过时间超过门禁设定时间时,门自动锁死,禁止继续通过,并要求重新输入密码对一天内通过门禁的人数及时间进行统计并显示能实现对一天内通过人数和相应时间的统计并显示出来2. 发挥功能部分 发挥部分功能是否实现了所描述当输入密码错误次数超过3次时,声光报警已实现,并记录出错误发生的时间信息,在统计中显示使用非实体按键(如触摸屏和光感按键)进行输入未实现门禁自动关闭时间可修改已实现,且在修改之前,设定了需要在修改之前,核对管理员密码,增加了系统的安全性发挥功能部分(创新)设定了独立于用户密码的管理员权限,输入正确管理员密码后,可对时钟、延迟时间等模块进行修改操作已实现人数记录与门把位置判定独立进行,避免了“门锁人未过“的情况,完善了统计数据已实现门轴单向齿设计,使得门把只能单向移动,无法因用力过小,而使得门轴倒退由于手边的加工条件过于简陋,未能加工出成品,但理论和结构框架已经成型,模拟可行设置了意外断电情况发生时,系统自动接通备用电源电路,继续维持门禁系统的正常工作已实现功能,但由于配备蓄电池开支较大,且意义不大,因此用其它电池替代演示设计了任何操作达到事先设定时间未完成,自动跳出重新操作的保护措施已实现设计了错误报警信息的最终统计和查询功能已实现参考文献:MCS-51单片机原理及应用实例 清华大学出版社 南建辉 等 编著新编MCS-51单片机应用设计 哈尔滨工业大学出版社 张毅刚 等 编著 完整的系统原理图完整的系统源代码#include #include /=头文件=#define uint unsigned int #define uchar unsigned char/=宏定义=typedef structuchar ID;uchar when3;whoenter;/=结构定义=sbit lcden=P34; /在注释后面的“P34”是我们做的电路板上的IO口 sbit lcdrs=P35;sbit magnet=P31; /电磁铁的继电器sbit chupian=P32; /把手下面的触片sbit guangdian=P33; /光电sbit led=P36 ; /灯sbit beep=P37; /蜂鸣/键盘p1是51板 p2是我们板/=端口定义=void delay(uint z); /定义延迟函数uchar thekey(); /定义键盘扫描程序void flashline(uchar where); /定义闪烁的光标void alarm(); /定义报警程序uchar cin(uchar length); /定义一个读入输入东西的函数;/=独立函数定义=uchar checkthepassword(char admin); /定义检测输入密码程序 返回0是没有输入密码 1是普通输错 2是输错3次 3是输对uchar changethecode(char admin); /定义更换密码程序;/返回0是修改成功 /1是修改失败void changeopendoordelay(); /定义更换开门延迟程序;void settime(); /定义修改时间程序void electromagnet(); /定义电磁铁函数void checkdata(); /定义回显过去多少人的函数void checkdatawrong(); /定义错误的人/=功能函数定义=void write_command(uchar command);/是被显示函数调用的,主函数不会用到(除了初始化之外)void write_datanum(uchar datanum);/是被显示函数调用的,主函数不会用到(初始化不会用到)void display(uchar a,uchar b,uchar c);/显示函数void timer(); /钟表计算并回显变动位函数void displaythetime(); /全部时间回显函数void initializeall(); /初始化程序/=回显函数=uchar code zod=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x7e,0x7f,0x23,0x20;/分别是“0,1,2,3,4,5,6,7,8,9,:(10),向右的箭头(11),向左的箭头(12),#(13),空(14)”/=字符表=uchar time6; /从0到5依次是0_小时十,1_小时,2_分钟十,3_分钟,4_秒钟十,5_秒钟uchar maintick; /定义主时钟的中断计数量uint asstick; /定义副时钟的中断计数量uchar asstickswitch; /定义副时钟的开关char wrongtimes; /记录输错密码的次数uchar dooropendelay; /定义开门后延迟uchar password8; /定义密码储存数组uchar adminpassword8; /定义管理员密码uchar getcode10=20,20,20,20,20,20,20,20,20,20; /把待输入的全赋为不可能出现的20uchar flash; /定义控制光标闪烁的量uchar coderesult; /定义密码检验结果返回值uchar people; /定义人数变量uchar wrongpeople; /定义报警的人数char overtime; /闲置时间uint cow; /奇异变量whoenter idata who20;whoenter idata whowrong10;/=变量定义=void main() /主程序 initializeall(); /初始化函数display(1,0,0); /显示timewhile(1)displaythetime(); /全部时间回显 if(thekey()!=20) /扫描键盘程序delay(10);/消抖if(thekey()!=20)switch(thekey() /按键功能对应程序/=按1开门=case 1: entercodeagain:while(thekey()!=20);coderesult=checkthepassword(0) ; /调用检测输入密码程序if(coderesult=1)/当是普通输错密码时goto entercodeagain;/重新输入一次if(coderesult=3)/当输入正确时write_command(0x01);/显示welcomewrite_command(0x80+0x04);/write_datanum(W);/write_datanum(E);/write_datanum(L);/write_datanum(C);/write_datanum(O);/write_datanum(M);/write_datanum(E);/write_datanum(!);/显示welcomeelectromagnet();display(1,0,0); /显示timebreak;/=按4改密码=case 4:entercodeagainnn:while(thekey()!=20);coderesult=checkthepassword(1) ; /调用检测输入密码程序if(coderesult=1)/当是普通输错密码时goto entercodeagainnn;/重新输入一次if(coderesult=3)/当输入正确时tryagain:if(changethecode(0)=1)goto tryagain; display(1,0,0); /显示timebreak;/=按3改开门后延迟=case 3:entercodeagainn:while(thekey()!=20);coderesult=checkthepassword(0) ; /调用检测输入密码程序if(coderesult=1)/当是普通输错密码时goto entercodeagainn;/重新输入一次if(coderesult=3)/当输入正确时display(5,0,0); /提示输入新延迟changeopendoordelay(); display(1,0,0); /显示timebreak;/=按2查看过去的人=case 2:write_command(0x01);write_command(0x80+0x05);write_datanum(R);write_datanum(E);write_datanum(C);write_datanum(O);write_datanum(R);write_datanum(D); /第一行显示record,清空第二行while(thekey()!=20);checkdata();display(1,0,0); /显示timebreak;/=按5查看报警的人=case 5:write_command(0x01);write_command(0x80+0x02);write_datanum(A);write_datanum(L);write_datanum(A);write_datanum(R);write_datanum(M);write_datanum( ); write_datanum(R);write_datanum(E);write_datanum(C);write_datanum(O);write_datanum(R);write_datanum(D); /第一行显示record,清空第二行while(thekey()!=20);checkdatawrong();display(1,0,0); /显示timebreak;/=按22两秒改时间 4秒改管理员密码=case 22:cow=0;while(thekey()!=20)delay(1);cow+;if(cow=2000 & cow 4000)write_command(0x01);write_command(0x80+0x04);write_datanum(S);write_datanum(E);write_datanum(T);write_datanum( );write_datanum(T);write_datanum(I);write_datanum(M);write_datanum(E); /第一行显示修改时间,清空第二行while(thekey()!=20);settime();display(1,0,0); /显示timebreak;while(thekey()!=20);void initializeall() /初始化程序maintick=0; /主时间中断次数记录量清零asstick=0; /副时间中断次数记录量清零asstickswitch=0; /副时钟声明无效dooropendelay=5; /开门后延迟默认5秒overtime=10; /任何输入位置闲置10秒跳出people=0; /人数置零wrongpeople=0;chupian=1; /触片给高电位 (51开发板上实验的时候给低)magnet=0; /电磁继电器给低电位guangdian=1; /测试的时候给1for(wrongtimes=7;wrongtimes=0;wrongtimes-) /密码初始化,借用了一个变量来循环passwordwrongtimes=wrongtimes+1;adminpasswordwrongtimes=wrongtimes +2;wrongtimes=0; /输错密码次数清零time5=2; /设置初始时间time4=5;time3=5;time2=5;time1=3;time0=1;flash=0;/给闪烁控制一个初量EA=1; /开启中断TMOD=0x11; /设置计时器模式TH0=60; /主计时器高8位初始TL0=176; /主计时器低8位初始PT0=1; /计时器高优先ET0=1; /计时器中断开启TR0=1; /主计时器启动lcden=0; /屏幕初始化开始write_command(0x38); /write_command(0x0e); /lcden=0; /write_command(0x01); /write_command(0x38); /write_command(0x0c); /write_command(0x06); /write_command(0x02); /屏幕初始化结束void flashline(uchar where)/光标程序if(flash = 1)display(0,where,0x5f);elsedisplay(0,where,0x20);void alarm() /报警程序wrongpeople+;whowrongwrongpeople-1.ID=wrongpeople;for(cow=0;cow=2;cow+)whowrongwrongpeople-1.whencow=timecow*2*10+timecow*2+1;write_command(0x01);write_command(0x80+0x43);write_datanum(W);write_datanum(A);write_datanum(R);write_datanum(N);write_datanum(I);write_datanum(N);write_datanum(G);write_datanum(!);write_datanum(!);write_datanum(!);led=0;beep=0;delay(5000);led=1;beep=1;uchar thekey() /键盘扫描程序uchar temp;uchar lopee;uchar witchkey;P2=0xef;for(lopee=0;lopee=3;lopee+)temp=P2;if(temp&0x0f)!=0x0f)temp=temp&0x0f;switch(temp)case 0x0e:witchkey=lopee*3+1;break;case 0x0d:witchkey=lopee*3+2;break;case 0x0b:witchkey=lopee*3+3;break;case 0x07:witchkey=lopee*3+13;break;break;elsewitchkey=20;P2=_crol_(P2,1);if(witchkey=10)witchkey=0;return witchkey;uchar cin(uchar length) /读入字符串uchar inwhich=1; /定义当前输入哪一位for(inwhich=0;inwhich=9;inwhich+) /把待输入的全赋为不可能出现的20getcodeinwhich=20;inwhich=1;overtime=10; /闲置超时预设while(1) /读入输的东西if(overtime=0) /超时30秒则跳出return 0;if(inwhich !=(length+1) /焦点在第length位之前才显示光标flashline(inwhich);if(thekey()!=20) /扫描键盘程序delay(10);/消抖if(thekey()!=20)overtime=10; /按任意键唤醒if(thekey()=9)&(inwhich1) /按下退格键后且焦点大于1时的反映inwhich-; /焦点前移一格flash=1; /光标定为显示出来getcode(inwhich-1)=20; /把空位值赋给待输入值display(0,inwhich,0x20);/显示出空display(0,inwhich+1,0x20);if(thekey()=13)while(thekey()!=20);return 0; /跳出if(thekey()=12)while(thekey()!=20);return 1; /确定while(thekey()!=20);void timeeeee () interrupt 1 /主时间中断TH0=60;TL0=176;maintick+;asstick-;if(maintick%10=0)flash=!flash;if(maintick=20)overtime-;maintick=0;time5+;timer();if(asstick=0&asstickswitch=1) /当副计时器计时到0时间后asstickswitch=0; /副计时器声明为无效void timer() /timer()开始=if(time5=10)time5=0;time4+;if(time4=6)time4=0;time3+;if(time3=10)time3=0;time2+;if(time2=6)time2=0;time1+;if(time1=10)time1=0;time0+;if(time1=4&time0=2)time1=0;time0=0; /timer()结束=void displaythetime() /打印全部时间函数display(0,5,zodtime0);display(0,6,zodtime1);display(0,7,zod10);display(0,8,zodtime2);display(0,9,zodtime3);display(0,10,zod10);display(0,11,zodtime4);display(0,12,zodtime5);void delay(uint z) /延迟程序uint x,y;for(x=z;x0;x-)for(y=123;y0;y-);void display(uchar a,uchar b,uchar c)/显示程序switch(a)case 1:write_com
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时间的朋友课件
- 公司员工入职培训
- 中医优势病种培训
- 计算机培训汇报
- 钢琴启蒙素养课件
- 时装效果图技法课件
- 二零二五年度电子产品店长合作协议
- 二零二五年专业服务器电脑硬件维护及性能优化合同
- 2025版文化创意产业借款合同文本与格式要求
- 2025版低碳节能商品房预售合同书
- 2025年内河船员考试(主推进动力装置2103·一类三管轮)历年参考题库含答案详解(5套)
- 公司不交社保合作协议书
- 城市轨道交通工程监测技术
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
- 建设工地每日消杀记录表
- 硫酸氢钠(酸式硫酸钠)的理化性质及危险特性表
- 工程项目管理实施方案(5篇)
- 建筑施工应急处置明白卡
- 环境污染刑事案件司法解释学习课件
- 信息技术教学德育融合
- Peppa+Pig第1234季字幕整理
评论
0/150
提交评论