微原课设说明书

上传人:jin****ng 文档编号:201005676 上传时间:2023-04-18 格式:DOCX 页数:27 大小:282.35KB
返回 下载 相关 举报
微原课设说明书_第1页
第1页 / 共27页
微原课设说明书_第2页
第2页 / 共27页
微原课设说明书_第3页
第3页 / 共27页
点击查看更多>>
资源描述
目录模拟“霓虹灯”汇编语言程序设计 21 设计任务及要求 21.1 初始条件 21.2 要求完成的主要任务 22 总体方案论证 22.1 程序的功能分析、算法说明23 程序流程图设计及其说明 33.1 主程序的流程图33.2 子程序流程图43.2.1 图文显示程序流程图 43.2.2 条纹运动的子程序流程图54 软件设计关键问题说明 64.1 图文转为字符部分说明 64.2 主要程序段与程序设计分析74.2.1 数据段74.2.3 条纹运动程序说明 104.2.4 Esc 退出程序块说明 115 程序调试说明125.1 运行结果记录125.1.1 显示图文信息运行结果 125.1.2 条纹的显示运行结果 125.2 程序调试过程中出现的问题136、课程设计收获及心得体会13参考文献14模拟“霓虹灯”汇编语言程序设计1 设计任务及要求1.1 初始条件采用 16位微处理器 8086 CPU 以及86 系列微型计算机的指令系统; 软件设计平台为多功能微型计算机实验软件 MFS 中的微机原理实验集成环境MF2KP,仿真设计平台为Proteus软件。1.2 要求完成的主要任务设计汇编语言程序,实现模拟“霓虹灯”的显示功能,具体功能要求如下:(1)自行设计霓虹闪烁的色彩与图案;(2)运行程序在屏幕上自动循环进行霓虹闪烁,(3)直至单击“ ESC ”键退出程序。 根据功能要求绘制程序流程图、编写完整的汇编语言程序并上机调试。2 总体方案论证2.1程序的功能分析、算法说明汇编语言是用指令的助记符、符号地址、标号等书写程序的语言,实际上是机器 语言的一种符号表示,主要特点是可以使用助记符来表示机器指令的操作码和操作数 可以用标号和符号来代替地址、常量和变量。本次设计用汇编语言来实现霓虹灯的模拟显示。大体分四块,一是设计霓虹闪烁 的色彩与图案,要将自己设计的图形和汉字在显示器上显示出来,图文是用ASCII码 字符按一定的顺序排列成图片的样子,于是这里我采用ASCIIART软件,将自行设计的 图案转为 ASCII 码的显示方式,再定义变量在数据区,将每一个字符的 4 个属性(字 符,颜色,行坐标,列坐标) 写出来,就可以确定每一个字符在屏幕上的位置,然后 组成所设定的图形。将图案显现出来文字的闪烁则是通过将颜色属性的八位二进制数 的最高位置一实现的。二是编写读入和显示字符的子程序,这里使用若干设置和显示的中断实现字符显 示功能。并且要调用延时的程序,才能保证人眼方便观察到。三是通过比较键盘输入与“Esc”的大小,来实现退出的功能。 四是我将添加图文消失和条纹清屏的特色功能,前者是使用不同的颜色覆盖原有 图形,后者则编写条纹显示程序对屏幕一定区域进行覆盖。3 程序流程图设计及其说明3.1主程序的流程图说明:主程序分为三块,首先是数据段的初始化,将图形的位图信息存在存储器 中,再就显示出自行设计的闪烁的图形和汉字,然后就是图文消失,再显示滚动的条 纹图案,最后编写遇到Esc就随时退出的子程序。主流程图如图3-1:图 3-1 主程序结构流程图3.2子程序流程图3.2.1 图文显示程序流程图说明:图文显示子程序是先定义光标的位置,再确定输出字符的位置进行定位的输出,CX寄存器存有循环次数,其中对中断的使用是关键。程序流程图如图3-2:图 3-2 图文显示子程序流程图3.2.2 条纹运动的子程序流程图YNYN结束Y Y判断指定位置处 字符是否为?判断是否到达 屏幕最左端?NN N判断指定位置处字 符是否为?( 开始 )保存点的基 本信息保存组成点的基本信息将字符写11行列坐标dl自减将字符改为图 3-3 条纹运动子程序流程图说明:条纹的运动是为了使界面更美观,首先在定义好条纹的位图信息之后,先 定位光标的位置再读取光标处的字符及其属性,若此字符为“”则复制 11行,共 13 行“”,若不为“”则检测是否为“”,若是,则复制 11行,若不是,则覆盖为 “”,于是条纹所扫过之处,最左边一列为“”,其余全为“”,直到“”覆盖 整个屏幕。4 软件设计关键问题说明4.1图文转为字符部分说明在屏幕上显示的是字符按一定规律组成的图文信息,此处,我们对图文能准确转 为 ASCII 码字符首先采用画图软件,将自己设计的图文保存为图片,再用 ASCIIART 软 件来将其准确转为 ASCII 码字符显示。如图 4-1,图 4-2:回D Qg,aw0File Edit View Image Window HelpUntitled 1.FMQ tt 1 伽0& tt qIFTQ0 qmtt1 ttMq ft1 tt? #1 #1_#JMA&!tt pFv f #,MIF-A.图 4-24.2主要程序段与程序设计分析4.2.1 数据段在数据段的定义中,由组成图文的点的 ASCII 码值、颜色、行坐标、列坐标构成。 例如: jie db 53db 22h,84h,0,0db &,84h,0,1db ,84h,1,0 db g,84h,1,-2这段程序是汉字“洁”的位形图一部分,变量名定义为jie,每一个字符的位形信息 被存为四个字节:第一个字节为字符的 ASCII 码值;第二个字节为字符的颜色属性,通常以第03位表示文字本身颜色;第46位表 示背景颜色,第7个位,表示是否闪烁,0表示不闪烁,1表示闪烁。上例中84h为闪 烁的红色。其它颜色见下表4-1;第三个字节为字符所在处相对上一个字符的行坐标; 第四个字节为字符所在处相对上一个字符的列坐标。其中行向上则减,向下则增;列 向左则减,向右则增。每写出一个点后,该点的坐标变回基准坐标(0,0)。本程序中写点是按照从左到右 从上到下的顺序写的,直至写完所有的点。此处要注意第一个数据 53为循环次数,即组 成该图的字符数,如设置不当将导致图文无法正常显示。表 4-1 16 种颜色的组合颜色IRGB颜色IRGB颜色IRGB颜色IRGB黑J0000灰1000红0100浅红1100蓝0001浅蓝1001品红0101浅品红1101绿0010浅绿1010棕0110黄1110青0011浅青1011灰白0111白11114.2.2 读入和显示字符的程序段说明1、程序中用到的BIOS和DOS功能内的中断功能(1)02H 号功能调用 功能:用文本坐标下设置光标位置入口参数:AH=02HBH= 显示页码DH二行(Y坐标)DL二列(X坐标)出口参数:无(2) 08H号功能调用功能:读光标处的字符及其属性入口参数: AH=08HBH二显示页码出口参数:AH二属性AL=字符3) 09H 号功能调用 功能:在当前光标处按指定属性显示字符入口参数:AH=09HAL= 字符BH二显示页码BL=属性(文本模式)或颜色(图形模式)CX=重复输出字符的次数 出口参数:无( 4) 0FH 号功能调用功能:读取显示器模式入口参数: AH=0FH出口参数:AH二屏幕字符的列数AL二显示模式BH二页码( 5) 01H 号功能调用功能:从键盘输入一个字符 输入参数:无 输出参数: AL=ASCII 码( 6) 0BH 号功能调用 功能:检查标准输入设备上是否有字符可读,该输入操作可被重定向输入参数: AH=0BH输出参数:AL=00H无字符可读;FFH有字符可读( 7) 4CH 号功能调用功能:返回操作系统 4CH调用: MOV AH,4CHINT 21H2、首先将图文的位形图的地址送给寄存器,程序如下:leadi,yumovdh,7movdl,17call move_shape1 call Amust_2其中,dh,dl分别对应于所绘图文第一个字符在屏幕上显示时的行、列坐标。call 指令用于子程序调用,分别调用 move_shape1 和 Amust_2 子程序,进行字符的读入和 写出。3、在 move_shape1 中读取字符的信息,程序段如下:movchar_cnt1,cxmovpointer1,dimovline_on1,dhmovcol_on1,dlmovchar,cx程序中char_cntl指字符,pointerl指颜色,line_onl指行坐标,col_onl指列 坐标。4、显示字符的程序在子程序,Amust_2和Amust_21中类似,程序段详见附录。在 读取字符的位图信息后,使用中断设置显示器模式,再确定光标的位置,再写入字符, cx内存有初始值,作为循环次数。add di,4用于准备写下一个字符。其间调用call dly_qrtr 延时子程序来调节人眼观察的时间。而图文的消失则是通过修改颜色的参数来实现,颜色属性改为00h即可。4.2.3条纹运动程序说明条纹运动的程序详见附录,程序与读入显示图文的程序类似,不同之处在于条纹 每次是显示 l3 行,一列一列由右到左,所经之处有用“”清屏的功能。用“”清屏的功能:先将光标定位,再读取字符的属性,判断该字符若此字符为 “”则复制 ll 行,共 l3 行“”,若不为“”则检测是否为“”,若是,则复制 ll 行,若不是,则覆盖为“”,于是条纹所扫过之处,最左边一列为“”,其余全 为“”,直到“”覆盖整个屏幕。一列一列由右向左:dl(col_onl)代表的是列坐标,每次循环经过dec dl就可以 实现的列坐标自减1的功能,从而使得条纹字符从右向左而来,经过除所有字符都变 为“”。循环控制: 由 cmp dl,2 来判断条纹是否到达最左端,如到达,就循环。同时也会调用“Esc”结束子程序和延时程序。4.2.4 Esc退出程序块说明该设计要求在程序运行过程中,按下Esc键能够退出程序,首先判断有没有字符 输入,没有就返回继续之前的操作,若检测到有字符输入,再把输入字符与Esc相比 较,若不同,还是返回执行循环,若是Esc,就执行退出命令,返回DOS。程序段如下:back:pushaxmovah,0bhint21hcmpal,0jebackmovah,08hint21hcmpal,1bhjnebackmovah,4chint21hpopaxret5 程序调试说明5.1运行结果记录5.1.1 显示图文信息运行结果图5-1注:灰色部分为闪烁部分,在全屏下会有闪烁的功能。5.1.2 条纹的显示运行结果5.2程序调试过程中出现的问题第一次进行这么复杂的汇编语言编程,在程序的调试中,出现了各种语法错误和逻辑 错误。1、定义数据区里存在变量里第一个字节的数是循环的次数,这个数偏大偏小都无法 正常显示所编译的图文。而它决定于字符的个数,需要统计和调试,找到最适合的数字。2、闪烁的图文只有在全屏(ALT+ENTER)下才能显示闪烁,否则就会在原颜色有一 层灰色的底色。3、在网上下载下来的程序往往无法直接运行,原因是中文注释的分号是中文模式下 的,程序中得使用英文模式下的分号。4、延迟程序长短的调试。过长或过短都影响人眼的观看,而这个时间是需要不断调 试的。5、数字定义去的坐标计算要细心,一旦数错,整个图形就不可能是正确的。6、课程设计收获及心得体会为期一周半的微原课设中,我碰到无数次的无法生成.obj,无法生成.exe,每次点击运 行都会对那一声警惕音神经质。不过,确实收获很多,我的任务题有一定的难度,刚拿到 手也是不知所措,平时就顶多就会在一堆字符里去统计有几个 1几个0,这个是做闪烁的 霓虹灯,完全没有头绪。但是我马上冷静下来,想到老师建议我们的做课设的步骤和方法。 于是首先我在网上,书籍中搜寻相关的资料,终于明白了题目的意思,再将题目所要求的 功能分成几大块来思考,然后参考一些资料中相关的程序,仔细学习和揣摩其中每一块需 要用到的算法。虽然那些程序有些复杂,又没有见过,但是真的理解了老师当时说的那句 话,课堂只是教给我们基础和方法,具体的实际应用和深入的学习是在课后的,这个题目 的难度就像看似遥不可及,但是仔细分析就会发现一块一块的程序是我们再课堂上学到的 基础的综合,于是觉得学到了远远超过课堂的东西,但是却源于课堂。之后就设计了一个 自己喜欢的图形,希望能有鱼吐泡泡的效果。其间程序的调试无疑是很艰难的,但是,老 师很贴心地给我们安排了研究生学长课一随时指导,能让问题得到及时的解决,还有同学 们的互帮互助,最后程序终于调试出来能让我看到自己的名字和鱼吐泡泡,并且达到所要求的功能的时候,特别兴奋和有成就感。这次的课设,也得益于老师的严格要求,于是真 正所学所得很多。参考文献1 郑学坚、周斌.微机计算原理及应用(第三版).北京:清华大学出版社,2003.62 谭浩强.C程序设计(第二版)北京:清华大学出版社,2002.13 美Harold J.Rood著,杜大鹏、龚小平等译.北京:中国水利水电出版社,2004.64 周佩玲、彭虎等著.微机原理与接口技术(基于 16 位机) .北京:电子工业出版社2007.65 朱定华.微机原理、汇编与接口技术学习指导.北京:清华大学出版社, 2004.7附录:程序代码;-DATA_SEGMENT- ;DATA_SEGMENT 部分为定 义数据段data_seg segment;-A-*-A-yuyu1db 46db &,81h,0,0db T,81h,1,0db 1,81h,1,0db 3 dup(1,81h,1,0)db &,81h,1,0db 、,81h,l,0db !,81h,-1,1db _,81h,-1,0db 22h,81h,3,1db #,81h,-1,0db 5 dup(#,81h,-1,0)db Q,81h,-1,-1db 0,81h,0,1db #,81h,-1,0db 2 dup(#,81h,-1,0)db _,81h,0,1db 22h,81h,1,0db q,81h,0,1db 22h,81h,1,1db q,81h,0,1db 22h,81h,1,1db q,81h,0,1db M,81h,1,1db q,81h,0,1db #,81h,1,1db ,81h,l,0db M,81h,0,-1db ,81h,0,-1db ,81h,l,0db M,81h,0,-1db j,81h,0,-1db 、,81h,l,0db F,81h,0,-1db p,81h,0,-1db 、,81h,l,0db M,81h,0,-1db ,81h,0,-1db ,81h,l,0db !,8eh,-5,5 db 46db &,00h,0,0db T,00h,1,0db 1,00h,1,0db 3 dup(1,00h,1,0)db &,00h,1,0db 、,00h,l,0db !,00h,-1,1db _,00h,-1,0db 22h,00h,3,1db #,00h,-1,0db 5 dup(#,00h,-1,0)db Q,00h,-1,-1db 0,00h,0,1db #,00h,-1,0db 2 dup(#,00h,-1,0)db _,00h,0,1db 22h,00h,1,0db q,00h,0,1db 22h,00h,1,1db q,00h,0,1db 22h,00h,1,1db q,00h,0,1db M,00h,1,1db q,00h,0,1db #,00h,1,1db ,00h,l,0db M,00h,0,-1db ,00h,0,-1db ,00h,l,0db M,00h,0,-1paopaodb, ,j,00h,0,-1db_,00h,-1,1db,00h,1,0db,00h,1,0dbF,00h,0,-1dbM,00h,0,1dbp,00h,0,-1db#,00h,1,0db,00h,1,0dbm,00h,0,-1dbM,00h,0,-1db,00h,0,-1db,00h,0,-1db#,00h,-2,6db,00h,1,0db_,00h,-1,0db!,00h,-5,5dbF,00h,0,1dbM,00h,0,1dbQ,00h,0,1db23db1,00h,1,1db,8fh,0,0db30h,00h,1,-1db,8fh,0,1dbg,00h,0,-1db,8fh,1,0db&,00h,0,-1db,7,8fh,1,0db,00h,0,-ldb 22h,8fh,0,-1db #,8fh,-1,0paopao1db,8fh,-2,4jiedb 53db_,8fh,-1,1db22h,84h,0,0db,8fh,1,0db&,84h,0,1dbM,8fh,0,1db84h,1,0db#,8fh,1,0dbg,84h,1,-2dbm,8fh,0,-1db84h,1,0db,8fh,0,-1db30h,84h,0,1db#,8fh,-2,6db,84h,0,1db_,8fh,-1,0db#,84h,1,0dbF,8fh,0,1db84h,1,0dbM,8fh,0,1dbj,84h,0,-1dbQ,8fh,0,1db30h,84h,1,0db1,8fh,1,1db一,84h,0,-1db30h,8fh,1,-1dbM,84h,1,0dbg,8fh,0,-1dbf,84h,0,1db&,8fh,0,-1db一,84h,-6,2db,8fh,0,-ldb2 dup(_,84h,0,1)db84h,0,1db23db84h,1,0db_,00h,0,0db84h,0,-1db,00h,0,1db84h,0,-1db,00h,1,0db84h,0,-1db,00h,1,0dbp,84h,-1,5db22h,00h,0,-1dba,84h,0,1db#,00h,-1,0dbw,84h,0,1db,00h,-2,4dbm,84h,0,1dbg,84h,-2,-4db#,84h,1,0db3 dup(#,84h,1,0)db_,84h,0,-3db、,84h,l,0db,84h,-1,1db,84h,0,1dba,84h,0,2dbw,84h,0,1dbm,84h,0,1db,84h,2,-6db30h,84h,0,1db,84h,0,1db,84h,0,1db,84h,0,1db_,84h,-1,1db0,84h,1,0db2 dup(0,84h,1,0)dbe,84h,0,-1dba,84h,0,-1dbp,84h,0,-1db!,84h,1,-1db&,84h,-1,0db&,84h,-1,0jie1db53db22h,00h,0,0db&,00h,0,1db,00h,1,0dbg,00h,1,-2db、,00h,l,0db30h,00h,0,1db,00h,0,1db#,00h,1,0db、,00h,l,0dbj,00h,0,-1db30h,00h,1,0db_,00h,0,-1dbM,00h,1,0dbf,00h,0,1db_,00h,-6,2db2 dup(_,00h,0,1)db,00h,0,1db、,00h,l,0db 、,00h,0,-ldb ,00h,0,-ldb ,00h,0,-ldb p,00h,-1,5db a,00h,0,1db w,00h,0,1db m,00h,0,1db g,00h,-2,-4db #,00h,1,0db 3 dup(#,00h,1,0)db _,00h,0,-3db 、,00h,l,0db ,00h,-1,1db ,00h,0,1db a,00h,0,2db w,00h,0,1db m,00h,0,1db ,00h,2,-6db 30h,00h,0,1db ,00h,0,1db ,00h,0,1db ,00h,0,1db _,00h,-1,1db 0,00h,1,0db 2 dup(0,00h,1,0)db e,00h,0,-1db a,00h,0,-1db p,00h,0,-1db !,00h,1,-1db &,00h,-1,0db &,00h,-1,0jeepdb 6db 3dh,0eh,0,0db 40h,0bh,1,0db 3dh,0eh,1,0db 3ch,0eh,0,-1db 2ah,0bh,-1,0db 3ch,0eh,-1,0char_cnt1dw ?pointer1dw ?line_on1db ?Acount0db ?col_on1db ?Acount1db ?chardw ?data_segendsAcountdb ?code_seg segmentassume cs:code_seg,ds:data_segmainprocfar;定义主函数pushds;数据段入栈subax,ax;ax 寄存器清零subcx,cx;cx 寄存器清零pushaxpushcxmovax,data_segmovds,axmovAcount1,2movAcount0,11Aagain:leadi,yu;把图形yu的位形图送给dimovdh,7;定义yu的第一个字符的起始坐标movdl,17callmove_shape1; 调用子程序 move_shape1callAmust_2; 调用子程序 Amust_2leadi,paopao;把图形“paopao的位形图送给dimovdh,8;定义“ paopao ”的第一个字符的起始坐标movdl,31callmove_shape1; 调用子程序 move_shape1callAmust_2; 调用子程序 Amust_2leadi,jie;把汉字“洁”的位形图送给dimovdh,7;定义“军”的第一个字符的起始坐标movdl,53callmove_shape1; 调用子程序 move_shape1callAmust_2; 调用子程序 Amust_2leadi,yu1movdh,7movdl,17callmove_shape1callAmust_2lea di,paopao1mov dh,8mov call calldl,31 move_shape1Amust_2leadi,jie1movdh,7movdl,53callmove_shape1callAmust_2leadi,jeep; 把 jeep 的地址送到 dimovdh,4; 定义条纹位形图的第一个点的坐标movdl,78callmove_shape1callAmust_21maincall endpcheck;检测是否按了 esc键退出move_shape1proc near;move_shapel 子程序pushaxpushbxpushcxpushdxpushdimovah,0fh; 读取显示器模式int10hsubch,chmovcl,diincdimovchar_cnt1,cxmovpointer1,dimovline_on1,dhmovcol_on1,dlmovchar,cxpopdipopdxpopcxpopbxpopaxretmove_shape1endp;move_shape1 子程序结束Amust_2procpush axnear;Amus t_2子程序push bxpush cxpush dxpush dimov ah,0fh;读取显示器模式int 10hsub cx,cxmov cx,char_cnt1;读取位形图组成点的字符,颜色,位置信息mov di,pointer1mov dh,line_on1mov dl,col_on1Aplot_next0: call checkadd dh,di+2 add dl,di+3 mov ah,2 int 10h mov al,di mov bl,di+1 push cx mov cx,1 mov ah,09 int 10h pop cx add di,4 call dly_qrtr loop Aplot_next0Aexit6: pop dipop dx pop cx pop bx pop ax retAmust_2 endp;检测是否按了 esc键退出; 设置光标位置; 写第一个点;cx 出栈,所存为初始值,作为循环次数; 准备写下一个点; 调用延时子程序; 返回执行 loop Aplot_next0Amust_21procnearpushaxpushbxpushcxpushdxpushdimovah,0fhint10hmovAcount,20Aexit1:calldly_qrtr;Amust_21 子程序; 寄存器入栈Aexit5:Aexitx0:Aexitx1:movcx,char_cnt1;读取位形图组成点的字符,颜色,位置信息movdi,pointer1movdh,line_on1movdl,col_on1callcheck;检测是否按了 esc键退出adddh,di+2adddl,di+3cmpdl,2jeAexit4;判断是否到达屏幕的最左端是的话执行movah,2int10hmoval,dimovbl,di+1pushcxmovcx,1movah,09int10h;在指定坐标处写第一个点popcxcmpal,40h;将指定坐标处字符与比较jeAexitx0;相同时执行Aexitx0cmpal,;将指定坐标处字符与比较jeAexitx0;相同时执行Aexitx0jmpAexitx1;与上面两种情况不同时执行Aexi txldecAcount0;若制定坐标处为或,连写1 1次jneAplot_next;不同时返回执行Aplo t_nex tmovAcount0,11adddi,4;准备写第二个点Aplot_next:dec Acountje Aexit5jmp Aexit1;延时,延长时间为延时程序的20倍sub cx,cxAexit4:call dly_qrtr;调用延时子程序call dly_qrtrcall dly_qrtrcall Aerase;调用子程序Aerasejmp Aexit5;返回Aexit5,读取点的信息call Aerasepop dipop dxpop cxpop bxpop axretloop Aplot_nextAerasecalladdaddcmp je mov int mov int cmp je cmp je jmpAexitx2: decAmust_21 endpproc nearmovcx,char_cnt1movdi,pointer1movdh,line_on1movdl,col_on1Aerase_next:check;检测是否按了 esc 键退出dh,di+2dl,di+3dl,2Aleftah,210hah,8 ; 读光标处的字符及其属性10hal,40h;与 字符比较Aexitx2al,7eh;与 字符比较Aexitx2Aexitx3Acount0jne movAexitx3Acount0,11Aexitx3:cmpAcount1,1jeAexit0mov1 ,al,movbl,03hjmpAexit7Aexit0:mov1 ,al,movbl,0Aexit7:pushcxmovcx,1movah,9int10h;设置条纹扫过后留下的痕迹为“”popcxcmpAcount0,11jneAerase_nextadddi,4loopAerase_nextdeccol_on1movcx,char_cnt1movdi,pointer1;列坐标自减 1,实现从右往左运动dh,line_on1dl,col_on1movmovAleft: ret Aerase endpdly_qrtrprocnear;定义延时子程序pushcxpushdxmovdx,500dll:movcx,65530dl2:loopdl2decdxjnzdllpopdxpopcxretdly_qrtrendpcheckprocnear;检测退出否子程序pushaxmovah,0bh;dos 调用检测键盘是否有键按下int21hcmpal,0jeback;无键按下返回movah,08hint21hcmpal,1bh;判断按下键是否为 esc 键jneback;按下键不是 esc 键则返回movah,4chint21hback:popaxretcheckendpcode_segends endmain;主函数结束
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!