单片机课程设计(定时闹钟).doc_第1页
单片机课程设计(定时闹钟).doc_第2页
单片机课程设计(定时闹钟).doc_第3页
单片机课程设计(定时闹钟).doc_第4页
单片机课程设计(定时闹钟).doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大学单片机课程设计报告定时闹钟姓 名: 学 号: 专业班级: 指导老师: 所在学院: 年 月 日摘要21世纪是通信、信息、电力、材料、电子、能源以及控制技术大发展并相互交叉的时代,而机电一体化技术正是把机械、电子、控制技术和计算机技术相结合的综合技术。机电产品具有品种多、涉及的领域广等特点,自从微电子技术发展以来,单片机微型计算机因其体积小、价格低、性能灵活、开发方便的独特优势,在机电一体化产品的开发和控制中得到了最广泛的应有,而且越来越向纵深发展。从简单的机电一体化产品深入到数控系统、柔性化、智能化系统以及机器人系统等。本设计采用MCS-51单片机的8051设计!本设计是用单片机原理及其相关硬件的运用实现的定时闹钟。数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。显示部分采用六位一体的共阳极数码管,运用同相三态双向总线收发器74LS245作为输出驱动显示部件的元件。在编写程序的过程采用了定时程序和时间调整程序对称的编写方法。并且在时间的调整或设置过程中本设计采用了长按进行调时或调分的选择,短按是进行在选择后进行加1,每短按一次,该单位加1.调整完毕以后再次长按原设置键即可跳出设置循环,显示部分共阳极数码管显示正常走时的时间。但是该程序在硬件的仿真过程中有点瑕疵。在仿真开始时警示灯直接亮,必须通过闹钟定时键K2的闹钟设置以后时间才可以正常走时。之后可以进行时间的调整或闹钟的重新调整。目录1 概述31.1设计任务及目的3 1.2设计要求3 1.3设计背景及意义32 系统总体方案及硬件设计42.1 系统总体方案42.2 89C51时钟电路42.3 复位电路52.4 显示电路设计62.5 按键程序设计72.6 硬件选择设计73 软件设计83.1程序流程图83.2程序模块94 Proteus软件仿真125课程设计体会15参考文献15附1:源程序代码16附2:系统原理图241 概述1.1设计任务及目的1)设计一个定时闹钟2)熟悉和掌握单片机的内部结构和工作原理,了解单片机应用系统设计的基本方法和步骤3)掌握单片机仿真软件Proterus使用方法4)培养针对课设的需要寻找的能力5)掌握写课程设计的报告的方法1.2设计要求1)能显示时时分分秒秒2)能够设定定时时间,修改定时时间3)定时时间到能够发出报警声或启动继电器,从而控制电器的启停1.3设计背景及意义课程设计是在学完单片机原理及接口技术课程之后综合利用所学单片机知识完成一个单片机应用系统设计并在实验室实现,从而加深对单片机 软硬知识的理解,获得初步的应用经验,为走出校门从事单片机应用的相关工作打下基础。电子钟是以单片机为基础的数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人家庭,车站, 码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于单片机、数字集成电路的发展和石英晶体振荡器的广泛应用,使得电子钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义2 系统总体方案及硬件设计2.1系统总体方案1)本系统采用89C51芯片,有40个引脚40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。2)LED显示器接口及显示方式由于所有六位段选线都由一个I/O口控制,因此,在每一瞬间,所有LED显示块会显示相同的字符。要想每位显示不同的字符,就必须采用扫描方法轮流点亮每一位LED显示块,也就是字每一瞬间只点亮一位LED显示块。此刻,段选控制I/O输出相应字符段选码(字型码),而位选则控制I/O口在该显示位送入选通信号(共阴极送低电平,共阳极送高电平)。这样就可以保证各位LED显示块显示相应的字符。3)本系统采用6MHZ晶振,由P0口输出所要显示的字形段码,由P2口输出字位信号,低电平有效选中相应的LED,通过P1.7口驱动喇叭工作正常运行时,按开关S3调时间,S2是分、时的切换按钮,S1是调定时时间与显示时间的切换按钮。2.2 89C51的时钟电路89C51系列的单片机的时钟方式分为内部和外部方式。外部时钟方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现。本设计是采用内部时钟方式与外部DS1302时钟电路相结合。如图二图2.3 复位电路复位是单片微机的初始化操作,其主要功能是把PC初始化为0000H,使单片微机从0000H单元开始执行程序。除进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。RST引脚是复位信号的输入端。如图三设计复位电路应注意:1、复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上。2、在实际的应用系统中。有些外围芯片也需要复位。如果这些复位端的复位电平要求与单片机复位一样,则可以与之相连。3、在应用系统中,为了保证复位电路可靠地工作,常将R、C电路先接施密特电路,然后再接入单片机复位端和外围复位端。这样,当系统有多个复位端时,能保证可靠地同步复位。图2.4 显示电路设计采用LED制作电子时钟显示电路,具有非常新颖直观、经久耐用的特点。而选用单片机,通过编写程序来解决各种进制,却是非常的方便和可靠.LED显示电路:由N个LED显示块可构成N个LED显示器。N位LED显示器需要N根位选线和8*N根段选线。根据显示电路的不同,位选线和段选线的联接方式不同,实际所需要的位选线和段选线的根数也不一样。显示电路主要有静态显示和动态显示两种。1、静态显示电路LED显示器工作在静态显示时,其公共阳极(或阴极)接VCC或GND,一直处于显示有效状态,所以每一位的显示的内容必须由锁存器加以锁存,显示各位相互独立。静态显示时,LED的亮度高,容易控制,但功耗大,所需口线多。若显示位数增多,则静态显示方式很难适应。一般需要采用动态显示方式。2、动态显示电路 对于动态显示,一般将所有位的段选线的同名端联在一起,由一个8位I/O口控制,形成段选线的多位复用。而各位的公共阳极或公共阴极则分别由相应的I/O口线控制,实现各位形成段的分时选通,即同一时刻只有被选通位是相应的字符,而其他所有位都熄灭的。2.5 按键程序设计 但在实际当中,为了保证安全查询键值和响应,通常还要进行按键去抖和等待键释放的动作。 由于按键本身是机械开关,所以在触点闭合或断开的瞬间会出现电压抖动的现象。所以必须去除抖动的影响,才能正确识别被按下的键。 等待键释放:得到闭合键对应的键码以后,继续延时并判断按键状态,知道闭合的按键被释放,再根据键码转到相应的键处理子程序中2.6硬件选择设计1、电源:(1)VCC-芯片电源,接+5V;(2)VSS-接地端;2、时钟:XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。3、控制线:控制线共有4根。(1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲。(2)PSEN:外ROM读选通信号。(3)RST/VPD:复位/备用电源。RST(Reset)功能:复位信号输入端。VPD功能:在Vcc掉电情况下,接备用电源。(4)EA/Vpp:内外ROM选择/片内EPROM编程电源。EA功能:内外ROM选择端。Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。4、I/O线89C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。3 软件设计3.1程序流程图有关变量的初始化启动走时判设置闹铃时间否?设置闹铃时间显示刷新判时或分变化否?显示刷新判1秒到否?秒指示判是否到闹铃时间?闹铃延时YYYY合理的软件结构是设计出一个性能优良的单片机应用系统的基础,根据系统的定义,可以把整个工作分解为若干个相对独立的操作,采用模块化的设计方法,它具有便于设计和调试、容易完成、可供多个程序共享等优点。 该设计可以把整个源程序大致划分为主程序、定时器中断服务程序、扫描显示程序、时钟内容加1秒的程序、闹时设置程序、闹时服务程序等。下面是程序的主要流程图及相应的程序代码,源程序代码将放到附录里以供参考。3.2程序模块在该闹钟设计中设置了三个按键,K1既是正常走时/闹钟设置切换键又是闹钟响后的停止键,K2,K3分别是调整小时和分钟的按键,正常走时模式时校正时间,闹钟设置模式时修改定时时间。正常走时模式处在主程序中,采用循环结构形式;而闹钟设置模式处于子程序中,采用了顺序结构形式,所以需要先设置K3即分钟设置,后设置K2既小时设置,如果顺序颠倒可能会引起闹钟报时不准。闹钟设置模式时如果在秒的位置显示是“00”说明闹钟已关闭,是“11”则说明闹钟已开启,可以正常闹时。以下为主程序MainLoop:Jb AlarmSetKey, CheckMinuteKey; 闹时设置键按下了吗?没有则转去检测秒设置键 Call Delay; Jb AlarmSetKey,CheckMinuteKey; 按下的时间超过500ms吗? Setb ClockMode; 置为闹时设置模式 Call AlarmSet;CheckMinuteKey: Jb MinuteKey,CheckHourKey; 分设置键按下了吗?没有则转去检测小时设置键 Mov a,Minute Add a,#1; 如果按下则将分钟加一 十进制调整 Mov Minute,a; Cjne a,#3ch,NotOver1; 到60分钟了吗? Mov Minute,#0; 到60分钟则将分钟清0NotOver1: ; 以下等待按键释放及防抖动 Jnb MinuteKey,$CheckHourKey: Jb HourKey,CheckAlarm; 小时设置键按下了吗?没有则转去闹时状态检测 Mov a,Hour Add a,#1; 如果按下则将小时加1 Mov Hour,a Cjne a,#18h,NotOver2 Mov Hour,#0; 到24小时则将小时清0NotOver2: ; 以下等待按键释放及防抖动 Jnb HourKey,$CheckAlarm: ; Jnb AlarmTimeOn,ToReturn Call AlarmProcessToReturn: Ajmp MainLoop以下为闹时设置和服务子程序AlarmSet:Jnb AlarmSetKey,$ Call Delay; 等待“AlarmSetKey”键释放CheckArmMinuteKey: ;Jb MinuteKey,CheckArmHourKey; 分设置键按下了吗?没有则转去检测小时设置键 Setb AlarmOnOff Mov a,AlarmMinute Add a,#1; 如果按下则将分钟加1 Mov AlarmMinute,a; Cjne a,#3ch,ArmNotOver1; 到60分钟了吗? Mov AlarmMinute,#0; 到60分钟则将分钟清0ArmNotOver1: ; 以下等待按键释放及防抖动 Jnb MinuteKey,$CheckArmHourKey: Jb HourKey,AlarmSetEnd; 小时设置键按下了吗?没有则返回反复检测 Setb AlarmOnOff Mov a,AlarmHour Add a,#1; 如果按下则将小时加1 Mov AlarmHour,a Cjne a,#18h,ArmNotOver2 Mov AlarmHour,#0; 到24小时则将小时清0ArmNotOver2: ; 以下等待按键释放及防抖动 Jnb HourKey,$AlarmSetEnd: Jb AlarmSetKey,AlarmSet; 设置完毕了吗? Jnb AlarmSetKey,$; Clr ClockMode; 从设置模式转为走时模式 RetAlarmProcess: Clr RelayOut; Jnb AlarmSetKey,AlarmReturn; 停止闹时键(即闹时设置键)按下了吗? Jb AlarmSetKey,$; Clr AlarmOnOff Setb RelayOut; 如停止闹时键按下则停止闹时 Clr AlarmTimeOn;AlarmReturn: Ret4 Proteus软件仿真首先在Proteus的元件库中找到AT89C51以及相应的元件,按照硬件设计中的说明把各部件连接起来组成一个定时闹钟的硬件系统。然后把在伟福环境调试下生成的.HEX文件装入到AT89C51里,点击运行符号就可以使软硬件的配套设施在Proteus的环境下仿真实现,以检查是否存在错误。具体出现的错误及应对措施如下:1)当把程序生成的.HEX文件装入到AT89C51后运行时,显示模块出现数字显示错误,但是软硬件都没有错误,经检查是它们不配套,在修改扫描显示控制字而且改变硬件布线顺序后方显示正常。2)闹钟在定时时间到的时候没有出现报警声,但是经检查软硬件均没有出现错误,而且在这里也不会出现因为软硬件不配套而出现问题,并且把扬声器去掉换成发光二极管后,二极管可以根据要求明或者灭。在经过反复的检查以及实验后才知道应该使接扬声器的接口输出交流信号才可以使扬声器正常工作,经过反复比较决定运用软件产生一个交流的信号才解决了这个问题,但是还没有解决声音小的问题。3)在设计的初期把主程序设计成顺序结构,但是在运行的时候没有注意到这个问题,没有按照软件说明中的顺序操作,以至于闹钟闹时出现错误,在改变按下按键的顺序后闹钟工作正常。解决了这些问题后定时闹钟才算工作正常。下面是工作时的仿真图:时间运行时仿真 如图5图5调整时间仿真 如图6图6闹钟定时仿真 如图7 图7闹钟时间到的时候仿真 如图8 5课程设计体会单片机是一门应用性很强的学科,课程设计是培养我们综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。虽然在做课程设计以前已经系统的把单片机课本认真的学习了一下,但是在刚拿到设计任务书时还是有点一头雾水,不知道该从哪里下手。令人欣慰的是经过一周的学习,虽然过程很艰辛,但是总算实现了定时闹钟的功能,所有的努力都很值得。这一周的大部分时间都在研究程序怎么处理,在这个过程中加深了我对汇编语言命令的应用,而且也更加了解到软硬件配套的重要性。在设计的过程中不仅巩固了以前所学过的知识,加深了我对所学知识的理解,而且学到了很多在书本上所没有的知识。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。总之,通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。参考文献1 余发山.单片机原理及应用技术. 徐州:中国矿业大学出版社,20022康华光.数字电子技术. 北京: 高等教育出版社,20033吴金戌.8051单片机实践与应用. 北京: 清华大学出版社,20034楼然苗.51系列单片机设计实例. 北京: 北京航空航天出版社,20045黄仁欣.单片机原理及应用技术. 北京: 清华大学出版社, 20056方华.MCS-51单片机原理及设计. 重庆: 重庆大学出版社, 200 附一 源程序代码;;;变量地址分配;;DisplayBuffer equ 30h; 设置显示缓冲区的地址为30h-35h共6个字节OneSecondCounter equ 39h; 设置1秒计数器的地址Hour equ 3ah; 设置小时计数器的地址Minute equ 3bh; 设置分钟计数器的地址Second equ 3ch; 设置秒计数器的地址P1Val equ 3dh; 设置数码管位驱动值的地址ClockMode equ 20h.0; 模式(正常走时/闹时)设置寄存器地址 AlarmOnOff equ 20h.1; 闹钟开启/关闭标志, AlarmTimeOn equ 20h.2; 此位为1时表示闹时时间到DispHour equ 21h; 设置小时显示寄存器的地址DispMinute equ 22h; 设置分钟显示寄存器的地址DispSecond equ 23h; 设置秒显示寄存器的地址AlarmHour equ 2eh; 设置闹时小时计数器的地址AlarmMinute equ 2fh; 设置闹时分钟计数器的地址AlarmSetKey bit P3.2; 闹钟设置键MinuteKey bit P3.5; 定义分设置键HourKey bit P3.4; 定义小时设置键RelayOut equ P3.3; 定义发声输出引脚;;;程序开始;; ORG 00H Ajmp Reset; 程序开始 Org 0bh ; Timer0中断向量地址 Ajmp TimeInt; 跳到中断处理程序 Org 0020hReset: ; 以下为初始化程序,为各个变量赋初值 Mov sp ,#70h; Setb RelayOutMov OneSecondCounter, #125; Mov Hour, #00; Mov Minute,#00; Mov Second,#00; 设置上电时时钟显示的初值 Mov AlarmHour,#00; Mov AlarmMinute,#00; 设置上电时闹时时间的初值 ; Clr AlarmOnOff; CLr ClockMode; 正常走时模式 Clr AlarmTimeOn; Setb RelayOut; 清闹时输出;; Use Timer 0 Mode 1; 400us interrupt; Mov tmod, #00000001b; Mov th0, #0E3h; Mov tl0, #39h; Mov ie, #82h; 开全局中断 Setb tr0; 开定时中断;;; 以下为主程序;;MainLoop: Jb AlarmSetKey, CheckMinuteKey; 闹时设置键按下了吗?没有则转去检测秒设置键 ; Call Delay; Jb AlarmSetKey,CheckMinuteKey; 按下的时间超过500ms吗? Setb ClockMode; 置为闹时设置模式 Call AlarmSet;CheckMinuteKey: Jb MinuteKey,CheckHourKey; 分设置键按下了吗?没有则转去检测小时设置键 Mov a,Minute Add a,#1; 如果按下则将分钟加一 十进制调整 Mov Minute,a; Cjne a,#3ch,NotOver1; 到60分钟了吗? Mov Minute,#0; 到60分钟则将分钟清0NotOver1: ; 以下等待按键释放及防抖动 Jnb MinuteKey,$CheckHourKey: Jb HourKey,CheckAlarm; 小时设置键按下了吗?没有则转去闹时状态检测 Mov a,Hour Add a,#1; 如果按下则将小时加1 Mov Hour,a Cjne a,#18h,NotOver2 Mov Hour,#0; 到24小时则将小时清0NotOver2: ; 以下等待按键释放及防抖动 Jnb HourKey,$CheckAlarm: ; Jnb AlarmTimeOn,ToReturn Call AlarmProcessToReturn: Ajmp MainLoop;;; 定时器Timer0中断服务程序;;TimeInt: Mov th0,#0E3h; 重新加载定时参数 Mov tl0,#39h; Push acc Push psw; 保护累加器及程序状态字的内容 Setb rs0; 选择工作寄存器组1, Clr rs1; 保护原工作寄存器组(0组)的内容 Djnz OneSecondCounter,NotoneSecond; 中断了125次了吗?即够1秒了吗? Mov OneSecondCounter,#125; 如够1秒则重新设置OneSecondCounter计数器 Call Clock ; 调用将时钟内容加1秒的子程序 Call ConvertoBuffer ; 调用将时钟内容转换到显示缓冲区子程序NotoneSecond: Call ScanDisplay ; 调用扫描显示子程序 Pop psw Pop acc ; 恢复累加器及程序状态字的内容 Reti ; 中断返回;; 扫描显示子程序;ScanDisplay: Mov R1,#DisplayBuffer ; 指向显示数据首址 Mov R4,#11111110b ; 扫描控制字初值 PLAY: Mov A,R4 ; 扫描字放入A Mov P2,A ; 从P2口输出 Mov A,R1 ; 取显示数据到A Mov DPTR,#TAB ; 取段码表地址 Movc A,A+DPTR ; 查显示数据对应段码 Mov P0,A ; 段码放入P1口 LCALL Delay Inc R1 ; 指向下一地址 Mov A,R4 ; 扫描控制字放入A Jnb ACC.6,ENDOUT ; 扫到第六位时结束 Rl A ; A中数据循环左移 Mov R4,A ; 放回R5内 Ajmp PLAY ; 跳回PLAY循环 ENDOUT: SETB P2.7 ; 一次显示结束,P2口复位 Mov P0,#0FFH ; P0口复位 Ret ; 子程序返回 TAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH;共阳段码表 012 34567 89.=不亮;; 时钟内容加1秒的子程序;Clock: Mov a,Second; 将原秒值送入a Add a,#1; 加1秒 Mov Second,a Cjne a,#3cH,NotOverFlow; 够60秒了吗? Mov Second,#0; 够了则将秒值清0 ; Mov a,Minute Add a,#1 Mov Minute,a; 分钟加1 Cjne a,#3cH,NotOverFlow; 够60分了吗? Mov Minute,#0; 够了则将分值清0 ; Mov a,Hour Add a,#1 Mov Hour,a; 小时加1 Cjne a,#18H,NotOverFlow; 够24小时吗? Mov Hour,#0; 够了则将小时值清0NotOverFlow: Jnb AlarmOnOff,NotAlarm; 闹钟开启了吗?如没有开启则无需理会是否到闹时时间 Mov a,Second Jnz NotAlarm; 秒为零吗? Mov a,Minute Cjne a,AlarmMinute,NotAlarm; 时间分钟值和闹时设置分钟值相等吗? Mov a,Hour Cjne a,AlarmHour,NotAlarm; 时间小时值和闹时设置小时值相等吗? Setb AlarmTimeOn; 到了闹时时间则将“闹时时间到”标志设为1NotAlarm: Ret ;;; 将时钟内容或闹时设置值转换到显示缓冲区子程序;ConvertoBuffer: Mov r1,#DisplayBuffer Jb ClockMode,DispAlarmSet; 判断时钟模式,以决定是显示实时时间还是闹时时间 Mov a,Second; Mov DispSecond,a; Mov a,Minute; Mov Dispminute,a; Mov a,Hour; Mov DispHour,a; 显示实时时间 ; Ajmp ConvertDispAlarmSet: Jb AlarmOnOff,AlarmOn Mov DispSecond,#00h Ajmp NextAlarmOn: Mov DispSecond,#11; 显示闹时时间及显示闹钟状态:显示“00”表示关闭闹钟,Next: ; “11”表示开启闹钟 Mov a,AlarmMinute; Mov Dispminute,a; Mov a,AlarmHour; mov DispHour,a; ;Convert: Mov a,DispSecond

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论