




已阅读5页,还剩51页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能电梯控制器-饶全成2013-2014学年度第二学期电子技术基础课程设计-智能电梯控制器设计院 系: 控制科学与工程系 专 业: 测控 班 级: 1001 姓 名: 学 号: 指导教师: 目录1.设计方案21)设计要求22)设计要求分析22.系统总体设计21)电梯控制器的系统框图22)状态机设计23)模块设计实现方案2电梯响应过程2暂停状态2开门问题2提前关门和延迟关门2外部信息指示设计23.具体实现21)分频模块22)按键检测模块23)扩展板上的数码管段码控制模块24)数码管显示25)状态转换模块26)顶层模块27)其他模块24.一些比较难实现的地方21)请求信号清除和记忆22)状态机的改变25.仿真波形及说明26.课程设计总结21)设计过程记录22)课程设计心得总结2致 谢2附 录21)引脚分配22)工程代码23)扩展板的电路21. 设计方案1) 设计要求 楼层的高度大于等于6,根据降低运行成本的原则,设计并实现一个以方向优先电梯调度算法。要求能够使用按键模拟对电梯的控制,为了便于观察,将电梯所在的楼层(16)用数码管显示出来,将电梯的上下楼状态(上,下,开门,关门,静止)用发光管或数码管显示出来,并且能够实现对电梯实现锁定禁止运行。 画出电梯控制器的状态机,写出状态编码方案。 用Verilog语言对设计进行描述,并下载到实验板上调试成功,适当增加比较符合现实的控制限制。 写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。 并谈谈此次实验的收获、感想及建议2) 设计要求分析根据课设的题目可得出六层电梯控制器将实现的功能:(1)每层电梯入口处设有上下请求按钮(一楼只有上请求,6楼只有下请求),电梯内设有顾客到达层次的停站请求开关。(2)电梯入口处设有电梯当前所处楼层指示装置及电梯运行模式(上升或下降)指示装置。(3)电梯每2秒升(降)一层楼。 (4)电梯到达有停站请求的楼层,经过1秒电梯门打开,开门指示灯亮,开门3秒后,电梯进入关门中状态,提示乘客可以按下延迟关门按键,此时指示灯闪烁,2秒后电梯门关闭,电梯继续进行,直至执行完最后一个请求信号后停留在当前层。 (5)能记忆电梯内外所有请求,并按照电梯运行规则按顺序响应,每个请求信号保留至执行后消除。 (6)电梯运行规则(方向优先电梯调度算法):当电梯处于上升模式时,只响应比电梯所在位置高的上楼请求信号,由下而上逐个执行,直到最后一个上楼请求执行完毕;如果高层有下楼请求,则直接升到由下楼请求的最高层,然后进入下降模式。当电梯处于下降模式时则与上升模式相反。(7)电梯初始状态为一楼等待状态。2. 系统总体设计1) 电梯控制器的系统框图Figure 1系统方框图2) 状态机设计Figure 2状态转换图此状态机是后期结合代码的具体实现及前期提出的初步方案进行综合得到的结果。能比较好地反映电梯的状态转换。但是由于实际判断状态转换时还要结合上升或下降的标志,所以有些转换条件表述的不是很清楚。可以结合代码中给出的条件得到。3) 模块设计实现方案电梯响应过程复位后,尚无请求,电梯处于等待状态。如果有用户发出请求,则电梯响应,上升至用户所在楼层(初如时电梯在第1层)。响应的过程是:判断请求是否符合规则,如果符合,则将请求保存在上升请求寄存器(up request)中,由等待状态转入上升状态,然后启动运行计时器,2秒钟后,到达上一层,如果此层被用户请求,则转入等待状态,自动打开电梯门,再上升一层;否则,转入连续上升状态,将运行计时器清零,然后返回上升状态,重新启动运行计时器,再上升一层同,直至到达用户所在楼层。下降的过程同理。暂停状态逻辑判断最为复杂。首先是判断下一步状态,是继续上升,继续下降,还是一直等待,抑或从上升转入下降,从下降转入上升。这些都是通过综合6层楼外的上升、下降请求,电梯内的要到达楼层的请求和电梯上一状态是上升还是下降得出的,较为复杂。开门问题电梯刚到达某一层时,必定是用户准备出梯,或者是准备入梯,电梯自动开门,启动开门计时器,3秒后关门;如果电梯在过去一段时间内处于等待状态,现在用户发出请求,则必须判断用户的位置,如果用户和电梯在同一层,则必须立即开门使用户入梯,否则,直接到达用户所在楼层再开门。提前关门和延迟关门电梯内部设有提前关门和延迟关门按钮,用户可以根据实际情况,发出请求。而这两项功能是通过对开门计时器的计数控制器控制实现的。即分别是使计时器提前结束计时过程和重新开始计时。外部信息指示设计为了最大限度地模仿真实电梯的情况,结合DE0板和扩展板,设计的按键和显示方案如下:Figure 3电梯内设计Figure 4电梯外设计3. 具体实现在实际编写代码的实现过程中,遇到了很多困难。总共写了两个版本,第一个版本写完的时候下载到DE0板子上以后,现象与设想的完全不要样,经过分析,发现是我的状态机转换设计得很不合理,且转换状态的时候,还要根据时钟来转换。后来发现这完全行不通。所以再结着找资料。发现了状态机转换的三段式写法。最后终于设计完成了整体方案。再者,第一次的时候,为了求快,我没有按照一个模块一个模块地调试,而是想全部写完代码再去进行调试。因此第二个版本的时候,我严格按照分模块设计的思想,首先解决了按键请求的问题。接下来就很好完成了。因为第一个版本的很多判断思想可以用得着。先附上几张工程实际实现的图片:Figure 5工程实际运行情况最后再来分步介绍各个独立的模块。1) 分频模块分频模块很简单,由系统时钟50MHz分出1KHz,10Hz,1Hz。具体实现很简单。在这时就不多讲了。2) 按键检测模块按键检测模块是调用老师提供的扩展板的测试工程里的模块。得到扩展板上的按键值。再通过按键值来判断。具体实现是在一个进程里面,列出敏感变量如下,并加上1KHz的时钟:always (posedge _1kHz or negedge reset or posedge floor_key1 or posedge floor_key2 or posedge floor_key3or posedge floor_key4 or posedge floor_key5 or posedge floor_key6 or negedge quick_key or negedge delay_keyor posedge up_key1 or posedge up_key2 or posedge up_key3 or posedge up_key4 or posedge up_key5 or posedge down_key2 or posedge down_key3 or posedge down_key4 or posedge down_key5 or posedge down_key6)即当按键或拨码开关(实际电梯是按键,故在此将其处理为按键)按下时,会触发always语句块,进入到相应的case里,将相应的信号寄存器置1。如对上下请求按键进行检测的case语句:case (key_value) 4d1: begin /1楼上up_request1 = 1b1; end 4d2: begin /2楼上up_request2 = 1b1; end 4d3: begin /3楼上up_request3 = 1b1; end 4d4: begin /4楼上up_request4 = 1b1; end 4d5: begin /5楼上up_request5 = 1b1; end 4d6: begin /6楼上(实际无此按钮) end 4d7: begin /1楼下(实际无此按钮) end 4d8: begin /1楼下down_request2 = 1b1; end 4d9: begin /1楼下down_request3 = 1b1; end 4d10: begin /1楼下down_request4 = 1b1; end 4d11: begin /1楼下down_request5 = 1b1; end 4d12: begin /1楼上down_request6 = 1b1; enddefault: begin endendcase由于楼层请求信号寄存器和上下请求信号都会随电梯运行状态的改变而发生改变,也就是就,当电梯响应了该请求后,相应的信号寄存器就会清零,而根据方向优先运行的电梯,还应该涉及到信号的记忆问题(比如梯处于上升状态时,此时有一楼层按下下请求,电梯就不会响应此请求,此时就要记忆这个请求信号)。另外一个问题就是,对同一个寄存器变量,要想改变它的值就必须要在同一个进程里面进行,因此如果确实需要在另一个进程里面改变前一个进程里面的寄存器的值,就要在另一个进程里给出一个“改变”信号,然后在此进程中进行判断,如果检测到此信号,则进行相应的操作。这是一个难点,之前都没有注意到这个问题,后来在写代码的过程中才发现这个问题。我也是在老师的提醒下才想到解决办法的!按键检测的其他部分就要参看后面所附的代码了!3) 扩展板上的数码管段码控制模块扩展板上有8个数码管,采用的是动态扫描的方式实现显示功能。硬件电路如下:Figure 6扩展板数码管电路图模块定义的端口如下:module seg_ctrl(clk, op_cl_flag, up_dn_flag, present_floor, seg_code_1, seg_code_2, seg_code_3, seg_code_4, seg_code_5, seg_code_6, seg_code_7, seg_code_8);为了让数码管能“静态显示”,利用人眼的余辉,时钟采用1KHz,分别将当前电梯所处的楼层,电梯上升、下降、停止的状态和电梯门开门、关门中、关门的状态传进来,再根据相应的状态,给数码管送不同的段码。而真正起显示作用的模块,则是直接调用老师提供的测试模块的代码。下面是我设计的指示电梯不同状态的且在数码管上显示的标志。4) 数码管显示Figure 7电梯数码管显示信息方案5) 状态转换模块状态转换模块相对而言比较难实现。电梯在运行过程中所涉及的状态过多,难以区分,电梯处在每一层时情况会怎样,很难实现。我在第一次开始写代码的时候,就是因为没有分好电梯的各个状态。导致最后自己思维混乱!当然如果有一个比较好的算法,就显得比较简单了。在我这个工程里面共用了8种状态,当然这也是经过多次修改才最后形成的。由于涉及到状态机的转换,所以也有些复杂。一开始我没有查阅相关资料,直接根据一般经验来设计。用了时钟的上升沿来作为判断状态转换的过程。后来下载到板上去实现的时候一直不能出现预想的现象!后来经过查找状态机的相关资料,才发现状态机设计有一个标准的三段式!这才有了眉目!具体实现的过程如下:/定义的状态parameter STOP= 7b0000001,PAUSE= 7b0000010,UP= 7b0000100,DOWN= 7b0001000,OPEN_DOOR= 7b0010000,CLOSING_DOOR= 7b0100000,CLOSED_DOOR = 7b1000000;parameter STOP_FLAG = 3b001,UP_FLAG= 3b010,DOWN_FLAG= 3b100;parameter CLOSED_FLAG = 2b00,CLOSING_FLAG= 2b01,OPEN_FLAG= 2b10;/三段状态机-第一段always (posedge _1kHz or negedge reset)begin if(reset) state = STOP;else state 6b000000)next_state = OPEN_DOOR;else if(all_request present_floor) /有上升请求beginnext_state = UP;endelse if(all_request 6b000000)next_state = OPEN_DOOR;else if(all_request present_floor) /有上升请求begin next_state = UP;endelse next_state = PAUSE;endendUP: /上或过程中,若有上升请求或楼层请求,则转到暂停状态;否则转入继续上或状态begin en_cnt_ud = HI; /启动计时器if(cnt_ud = 1d1) /2秒上升一层begin/在第六层且有请求,则开门if(present_floor = 6b100000 & all_request6 = 1)begin next_state = OPEN_DOOR;end/当前层有请求else if(desti_floor & present_floor ) | (1b0, up_request & present_floor) 6b000000)beginnext_state = OPEN_DOOR;/en_clr_up = HI;end/上层有请求else if(all_request present_floor)begin next_state = UP;endelse if(down_request, 1b0 & present_floor) | (desti_floor & present_floor) 6b000000)beginnext_state = OPEN_DOOR;/en_clr_down = HI;endelse next_state = PAUSE; endelse next_state = UP;end DOWN:beginen_cnt_ud = HI; /启动计时器/在第1层且有请求,则开门if(present_floor = 6b000001 & all_request1 = 1)begin next_state = OPEN_DOOR;endelse if(cnt_ud = 1d1) /2秒上升一层begin/当前层有请楼层请求,或有下降请求if(desti_floor & present_floor ) | (down_request, 1b0 & present_floor) 6b000000)beginnext_state = OPEN_DOOR;/en_clr_down = HI;end/在当前层之下有请求else if(all_request % present_floor != 0)beginnext_state = DOWN;end/只有上升请求else if(1b0, up_request & present_floor) | (desti_floor & present_floor) 6b000000)beginnext_state = OPEN_DOOR;/en_clr_up = HI;endelse next_state = PAUSE; endelse next_state = DOWN;endOPEN_DOOR:beginen_cnt_door = HI; /启动开关门计时器en_clr_down = HI;en_clr_up = HI; /可以清除上升或楼层信号 if(cnt_door 2d3)begincase(delay_request, quick_request)2b10: next_state = OPEN_DOOR; /按下延迟关门,则进入开门状态,优先于关门2b01: next_state = CLOSED_DOOR;default:beginendendcaseendelse if(cnt_door = 2d3) /3秒钟后进入关门中状态next_state = CLOSING_DOOR; /关门中endCLOSING_DOOR:beginen_cnt_cloing = HI;en_closing_led = HI;if(cnt_cloing = 2d2)next_state = CLOSED_DOOR;else if(cnt_cloing 2d2)begincase(delay_request, quick_request)2b10: next_state = OPEN_DOOR; /按下延迟关门,则进入开门状态,优先于关门2b01: next_state = CLOSED_DOOR;default:beginendendcaseendendCLOSED_DOOR:beginen_cnt_closed_door =HI;if(cnt_closed_door= 2d2)next_state = PAUSE; /转入暂停状态else next_state = CLOSED_DOOR;enddefault:beginendendcaseend/三段状态机-第三段always (posedge _10Hz or negedge reset)begin if(reset)beginop_cl_flag = CLOSED_FLAG;up_dn_flag = STOP_FLAG;endelsebegincase(next_state)STOP: begin up_dn_flag = STOP_FLAG; /状态标志为停止op_cl_flag = CLOSED_FLAG;endPAUSE:beginup_dn_flag = up_dn_flag;op_cl_flag = op_cl_flag;endUP: begin up_dn_flag = UP_FLAG;endDOWN:beginup_dn_flag = DOWN_FLAG;endOPEN_DOOR:beginop_cl_flag = OPEN_FLAG; /开门状态endCLOSING_DOOR:begin op_cl_flag = CLOSING_FLAG; /关门中状态,指示灯指示,便于提示endCLOSED_DOOR:beginop_cl_flag = CLOSED_FLAG;enddefault:begin endendcaseendend在此进程的第二段,先初始化相关的使能,即让他们不使能(比如电梯开关门计时器)。然后在第二段中间进行相关的判断,当符合相关的条件时(比如当要在当前楼层开门时,即进入开门状态后),要使能相关的计时器,当计时时间到的时候(在个时候是在第段做相关的判断),就要转换状态,而一旦状态转换就要重新从开头的地方进入进程,这时相关的使能又被清0。而在第三段,则又是一个非阻塞型的进程,是以电梯的下一个状态作为判断条件,当在某一个状态时,则相关的指示电梯状态的寄存器就会发生相应的变化,而这些变化就会实时地对电梯当前的运行状态进行指示。达到仿真的目的。6) 顶层模块module elevator_ctrl(closing_led, segout_data, com, quick_led, delay_led, clk_50M, reset, floor_key,floor_key_led, col, row, ud_key_interrupt, ud_key_led, quick_key, delay_key, door_state_seg, updn_state_seg, floor_seg);下面介绍一下主模块中定义的各个端口:outputclosing_led; /关门时的信号提示output 7:0 segout_data, com; /扩展板上的数码管的段码,公共端output quick_led, delay_led; /按下提前关门和延时关门按键会进行指示的LED灯input clk_50M; /系统时钟input reset; /系统复位信号input 6:1 floor_key; /主板上的楼层拨码开关output 6:1 floor_key_led; /按下楼层按键时相应的LED端口input 5:0 col; /扩展板上的矩阵键盘的列output 1:0 row; /扩展板上的矩阵键盘的行output ud_key_interrupt; /上、下请求按键检测到信号output 6:1 ud_key_led; /1-6楼请求按键,按下时,对应的灯点亮input quick_key; /提前关门按钮input delay_key; /延迟关门按钮output 6:0 door_state_seg; /指示门状态的数码管output 6:0 updn_state_seg; /指示电梯上下运行的状态output 6:0 floor_seg; /电梯当前楼层的指示由于本次电梯控制器的按键较多,更采取的相量的设计思想。即上升、下降按键都用的是5维的相量,因为1楼没有下键,6楼没有上按键。且上升采用的是5:1,下降采用的是5:2,而楼层采用的则是6:1相量这些都是为了和实际楼层的情况相对应。便于后面的代码写作。还有很多类似的思想,即把这些类似的信号组合起来,这样会更直观和方便。7) 其他模块其他模块(其实是主模块中的很多进程)大都是计时器模块,比如对电梯上升速度进行计时(每2秒计一层),电梯开门3秒后进入关门中状态always (posedge _1Hz or negedge reset)begin if(reset)begin cnt_ud = 0;present_floor = 6b000001;endelse if(en_cnt_ud)begin if(cnt_ud = 1d1)begincnt_ud = 0;case(up_dn_flag)UP_FLAG: beginpresent_floor = (present_floor 1);endDOWN_FLAG: beginpresent_floor 1);enddefault:begin endendcaseendelse cnt_ud = cnt_ud + 1d1;endelse if(en_cnt_ud)cnt_ud = 0;end现在来分析一下上面的进程(其他一些相似的进程原理大致一样):上面的这个进程以时钟和复位按键作为触发信号,每当时钟上升沿或复位键下降沿到来的时候,都会进入进程。此时如果是按下了复位键,则执行一些清0的操作,即把楼层初始化为6b000001,把上升下降计时器清0。如果复位键没有按下,则检测上升下降计时器是否使能,如果使能则开始计数,且计时周期为2。否则不计时。其他一些进程在此就不再赘述了。可以参考后面的代码。4. 一些比较难实现的地方1) 请求信号清除和记忆电梯请求信号在响应后,应该及时进行清除。防止重复响应!另一方面,电梯运行规则是方向优先,所以存在电梯在到达某一楼层时该楼层的请求信号没有被响应(比如,电梯处于上升状态时,某一层有下降请求,而比该层更高的楼层也有请求,这时就不会响应该层的请求),这个时候就要对请求信号进行记忆。这个是整个硬件课程设计的核心!是最难攻克的一个难关。我主要采取了以下的思想:分别将上升、下降、楼层请求分别存放到5位、5位、6位的寄存器中,然后对三个请求信号相或:assign all_request = desti_floor | (1b0, up_request | down_request, 1b0); /综合所有的请求,主要用于判断暂停状态到停止状态且由于上升、下降请求寄存器只有5位,因此都要拼接一位0。在状态机第二段中进行判断,如果开门,则要清除信号。在样的话,如上面提出的例子的情况就会避免,因为在这种情况下电梯不会进入开门状态。这就要在状态转换上下功夫了。desti_floor = (desti_floor & (not_present_floor); /清除楼层请求信号down_request = (down_request & (not_present_floor6:2); /清除上升请求up_request 6b000000)next_state = OPEN_DOOR;else if(all_request present_floor) /有上升请求beginnext_state = UP;endelse if(all_request 6b000000)next_state = OPEN_DOOR;else if(all_request present_floor) /有上升请求begin next_state = UP;endelse next_state = PAUSE;endend处于PAUSE状态时:1. 如果没有任何请求(即上升、下降、楼层请求的相或),则转入停止状态。2. 如果状态标示为上升或停止时,如果当前层有请求,则下一状态为开门;如果有上升请求(all_request present_floor),则下一状态为上升状态;如果有下降请求(all_request present_floor)则转入下降状态。3. 如果状态标示为下降时,如果当前层有请求,则下一状态为开门。如果有下降请求(all_request present_floor),则下一状态为上升状态;当处于上升或下降状态时的情况就不进行细致分析了。可以参看后面附上的代码。5. 仿真波形及说明为了仿真波形能更清晰地显现,我采用了ModelSim仿真工具。这样更容易控制时序。由于硬件方面我使用的是DE0板加扩展板的方式,有些因素不利于仿真。其中的上下楼层按键为矩阵键盘,仿真起来难以控制。因此仿真时我将其改为模仿按键的方式,即共有10个按键(5个上请求,5个下请求);第二点,由于DE0板子上的时钟为50MHz,也不利于仿真,故我将分频部分作了修改:直接将50MHz改成1KHz,其他时钟,比如1Hz和10Hz我也作了相应的修改。(作了修改的代码,我将在后面附上完整代码)首先来看一下我的测试文件主代码部分:initialbegin/发送部分/本程序模块中所有的按键都是下降沿有效#10 test_reset = 1; /开始时刻是弹起的#10 test_clk_50M = 0;#10 test_floor_key = 6b000000; #10 test_down_key = 5b00000;#10 test_up_key = 5b00000;/开始提前关门,延迟关门都为未按下#10 test_quick_key = 1;#10 test_delay_key = 1;#10 test_reset = 0;#10 test_reset = 1;/仿真时的上下请求按键与楼层请求按键相同,都是上升沿#10 test_up_key = 5b00001; /1楼上升按键#10 test_up_key = 5b00000;#30 test_floor_key = 6b010000; /按下5楼楼层请求按键#10 test_floor_key = 6b000000; /松开按键#2000 test_down_key = 5b00010; /3楼按下请求#10 test_down_key = 5b00000;#15000 test_quick_key = 0; /按下提前关门按键#10 test_quick_key = 1;#2 test_down_key = 5b10000; /6楼按下请求#10 test_down_key = 5b00000;#15000 test_floor_key = 6b000001; /按下1楼楼层请求按键#10 test_floor_key = 6b000000; /松开按键#400000000 $finish;End实现的仿真时序是这样的:开始按下复位键,然后后依次按下1楼上升按键,5楼楼层请求按键,3楼下降请求按键,提前关门按键(此时电梯上升到5楼,且处于关门中状态),6楼下降请求按键,1楼楼层请求按键。根据电梯的方向优先运行规则,得到的理想波形(电梯的状态)应该是这样的:电梯先在1楼开门,关门中,关门;上升到5楼,开门,关门中,提前关门;上升到6楼,开门,关门中,关门;下降到3楼,开门,关门中,关门;下降到1楼,开门,关门中,关门。下面来分析一下仿真波形:Figure 8电梯到达1楼Figure 9电梯到达5楼Figure 10电梯到达6楼Figure 11电梯到达3楼Figure 12电梯到达1楼以上即为全部的仿真波形,为了便于观察,只有在第一张仿真图形中可以看到各端口信号。且从上到下的信号依次为:系统时钟信号,复位信号,目的楼层按键,提前关门,延迟关门按键,上升按键,下降按键,目的楼层信号寄存器,提前关门信号寄存器,延迟关门信号寄存器,上升请求寄存器,下降请求寄存器,当前楼层信号,门状态标志,电梯运行状态标志。可以看到,上述仿真波形与理想中的波形符合得很好。达到设计要求:方向优先,记忆未响应的信号,提前和延迟关门等附加功能。6. 课程设计总结1) 设计过程记录这次设计的过程真是“一波三折”啊!刚开始的时候,由于急着完成,操之过急。抢着设计出了第一个方案,然后也没有仔细考虑清楚,就匆匆开始动手写代码,当然很快就写完了。编译也通过了,最后下载到板子上去,傻眼了!现象完全与设想的不一样,接下来就是各种改了!但是由于工程过于庞大,状态转换的条件过多,各个模块也是设计地不合理。最后是一团乱麻。没办法,只得再去找相关的资料。最后找到一篇与本次课设相关程度很高的文档。终于发现是我的状态机设计地不合理,其实状态转换是有一个标准的格式的,这些我都没注意到!经过重新设计,第二个方案也终于很快就完工了,而且由于有了第一次的教训,这次没有采取整体调试的方法。总得来说,第二次的实现过程比较地顺利。首先是调好了检测按键这部分,接下来又对状态机转换这部分做了优化。再没有像第一次那样把电梯当前所处的楼层作为判断条件,我采取了更加智能的算法。这样的话,电梯的层数也不只限于6层了。在主体设计完成的情况下,接下来就是研究扩展板了,对着测试程序。也很快就完成了数码管动态显示的相关代码。而且是一次成功!相当有成就感!2) 课程设计心得总结总结这次课设,最大的收获是做任何事都要先考虑好方案。一定不能操作过急,把每个环节的过程都要考虑清楚。实现的时候就可以事半功倍了!这样成功的概率也会很高!而且不管是多大的工程,都要一个模块一个模块地去实现。这也应该算是一个工程设计方面的常识了!另外的收获就是技术知识上的长进了!比如这次就完全弄明白了状态机设计的村准写法了。还有就是在一个模块中可以设计多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版光伏发电项目施工合同小型工程本文本
- 2025版动漫衍生品授权销售合同汇编
- 2025翻译公司知识产权保护保密协议
- 2025版无人机监控设备采购安装合同
- 二零二五年屋顶雨棚安装工程环保验收合同
- 二零二五年度挖掘机采购合同及维修配件供应范本
- 二零二五版旅游客车租赁与旅游文化交流协议
- 2025版绿色交通保障返租回报资金担保合同
- 2025版企业内退员工再就业培训及就业服务合同
- 2025版投影机采购及配套软件服务合同
- 混凝土配合比验证检验委托书模板
- 住房公积金投诉申请书
- 众辰变频器说明书3400
- 《世说新语》乘船 完整版课件
- 施工现场安全检查记录表(周)以及详细记录
- 《财务管理》课程教学实施方案
- 煤矿地质基础知识课件
- 检验科生物安全风险评估报告
- 西安市建设工程竣工验收备案表
- 大学体育四——啦啦操的教学设计
- 原始点疗法PPT课件
评论
0/150
提交评论