单片机原理与接口技术第4章汇编语言程序设计_第1页
单片机原理与接口技术第4章汇编语言程序设计_第2页
单片机原理与接口技术第4章汇编语言程序设计_第3页
单片机原理与接口技术第4章汇编语言程序设计_第4页
单片机原理与接口技术第4章汇编语言程序设计_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第4章汇编语言程序设计单片机原理与接口技术·MCS-51系列Contents本章内容概览汇编语言程序设计核心知识体系,从基础概念到综合实战的完整学习路径。01汇编语言程序设计概述02常用伪指令详解03基础程序结构设计04汇编语言程序设计实例05综合应用与项目实战CHAPTER01汇编语言程序设计概述从基本概念到完整设计流程的系统认知LANGUAGEFUNDAMENTALS汇编语言的定义与地位汇编语言是面向特定处理器架构的低级语言,用助记符替代机器码,与硬件一一对应。在MCS-51单片机开发中,汇编语言因执行效率高、代码紧凑、可直接操控硬件寄存器而不可替代,是理解底层运行机制的基础。MCS-51单片机·DIP封装实拍01机器语言由二进制代码组成(如11100100),CPU可直接执行但人类难以阅读和编写,容易出错且无法维护,是计算机唯一能直接识别的语言形式02汇编语言用助记符(MOV、ADD、JMP等)替代机器码,与指令一一对应,需通过汇编器转换为机器码后执行,是人与硬件之间的桥梁03高级语言C/C++抽象程度高、可移植性好,但代码体积大、执行效率低,在资源受限的单片机中难以满足实时性要求,需要编译器优化04MCS-51首选ROM仅4KB、RAM仅128B,汇编能精确控制每一个字节和时钟周期,在底层驱动和实时控制中不可替代,是嵌入式开发的核心技能METHODOLOGY程序设计的六个基本步骤规范的汇编语言程序设计应遵循六步流程。其中算法设计和流程图绘制是承上启下的关键环节,决定了程序的逻辑正确性和后续调试效率。01问题分析明确程序要实现的功能、输入数据来源与输出目标,确定精度和速度要求,界定边界条件和异常处理需求INPUT/OUTPUT02算法设计选择合适的数据处理方法和控制逻辑,将复杂问题分解为若干可执行的基本操作步骤DECOMPOSE03流程图绘制用标准化图形符号将算法可视化,包括起止框、处理框、判断框和流向线,便于审查逻辑完整性VISUALIZE04代码编写根据流程图逐段编写汇编源代码,添加必要注释说明每段代码的功能与设计意图SOURCECODE05汇编编译使用汇编器(如KeilA51)将源代码翻译为目标代码,检查语法错误并生成列表文件.OBJOUTPUT06调试运行在仿真器或开发板上单步执行、设置断点、观察寄存器和内存变化,验证功能正确性后固化到ROMDEBUG&VERIFYStandardSymbols程序流程图的标准符号程序流程图是算法的可视化表达工具,使用五种标准符号描述程序的控制逻辑。规范的流程图能帮助设计者在编码前发现逻辑缺陷。Terminal起止框椭圆或圆角矩形,标记程序的入口和出口。每个程序有且仅有一个起始框和一个终止框,是流程图的基本边界元素。Process处理框矩形,表示一个具体的处理操作,如数据运算、赋值、寄存器操作等。框内写明操作内容,是流程图中最常用的符号。Decision判断框菱形,表示条件判断,有一个入口和两个出口(是/否)。根据条件结果选择执行路径,实现程序的分支控制。Flowline流向线带箭头直线,指示程序执行的顺序和方向。默认从上到下、从左到右,必要时可用箭头明确标注非标准流向。I/O输入输出框平行四边形,表示数据的输入或输出操作。如从端口读取数据、向显示器输出结果,或与其他设备进行数据交换。MCS-51Assembly汇编语言源程序的基本格式MCS-51汇编语言源程序由若干指令行组成,每行最多包含标号、操作码、操作数和注释四个字段,各字段间用空格或制表符分隔。规范的格式和充分的注释是保证代码可读性与可维护性的基础。01标号字段:由1–8个字母或数字组成(首字符必须是字母),后跟冒号,用于标记指令地址以供跳转指令引用,如LOOP:、DELAY:02操作码字段:指令的核心部分,用助记符表示操作类型(MOV、ADD、SJMP等),每条指令必须有且仅有一个操作码03操作数字段:指明操作对象,可以是寄存器(A、R0–R7)、立即数(#30H)、直接地址(30H)或标号,多操作数间用逗号分隔04注释字段:以分号(;)开头,说明该指令的功能和设计意图,汇编器会忽略注释内容,但它是代码文档化的重要手段汇编语句四字段格式示例标号操作码操作数注释START:MOVA,#30H;将立即数30H送入累加器ALOOP:ADDA,R2;将R2内容与A相加SJMPLOOP;无条件跳转到LOOP标号处DELAY:DJNZR7,DELAY;R7减1,不为0则跳回DELAY每条汇编语句由标号、操作码、操作数、注释四个字段组成,标号和注释可选CHAPTER02常用伪指令详解掌握汇编器的控制命令,规范程序结构与数据定义MCS-51Assembly·PseudoInstructions伪指令的概念与基本伪指令伪指令是汇编器识别的控制命令,不生成机器码、不占用ROM空间,用于指导汇编过程。MCS-51常用伪指令包括ORG、END、EQU、DATA、DB、DW、DS等。01核心伪指令ORG指定后续代码或数据的起始地址,如ORG0000H表示程序从该地址开始存放0000HEND标记源程序结束,汇编器遇到后停止汇编,每个程序必须有且仅有一个×1EQU为常量或表达式定义符号名,如COUNTEQU10,后续用COUNT代替数值CONST02数据定义伪指令DB定义字节数据,如TAB:DB30H,31H,32H,在ROM中连续存放多个字节8-bitDW定义16位字数据,高字节在前低字节在后,如DW1234H存为12H、34H16-bitDS预留指定字节数的存储空间,如DS10表示预留10个字节的空区域RESERVEASSEMBLYPSEUDO-INSTRUCTIONS伪指令综合运用示例在实际汇编程序中,ORG确定代码存放位置,EQU提高代码可维护性,DB/DW构建查表数据,DS预留运行时缓冲区。这些伪指令的合理搭配使用,是编写结构清晰、易于维护的汇编程序的关键。数据传送程序示例与伪指令解析源代码功能说明ORG0030H伪指令:指定程序从0030H地址开始存放SRCEQU30H伪指令:定义符号SRC代表源地址30HDSTEQU40H伪指令:定义符号DST代表目的地址40HMOVA,SRC汇编指令:将30H单元内容读入累加器AMOVDST,A汇编指令:将A中内容写入40H单元SJMP$汇编指令:原地跳转,程序停在此处END伪指令:标记源程序结束通过ORG、EQU、END三条伪指令构建了一个完整的数据传送小程序框架Chapter03基础程序结构设计顺序、分支、循环、子程序——构建一切程序的四大基石MCS-51程序设计顺序结构程序设计顺序结构是最基本的程序组织形式,指令按书写顺序依次执行,无跳转和分支。虽然结构简单,但它是分支、循环等复杂结构的组成单元。数据交换·执行流01MOVA,30H02MOVR0,40H03MOV40H,A04MOV30H,R0R0作为中间暂存器,避免数据覆盖丢失CASE01数据交换程序示例功能:将片内RAM30H与40H单元的内容互换,利用R0作为中间暂存器避免数据覆盖丢失特点:四条指令严格顺序执行,每条指令依赖前一条的执行结果,体现数据流的线性传递关系CASE02多字节加法示例功能:将片内RAM30H-31H中的16位数与40H-41H中的16位数相加,结果存回30H-31H关键:先加低字节(ADD),再加高字节(ADDC),利用进位标志C传递低位向高位的进位位依赖:高字节加法必须在低字节完成后执行,ADDC指令需要使用低字节运算产生的进位标志MCS-51指令系统分支结构程序设计分支结构根据条件判断结果选择不同的执行路径,是程序实现"决策"能力的基础。MCS-51通过条件转移指令实现单分支,通过散转指令配合转移地址表实现多分支。01·单分支:条件判断判断30H单元中有符号数的正负:JNBACC.7,POSITIVE检测到最高位为0(正数)则跳转到POSITIVE标签负数执行MOV31H,#0FFH标记为负;正数路径执行MOV31H,#00H标记为正核心指令:JZ/JNZ判断A是否为零,JC/JNC判断进位标志,JB/JNB判断某一位状态02·多分支:散转结构当条件有N种取值时,用JMP@A+DPTR实现多路跳转,A中存放偏移量,DPTR指向转移地址表首地址转移地址表用DW定义各分支入口地址,如TAB:DWBR0,BR1,BR2,BR3,每个地址占2字节使用前需将分支编号乘以2送入A(每个地址占2字节),再执行JMP@A+DPTR跳转到对应分支MCS-51汇编·分支程序分支程序实例:按键功能分发多分支散转程序的核心是"转移地址表+JMP@A+DPTR"的组合。通过查表获取目标地址并跳转,避免了大量条件判断指令的嵌套,使代码结构清晰、执行效率高。按键散转程序代码解析源代码功能说明MOVA,P1从P1口读取按键值ANLA,#03H屏蔽高6位,保留低2位(0-3)RLA左移一位,编号×2得到地址偏移MOVDPTR,#TABDPTR指向转移地址表首地址JMP@A+DPTR根据A+DPTR跳转到对应分支TAB:DWFUNC0,FUNC1转移地址表:分支0和1的入口DWFUNC2,FUNC3转移地址表:分支2和3的入口FUNC0:...(功能0)按键0对应的处理程序利用散转指令JMP@A+DPTR实现四路按键功能分发,代码结构简洁高效MCS-51Assembly循环结构程序设计循环结构使程序能够高效地重复执行特定操作,由初始化、循环体和循环控制三要素组成。MCS-51中DJNZ指令将减1与条件跳转合二为一,是实现计数循环的核心指令;嵌套循环可实现更大范围的计数和更长时间的延时。01·SingleLoop单重循环02·NestedLoop多重嵌套循环01初始化:MOVR7,#10设置循环次数为10次,R7作为循环计数器02循环体与控制:LOOP:(操作指令)→DJNZR7,LOOP,R7每次减1,不为0则跳回继续执行03计数范围:8位寄存器Rn可计数1–256次(初值0表示256次),直接地址单元同理01执行次数:外层R6控制、内层R7控制,总次数=外层×内层,如各256次则总计65536次02嵌套规则:内层必须完全包含在外层循环体内,禁止交叉嵌套;内外层变量不能共用同一寄存器03典型应用:软件延时程序中常用双重或三重嵌套循环实现毫秒级到秒级的精确延时MCS-51Assembly循环实例:数据块搬移程序数据块搬移是单片机系统中常见的基础操作,通过循环结构实现批量数据的逐字节传送。程序采用双指针加计数器的模式,清晰展示了循环三要素在实际编程中的配合方式。片外RAM→片内RAM数据搬移代码源代码功能说明MOVR0,#30H初始化:片内目的地址指针→R0MOVDPTR,#1000H初始化:片外源地址指针→DPTRMOVR7,#16初始化:循环计数器设为16次LOOP:MOVXA,@DPTR循环体:从片外RAM读一个字节到AMOV@R0,A循环体:将A中数据写入片内RAMINCDPTR循环体:片外指针加1INCR0循环体:片内指针加1DJNZR7,LOOP循环控制:R7减1,不为0则继续SubroutineDesign子程序设计基础子程序通过LCALL/ACALL调用、RET返回,实现代码复用和模块化设计。参数传递可采用寄存器、共享内存或堆栈三种方式;现场保护通过PUSH/POP指令在调用前后保存和恢复寄存器状态,确保主程序运行环境不被破坏。01调用与返回机制02参数传递与现场保护LCALLaddr16:长调用指令,将返回地址压入堆栈后跳转目标地址,调用范围64KB寄存器传递:主程序将入口参数放入约定寄存器,子程序直接读取,速度快但受寄存器数量限制ACALLaddr11:短调用指令,范围仅2KB,指令2字节,节省ROM空间堆栈传递:主程序用PUSH压栈,子程序用POP弹出,适合参数较多场景,遵循后进先出RET:从堆栈弹出返回地址送入PC,程序回到调用点下一条指令继续执行现场保护:入口PUSH保存寄存器,返回前POP恢复(顺序相反),确保主程序环境不被破坏SUBROUTINE子程序实例:软件延时子程序软件延时子程序通过嵌套循环消耗CPU时钟周期来实现精确延时,是单片机编程中最基础、最常用的子程序。100ms延时子程序代码与时间计算源代码时间计算DELAY:PUSH06H保护R6,2个机器周期PUSH07H保护R7,2个机器周期MOVR6,#200外层循环200次,1个周期DL1:MOVR7,#250内层初值250,每轮1个周期DL2:DJNZR7,DL2内层循环:2×250=500周期/轮DJNZR6,DL1外层控制:(500+2)×200=100,400POP07H恢复R7,2个机器周期POP06H/RET恢复R6并返回,共4周期SUMMARY双重循环延时约100ms(12MHz晶振),总机器周期≈100,400+开销≈100msSTACKOPERATIONS堆栈操作与现场保护详解堆栈是MCS-51实现子程序调用/返回和中断嵌套的核心数据结构,遵循后进先出(LIFO)原则。01堆栈初始化复位后SP=07H,通常用MOVSP,#30H将栈底设在30H以上,避免与工作寄存器区和位寻址区冲突02PUSH操作过程SP←SP+1后将数据存入(SP)指向的单元;如PUSHACC执行后,SP从30H变为31H,ACC内容存入31H单元03POP操作过程先从(SP)指向的单元取出数据,然后SP←SP-1;如POP07H执行后,先取(SP)内容送R7,SP减104成对使用原则现场保护的PUSH顺序与现场恢复的POP顺序必须严格相反:PUSHACC→PUSHPSW→…→POPPSW→POPACC05堆栈深度管理51单片机RAM有限,多层子程序嵌套和中断嵌套会消耗堆栈空间,需计算最坏情况下的堆栈用量防止溢出06LIFO核心特征SP+1→存数取数→SP−1LastIn·FirstOutCHAPTER04汇编语言程序设计实例从LED驱动到定时器应用,将程序结构落地到硬件控制MCS-51·Hardware&ProgrammingI/O端口驱动LEDMCS-51单片机的P0-P3口可直接驱动LED,采用灌电流接法时输出低电平点亮LED。通过循环移位指令(RL/RR/RLC/RRC)改变端口输出模式,配合延时子程序控制闪烁频率,可实现流水灯、闪烁灯等多种灯效,是理解I/O操作和程序结构配合的经典入门实例。01硬件连接与控制原理SinkCurrent灌电流接法:LED阴极接P1口引脚,阳极经220Ω–1kΩ限流电阻接+5V,端口输出低电平(0)时LED导通点亮LOW=ONSourceCurrent拉电流接法:LED阳极接P1口引脚,阴极经限流电阻接地,端口输出高电平(1)时LED亮,但51单片机拉电流能力弱,亮度较低PortOperationMOVP1,#0FEH使P1.0=0(第1个LED亮),MOVP1,#0FDH使P1.1=0(第2个LED亮),以此类推#0FEH→#0FDH02流水灯程序设计CoreLogic核心思路:将A初始化为0FEH(仅最低位为0),每次循环左移一位(RLA),输出到P1口,实现亮点依次移动的效果RLADelayControl延时控制:每次移位后调用延时子程序(约200ms),人眼才能分辨出灯的移动,否则因视觉暂留看起来像全亮≈200msFlow完整流程:初始化A→输出到P1→调用延时→RLA移位→SJMP回到输出步骤,形成无限循环的流水灯效果SJMPLOOPAssembly·ProgramAnalysis流水灯完整程序解析流水灯程序是顺序、循环、子程序三种结构的综合运用:顺序结构完成初始化和主循环内的端口输出,循环结构驱动LED模式的持续变化,子程序结构封装可复用的延时功能。8位流水灯完整汇编代码源代码功能说明ORG0000H程序从0000H地址开始MOVA,#0FEHA初始化为11111110B,P1.0对应LED亮LOOP:MOVP1,A将A中模式输出到P1口驱动LEDLCALLDELAY调用延时子程序,约200msRLAA循环左移一位,亮点移向下一位SJMPLOOP跳回LOOP,形成无限循环DELAY:MOVR6,#200延时子程序入口,外层循环200次DL1:MOVR7,#250内层循环250次DL2:DJNZR7,DL2内层循环体DJNZR6,DL1/RET外层循环控制并返回顺序初始化→循环移位输出→子程序延时,三种结构配合实现8位LED流水效果TIMER/QUERYMODE查询方式的定时器应用MCS-51的定时器T0和T1是16位可编程计数器,查询方式通过检测溢出标志TF控制流程,但CPU等待期间无法处理其他任务,效率较低。01工作方式设置通过TMOD寄存器配置定时器模式,如MOVTMOD,#01H将T0设为方式1(16位定时器),最大计数值6553602初值计算定时时间=(65536−初值)×机器周期;12MHz晶振下定时50ms,初值=65536−50000=15536=3CB0H03初值装载MOVTH0,#3CH和MOVTL0,#0B0H分别将高8位和低8位初值装入定时器寄存器04启动与查询SETBTR0启动定时器,LOOP:JNBTF0,LOOP循环等待溢出标志TF0置105溢出处理TF0置1后执行定时操作(如翻转LED),CLRTF0清除标志、重新装载初值,开始下一轮定时TIMERPROGRAMMING查询定时器完整程序:1秒闪烁LED查询方式定时器程序的关键步骤为:设置TMOD→计算装载初值→启动TR→查询TF→处理溢出→重装初值。当单次定时不足以达到目标时间时,可用软件计数器累加多次溢出,如50ms×20=1秒。T0查询方式1秒定时程序代码源代码功能说明MOVTMOD,#01H设置T0为方式1(16位定时器)MOVR7,#20软件计数器,20×50ms=1秒MOVTH0,#3CH装载高8位初值(50ms定时)MOVTL0,#0B0H装载低8位初值SETBTR0启动定时器T0WAIT:JNBTF0,WAIT查询等待TF0溢出标志置1CLRTF0清除溢出标志MOVTH0,#3CH重新装载初值(方式1非自动重装)MOVTL0,#0B0H重装低8位初值DJNZR7,WAIT未满20次继续等待CPLP1.0满1秒,翻转LED状态MOVR7,#20/SJMPWAIT重置计数器,开始下一轮T0方式1定时50ms×20次=1秒,查询TF0溢出后翻转LED,手动重装初值MCS-51·TimerInterrupt中断方式的定时器应用中断方式让CPU无需轮询等待定时器溢出,释放等待期间算力,使其可以并行处理其他任务。中断配置步骤

01设置TMOD选择定时器工作方式(如MOVTMOD,#01H设置T0为方式1),与查询方式相同

02装载定时初值(MOVTH0,#3CH、MOVTL0,#0B0H),启动定时器(SETBTR0)

03开启中断:SETBET0允许T0中断,SETBEA开放CPU总中断允许,两者缺一不可中断服务程序

01在T0中断向量入口000BH处放置跳转指令LJMPISR_T0,引导CPU跳转到中断服务程序

02中断服务程序中重装初值、更新软件计数器、执行定时操作(如翻转LED),最后用RETI返回

03RETI与RET的区别:RETI还会清除内部中断优先级触发器,允许后续同级中断被响应T0InterruptTimer中断定时器完整程序:1秒闪烁LED中断方式定时器由主程序(配置+等待)和中断服务程序(定时处理)两部分组成,CPU利用率显著提升。T0中断方式1秒定时程序代码源代码功能说明ORG0000H程序起始地址LJMPMAIN跳转到主程序,避开中断向量区ORG000BHT0中断向量入口地址LJMPISR_T0跳转到T0中断服务程序ORG0030H主程序存放区域MAIN:MOVTMOD,#01HT0方式1定时MOVTH0,#3CH装载50ms初值高8位MOVTL0,#0B0H装载初值低8位MOVR7,#20软件计数器20次=1秒SETBET0/SETBEA开T0中断和总中断SETBTR0启动T0SJMP$主程序空循环等待中断ISR_T0:MOVTH0,#3CH中断服务:重装初值MOVTL0,#0B0H重装低8位DJNZR7,EXIT未满20次直接返回CPLP1.0满1秒翻转LEDMOVR7,#20重置计数器EXIT:RETI中断返回(清中断标志)总结:中断方式主程序仅做配置,定时逻辑全部在ISR中完成,CPU可并行处理其他任务TIMER·COMPARISON查询方式与中断方式对比查询方式以代码简洁见长,适合任务单一的简单系统;中断方式以CPU高利用率取胜,适合多任务并行的复杂系统。两种定时器应用方式全维度对比对比维度查询方式中断方式CPU利用率低:等待期间CPU空转高:等待期间可执行其他任务程序结构简单:主程序内顺序处理稍复杂:分主程序和ISR两部分实时性较差:受主循环其他代码影响好:硬件自动触发,响应及时多任务能力差:难以同时处理多个定时任务强:多个中断源可并行工作配置复杂度低:只需TMOD+初值+TR中:额外需要IE寄存器配置适用场景单任务、教学演示、简单延时多任务系统、实时控制、产品级开发中断方式在CPU利用率、实时性和多任务能力上全面优于查询方式,是工程实践的首选CHAPTER05综合应用与项目实战从单一功能到系统集成,培养完整的单片机程序设计能力SystemDesignCase综合案例:60秒倒计时器设计60秒倒计时器是一个典型的单片机综合应用项目,集成了定时器中断、数码管动态扫描显示、按键检测三大功能模块。系统硬件设计01显示部分:P0口输出段码(a-g和小数点),P2.0和P2.1分别控制十位和个位数码管的位选,采用共阴极数码管02定时部分:T0定时器方式1,定时50ms,中断20次得到1秒时基,12MHz晶振下初值为3CB0H03控制部分:P3.2引脚接启动按键(利用INT0外部中断或查询方式检测),按下后启动倒计时软件架构设计01主程序模块:初始化定时器、中断、显示缓冲区和变量,然后进入数码管动态扫描的无限循环02T0中断服务模块:重装初值、软件计数器减1、为0时秒计数减1并更新显示缓冲区、秒为0时停止定时03显示子程序模块:根据显示缓冲区中的BCD码查表获取段码,依次选通十位和个位数码管进行动态扫描DISPLAYTECHNOLOGY查表法驱动数码管显示查表法是单片机显示编程的核心技术,将数字与段码的对应关系预先存储在ROM中的段码表内,运行时通过MOVCA,@A+DPTR指令按索引快速查找。共阴极数码管段码表与查表程序10digits·7-segment数字段码(HEX)段码(BIN)点亮段03FH00111111a,b,c,d,e,f106H00000110b,c25BH01011011a,b,d,e,g34FH01001111a,b,c,d,g466H01100110b,c,f,g56DH01101101a,c,d,f,g67DH01111101a,c,d,e,f,g707H00000111a,b,c87FH01111111a,b,c,d,e,f,g96FH01101111a,b,c,d,f,g共阴极数码管0-9段码表,查表指令MOVCA,@A+DPTR按索引获取段码输出到P0口ProgramArchitecture倒计时器程序框架与模块划分各模块通过共享变量传递数据,以跳转与调用指令实现模块间协作与返回。60秒倒计时器完整程序框架地址代码所属模块0000HLJMPMAIN向量区跳转主程序000BHLJMPISR_T0向量区T0中断入口0030HMAIN:初始化TMOD/TH/TL/IE/SP主程序系统初始化—SCAN:LCALLDISPLAY主程序显示扫描循环—SJMPSCAN主程序持续刷新显示—ISR_T0:重装初值+计数中断50ms定时处理—秒减1+BCD拆分+更新缓冲区中断秒值更新逻辑—RETI中断返回主程序—DISPLAY:查表+动态扫描子程序数码管显示—TAB:DB3FH,06H,5BH...数据区段码表程序分为向量区、主程序、中断服务、显示子程序、数据表五个模块,结构清晰、职责分明Development&Debugging程序调试方法与开发工具KeilμVision是MCS-51汇编程序开发的标准IDE,提供编辑、编译、调试一体化环境;Proteus提供电路仿真能力,两者配合可实现"无硬件"的完整开发流程。掌握单步执行、断点设置、寄存器观察等调试技巧,是定位和修复程序错误的关键能力。KeilμVision编译检查按F7编译源代码,BuildOutput窗口显示Error(必须修复)和Warning(建议检查),0Error方可生成HEX文件F7·HEXKeilμVision单步执行按F11逐条执行指令,观察每条指令执行后A、PSW

温馨提示

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

评论

0/150

提交评论