版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计报告书题目:多功能密码锁的设计 学 院 自动化科学与工程学院 专 业 自动化_ _学生姓名 学生学号 班内序号 _指导教师 刘少君 _课程编号 _课程学分 1学分 _起止日期 _2016年1月到1月15日_封面纸推荐用210g/m2的绿色色书编辑完后需将全文绿色说明文字删除,格式不变教师评语(另起页)教师签名:日期:成绩评定备注课题名称:微机原理和实验接口课题名称:微机原理和实验接口3一:目的4二:课设内容4三:设计任务4四:问题分析:5五:设计思路与方案辩证5六:硬件组成介绍61.8086CPU628位数据/地址锁存器74LS273774154译码器74.8255A85.8253A
2、计数器96.六管共阴数码管9七:电路设计及功能说明107.1总的电路仿真原理图107.2 8086最小系统107.3 8255扩展I/O口的接法117.4 8253A计数器和蜂鸣器127.5 键盘模块和二极管显示模块127.6 数码管显示模块13八:软件流程图14九:课设结果及分析17十 :设计过程的难点和分析191.硬件方面:192.软件方面:20十一:收获、体会和建议201硬件设计202软件设计20十二:程序附录21一:目的1 掌握和熟悉微机接口电路的设计与使用2 掌握汇编语言,熟悉8086汇编指令系统,熟悉使用各种汇编指令3 学习并掌握8255,825374273等芯片的工作方式及其应用
3、4 学会使用常用的微机学习软件,例如EMU8086,protues,掌握程序调试程序的方法。5 提高实验能力和操作能力,提高分析问题,发现问题,处理问题的能力二:课设内容密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开,同时显示00字样。当输入密码错误时,发出错误警告声音,同时显示FF字样。当六次误码输入的条件下,产生报警电平报警。还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音三:设计任务1、选用8086和适当的存储器及接口芯片完成相应的功能。2、用LED显示器显示电子锁的当前状态。3、画出详细的硬件连接图。4、给出程序设计思路、画出软件流程图。5、给出地址分配表。6、给出所有程序
4、清单并加上必要注释。7、完成设计说明书(列出参考文献,所用器件型号)。四:问题分析:题目要求我们用8086作为主控制器,设计密码器,并能修改密码,同时还会发出确认声音。首先,密码器,必须要有输入,所以键盘必不可少,同时还要进行数据传送,对于一般的数据来说,如果距离较近且要求I/O口的数量不是特别多,我们都考虑用并行口,同时发声要考虑如何操作,还有是否需要添加中断。五:设计思路与方案辩证根据题目要求,我们选择8086作为主控制器,由于8086的串口不够用,需要我们应用8255的ABC三个端口进行并行口数据传送。整个设计思路的原理框图如下:第一, 我们先设计好8086的基本外接口,例如地址锁存器,
5、译码器,电源模块,这个可以适用于所有的系统,使得系统扩展性比较好,之后我们需要什么,就可以直接添加。第二, 对于键盘的选择,如果选用一般的按键,原理虽然简单,但是使用串口的个数特别的多,而且对于很多按键的话,比较零散,不易成为系统。而使用矩阵键盘,就可以避免上面的这些问题。同时对于矩阵键盘的扫描,我们也有几个方案(1) 先逐步扫描四行,然后再确定键值(2) 扫描一行,就确定列数,也就是说确定键值以上两个方案,第(2)方案是我们实验书上,实行起来,程序简洁易懂,故我们选第(2)个方案第三,LED的选择,密码器,肯定需要LED的显示,在这里,我们选用共阴接法的数码管,同时考虑到如果使用4个数码管显
6、示密码,也就是说四个密码的话,根据生活经验,这密码个数太少了,安全性不高,所以我们最终选择做六个密码,所以就选用了六个共阴数码管第四,题目要求要发出声音,这就需要蜂鸣器,同时我们考虑用计数器来输出脉冲来驱动蜂鸣器。思路:硬件,先查资料,画出原理图,然后在protues画出仿真电路图,便于之后仿真验证成果。软件,先构思,画出流程图,在EMU8086编写程序,编译,调试。最后软硬件结合,在protues中验证,修改直至满意。六:硬件组成介绍1.8086CPUIntel 8086是一个由Intel于1978年所设计的16位微处理器芯片,拥有四个16位通用寄存器,也能够当作八个8位寄存器来存取,以及四
7、个16位索引寄存器,用单一的+5V电源,时钟频率为4.77MHz10MHz,8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。可寻址的内存空间为1MB。28位数据/地址锁存器74LS27374LS273是一种带清除功能的8D触发器, 1D8D为数据输入端,1Q8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。D0D7:出入;Q0Q7:输出;第一脚WR:主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0(低电平);CP(CLK):触发端,上升沿触发,即当CP从低到高电平时,D0D7的数据通过芯片,为0时将数据锁存,D0D7的数据不变74154译
8、码器74154这种单片4 线16 线译码器非常适合用于 高性能存储器的译码器。当两个选通输入G1 和G2 为低时, 它可将4 个二进制编码的输入译成16 个互相独立的输出之一。实现解调功能的办法是:用4 个输入线写出输出线的地址,使得在一个选通输入为低时,数据通过另一个选通输入。当任何一个选通输入是高时,所有输出都为高,真值表如下4.8255A8255是Intel公司生产的一种通用的可表程并行I/O接口芯片,它有3个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,是一个40条引脚的双列直插
9、式组件,它内部有3个8位I/O数据端口:A口,B口和C口,以及一个8位的控制端口。5.8253A计数器8253内部有三个计数器,分别称为计数器0、计数器1和计数器2,他们的机构完全相同。每个计数器的输入和输出都决定于设置中控制寄存器中的控制字,互相之间工作完全独立。每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL6.六管共阴数码管共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用
10、时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。数值0123456789段码3FH06H5BH4FH66H6DH7DH07H7FH6FH七:电路设计及功能说明 7.1总的电路仿真原理图7.2 8086最小系统首先,protues中可以在芯片内部设置clk,内存器,我们在里面直接设置就可以了。同时,我们由于地址线和数据是分时复用的,所以我们需要锁存器,而且需要3片74ls373作为地址信号锁存器。MN/-MX引脚接+5V,选择最小模式 。通过译码器 74154地址译码,分出地址信号给外设。7.3 8255扩展I
11、/O口的接法因为8086的I/O口比较少,我们需要扩展I/O口,故可以选用8255A可编程并行口来扩展。同时,在8086系统中,采用的是16位数据总线。现在我们将8255的I/O口接到系统总线的低八位,为了使8255的端口地址是偶地址,我们参考微机实验接法,接8255A的A1,A0分别接系统总线的A3,A2,如下图。这时8255A各端口的地址分别为端口A端口B端口C端口控制端口端口地址0100H+00H*4 0100H+01H*40100H+02H*40100H+03H*47.4 8253A计数器和蜂鸣器如前面8255,为了使端口地址为偶地址,8253A的A0,A1,口分别接系统总线的A2,A
12、3口。同时,AD0到AD7分别接系统总线的A1到A7.8253A的gate接高电平,因为这里我们只是用它来实现驱动蜂鸣器。当然蜂鸣器接计数器的输出。端口A计数器端口B计数器端口C计数器端口控制端口端口地址0200H+00H*4 0200H+01H*40200H+02H*40200H+03H*47.5 键盘模块和二极管显示模块键盘的行接8255A的A口低四位,输出电平,键盘的列接8255A的C口的低四位,用来接受电平信号,由于这四个端口通过电阻连着5V的电压,所以在按键没按下的时候,输入的都是高电平。二极管D1来显示开锁电平,高电平亮,二极管D2用来报警,超过六次错误就检测到高电平而亮。7.6
13、数码管显示模块数码管的段选段接8255A的B口,位选端接8255A的A口低四位,即A口的低四位,分时复用。八:软件流程图这次课设的程序无疑是很长很大的,所以我们采用子程序来把各个功能模块化,即采用模块化的思想,使得主程序清晰简洁易懂,并且扩展性比较好,升级容易。主程序的功能主要是实现初始化,各个子程序的调用。编写时先分配各个子程序的功能,即画出流程图,然后依照流程图逐个写。在设计软件的时候既要考虑实用性,又要考虑程序的可行性。在程序中我增加了一些变量,从而使程序在操作之中避免了寄存器的操作,这样就省了存栈和弹栈的操作,这个思路我是参照C+里面的做法,两种方案各有优劣吧。在对于多个连续地址操作的
14、话,可以考虑的操作方法有用变址方法,用串的方法,在该程序中由于我没有涉及到ES段,所以使用了变址的方法,例如密码比对程序,数码管显示程序,密码存到缓冲区程序等,使用变址的方法使程序简洁,思路清晰,不至于杂沓。九:课设结果及分析通过验证,该密码器实现的功能:当打开电源,数码管显示PLEASE (为了区别s与5,s显示少一画)欢迎页面,程序初始密码为六个1,输完六个1后按确认键#后,显示正确,即显示“00”,同时可以发现D1管的阳极是高电平,即输出开锁高电平再次按返回键#,回到初始页面,随便输入一个错密码例如125555按确认键#,密码错误,显示“FF”,同时有两次报警声音。此次我们输进11111
15、1,即输对密码后,方能修改密码,在“00”页面,按下修改键*,进入修改程序,显示页面,显示“”接着我们输入新密码123456按确认键#,确认,此时发出确认声音“滴”,回到欢迎页面输入123456检验我们的结果,结果是对的,当输入不是123456即报错(如下)当输入错误次数达到六次以上D2管就会亮,而且报错声音响三次,且只有输入密码密码正确后才能把错误次数清零。以上证明程序运行正确,实现我们所要实现的功能。十 :设计过程的难点和分析1.硬件方面:第一:对硬件设计来说,有两大难点:第一,掌握protues软件的使用方法,熟悉的用protues软件搭建硬件系统。第二,如何搭建8086外围设备,如何使
16、连线最少最简洁,使程序编写最直接。虽然本人之前有用过proteus仿真过80c51的程序,但是配合使用的软件的是keil4,而且是用c语言,所以我必须寻找用于汇编的软件和protues配合,而且需要学习怎么使用。之前做的微机实验,说白了,外围电路其实已经差不多接好了,所以这次我得学习如何搭建8086外围设备接口电路,一开始真的是一头雾水,但通过查找资料,总算对这些有了很深入的了解,尤其是protues软件中自带的8086外围系统模本给了我很大的帮助,对我深入了解外围接口电路的搭建以及它们的工作方式提供了不可缺少的启示到。当然布线过程中也遇到很多隐藏问题,这次问题不易发现,所以也花了较长的时间在
17、里面。2.软件方面:软件上首先问题是在选8255作为并行口输出时,如何用有限的I/O口实现我们需要的功能,通过分析,I/O是不够用的,因为我们既需要发送段码,又要发送位码,同时键盘扫描的时候还需要分别两组I/O口,一组发送电平,一组扫描状态。我第一想到的方法使通过锁存器,复用同一组I/O,通过分时段分别发送段码和位码,但是通过多次仿真,发现他们之间信号影响很大,数码跳动特别大,多次处理也不能也没有完美的显示结果,由于课设时间紧急,这个方案暂时不用,留着之后自己再研究。最终采用了我们实验书上的方案,将A口的低四位分时复用,问题得到解决。在密码比对的时候,一开始用串指令的形式,但是出现的比对,一开
18、始还以为是其他地方写错了,后来通过分析,才恍然记起来串的目的段基值寄存器默认是ES,才解决了这个问题,不过最后我选择了运用变址的方法实现密码比对,两种方法各有优劣。在程序写完后,经常会出现数码管不亮的情况,这个可以从仿真的时候的电平查看,或者是查看程序,对着流程图逐一思考。再次就是程序中由于寄存器的使用次数特别,如果不小心保存好里面的值时,可能会起冲突,最终使用存栈和使用变量的方法解决了这个问题。还有在存密码的时候,操作次序也十分重要,通过比较各种方案,最终完美地完成了存密码的程序。十一:收获、体会和建议1硬件设计通过本次课设,我对微机的原理有了更深的理解,实践出真知啊,而且对protues这
19、个软件的功能很熟悉了。一步一步的来,从无到有,从有到优,内心充满了无尽的自豪感。2软件设计本次课程设计之中,软件的设计工作量很大而且很繁琐。尤其因为之前没用过汇编写过这么大的程序,写起程序来特别容易搞混。通过本次设计,我充分地体会到写程序用流程图的好处了,用流程图,思路清晰而且容易查找错误。之前写程序都是想到什么就写什么,然后再在这里补一下那里补一下,效率极其低下,而且程序的可读性不好。再次,虽然之前也做过微机实验,但程序都是一小块的,而且功能单一,这对我们来说是不足够的,我们必须要掌握写大程序的能力。通过本次课设,我收获到很多写程序的技巧,同时也对微机课上的知识是一次很好的查漏补缺的经历,对
20、汇编语言的认识和体会更进一步。也在课设的过程之中对汇编语言和c,c+的区别和联系有了很深的理解。做课设过程不是一帆风顺的,在这个过程之中,难免会陷入纠结之中,但每每解决程序中的bug时,就会有成就感,我在这个过程深深地体会到了编程之美,每次在睡觉前回想一下,一想到解决方法,连觉都不睡了,这也许就是它的魅力。感谢微机老师给我们的教学帮助,同时在本次设计中学会合理分工,团队合作。建议:微机课设收获很大,在这两段时间里,我既忙课设,又准备考试,看到其他学院都是考完试再有课程设计,这样就不用两头忙,所以还是希望学院能把考试安排完再安排课设。十二:程序附录;* ; 程序说明:;8255的片选段接8086
21、经译码器接出来的IOY1口;8255用来片选和段选数码管,键盘扫描;8253的片选接IOY2口,主要用来驱动蜂鸣器; 该程序采用的3*4矩阵,故程序中采用矩阵键盘扫描方法; 2016年1月10日;*IOY1 EQU 0100H ;8255片选端口始地址MY8255_A EQU IOY1+00H*4 ;8255的A口地址MY8255_B EQU IOY1+01H*4 ;8255的B口地址MY8255_C EQU IOY1+02H*4 ;8255的C口地址MY8255_MODE EQU IOY1+03H*4 ;8255的控制寄存器地址 IOY2 EQU 0200H ;8253片选端口始地址MY82
22、53_COUNT0 EQU IOY2+00H*4 ;8253计数器0端口地址MY8253_COUNT1 EQU IOY2+01H*4 ;8253计数器1端口地址MY8253_COUNT2 EQU IOY2+02H*4 ;8253计数器2端口地址MY8253_MODE EQU IOY2+03H*4 ;8253控制寄存器端口地址DATA SEGMENT DZ DW 0200H ;存放0200h这个地址SB DB 0DFH ;存放数码管初始段选值SM DB 0FEH ;存放键盘扫描的WRONG DB 00H ; DISPLAY DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7
23、FH,6FH,;0, 1,9的段显示码 DB 77H,7FH,39H,5EH,79H,71H,00H,40H,73H,38H,79h,77H,65H,79H; 数码管显示对应段码STRING DB 01H,01H,01H,01H,01H,01H ;初始密码,初始密码空间STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1START: MOV AX,DATA MOV DS,AX START1: CALL INITIAL ; 调用初始化函数BEGIN: CALL KEY
24、SAN ;键盘扫描 CMP AL,0CH ;确认键 JNZ NEXT ;不是的话就转到next CALL KEYE ;等待按键弹起 CALL MIMATEST ;密码比对 CMP CX,0H JZ OPEN1 ;密码正确 CALL TURNOFF ;否则,密码错误 JMP START1 OPEN1: CALL OPEN ;密码正确 JMP START1 NEXT: CALL PUSHKEY ;保存按键值 CALL KEYE ;按键未弹起则继续循环等待弹起 JMP BEGIN;*;初始化子程序;*INITIAL PROC NEAR ;初始化子程序 MOV DX,MY8255_MODE ;初始化8
25、255工作方式 MOV AL,81H ;方式0,A口、B口输出,C口高四位输出,C口低4位输入 OUT DX,AL MOV DX,MY8255_C ;初始化开锁电平、报警电平 MOV AL,00H OUT DX,AL MOV SI,0200H ;建立缓冲区,存放要显示的键值 MOV AL,12H ;先初始化键值,显示"PLEASE" MOV SI,AL INC AL MOV SI+1,AL INC AL MOV SI+2,AL INC AL MOV SI+3,AL INC AL MOV SI+4,AL INC AL MOV SI+5,AL MOV DZ,0200HINITI
26、AL ENDP;*;密码比对子程序MIMATEST;* MIMATEST PROC NEAR ;密码比对子程序 MOV SI,0200H MOV DI,OFFSET STRING MOV CL,0 ; 密码正确,则输出CX=00H,为密码正确的标志 MOV DX,06H AGIN: MOV AL,SI MOV BL,DI CMP DX,0 JZ QUITER CMP AL,BL JNZ NEXT1 INC SI INC DI DEC DX JMP AGINNEXT1: MOV CL,0FFH ;密码错误,则CX=0FFH为密码错误的标志QUITER:RETMIMATEST ENDP;*;键盘子
27、程序;*KEYSAN PROC NEAR ;键盘扫描子程序 ,该段程序参考实验书上的扫描方法 START2: CALL DISP ;显示刷新 CALL CLEAR ;清屏 CALL KEY ;扫描按键 JNZ XIAODOU ;有键按下则跳置XIAODOU XIAODOU:CALL DISP ;显示刷新 CALL CLEAR ;清屏 CALL KEY ;再次扫描按键 JNZ DEFINE ;有键按下则跳置DEFINE JMP START2 ;否则跳回开始继续循环 ;上面两段程序是为了消抖DEFINE: MOV SM,0FEH ;SM存放扫描开始时A端口输出值 MOV CL,00H ROW: M
28、OV AL,SM ;选取一行 MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C ;读C口,用于判断是哪一列按键闭合 IN AL,DXCOLUMN1:TEST AL,01H ;是否为第1列 JNZ COLUMN2 ;不是则继续判断 MOV AL,01H ;设置第1行第1列的对应的键值 JMP DECODECOLUMN2: TEST AL,02H ;是否为第2列 JNZ COLUMN3 ;不是则继续判断 MOV AL,02H ;设置第1行第2列的对应的键值 JMP DECODECOLUMN3: TEST AL,04H ;是否为第3列 JNZ NEXT2 ;不是则继
29、续判断 MOV AL,03H ;设置第1行第3列的对应的键值 JMP DECODE NEXT2: ADD CL,3 ;将CL上的值增加3 MOV AL,SM ROL AL,1 MOV SM,AL JMP ROW DECODE: ADD AL,CL ;解码,确定按键值 RETKEYSAN ENDP ;*;扫描按键是否退出对子程序;* KEY PROC NEAR ;扫描是否有按键闭合子程序 MOV AL,00H MOV DX,MY8255_A ; OUT DX,AL ;置A口为零 MOV DX,MY8255_C IN AL,DX ;读C口 OR AL ,0F0H NOT AL SUB AL,0H
30、;判断AL是否变成了0,有按键按下的话就不是0 RETKEY ENDP;*;按键是否弹起子程序;*KEYE PROC NEAR ; PUSH AX R1: CALL DISP ;显示刷新 CALL CLEAR ;清屏 CALL KEY ;扫描按键,判断按键是否弹起 JNZ R1 ;未弹起则继续循环等待弹起 POP AX RETKEYE ENDP ;*;保存键值子程序到缓冲区;*PUSHKEY PROC NEAR ; MOV BX,DZ MOV SI,DZ MOV SI,AL INC BX MOV DZ,BX CMP BX,0207H ;如果空间超过0206H则回到 0200h JNZ GOBA
31、CK MOV DZ,0200HGOBACK: RETPUSHKEY ENDP ;*;显示键值子程序,从第一个数码管开始依次显示;*DISP PROC NEAR ; PUSH AX ;以缓冲区存放的键值为键值表偏移找到键值并显示 MOV SI,0200H ;取缓冲区的第一个数的地址 MOV SB,0FEH MOV AL,SBAGAIN: MOV DX,MY8255_A OUT DX,AL ;选通一个数码管 MOV AL,SI ;取出缓冲区中存放键值 AND AX,00FFH PUSH DI MOV DI ,AX MOV AL,DISPLAYDI ;将键值作为偏移和键值基地址相加得到相应的键值显示
32、段码 MOV DX,MY8255_B POP DI OUT DX,AL CALL DALLY INC SI ;取下一个键值 MOV AL,SB TEST AL,20H ;判断是否显示完? JZ OUT1 ;显示完,返回 ROL AL,1 MOV SB,AL JMP AGAIN ;未显示完,跳回继续OUT1: POP AX RETDISP ENDPCLEAR PROC NEAR ;清除数码管显示子程序 MOV DX,MY8255_B ;段位置0即可清除数码管显示 MOV AL,00H OUT DX,AL RETCLEAR ENDP ;*; 开锁子程序;* OPEN PROC NEAR ; MOV
33、 DX,MY8255_C ;输出开锁电平 MOV AL,010H OUT DX,AL MOV SI,0200H ;显示00 MOV AL,00H MOV SI,AL MOV SI+1,AL MOV AL,10H MOV SI+2,AL MOV SI+3,AL MOV SI+4,AL MOV SI+5,AL MOV BL,0 ;密码错误次数清0 MOV WRONG,BL XUNHUAN: CALL KEYSAN CMP AL,0CH ;返回键,退出开锁子程序 JZ RETURN2 CMP AL,0AH ;修改密码键 JZ CALL CHANGEMIMA JMP XUNHUANRETURN2: C
34、ALL KEYE MOV DX,MY8255_C ;开锁电平置0 MOV AL,00H OUT DX,ALRETOPEN ENDP ;*; 修改密码子程序;* CHANGEMIMA PROC NEAR CALL KEYE MOV SI,0200H MOV AL,11H MOV SI,AL MOV SI+1,AL MOV AL,10H MOV SI+2,AL MOV SI+3,AL MOV SI+4,AL MOV SI+5,AL L1: CALL KEYSAN CMP AL,0CH JZ CHANGE2 CALL PUSHKEY CALL KEYE JMP L1 CHANGE2: CALL PUTMIMA CALL KEYE CALL RING ;确认则发出"滴"的确认音 CALL DALLYS RETCHANGEMIMA ENDP;*; ;保存修改后的密码子程序;* PUTMIMA PROC NEAR MOV SI,0200H MOV DI,OFFSET STRING MOV CX,06H ; AGIN1: PUSH AX MOV AL,SI MOV DI,AL POP AX INC SI IN
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版集装箱板房租赁与展览展示服务合同3篇
- 餐椅行业销售工作总结
- 二零二五年度数据中心基础设施安装合同汇编
- 二零二五年度全国首例典当质押借款合同范本3篇
- 湖北理工学院《高等数学I》2023-2024学年第一学期期末试卷
- 重庆文化艺术职业学院《离散数学C》2023-2024学年第一学期期末试卷
- 2024版工程结算协议书范本
- 2024装修公司的合作协议
- 周口理工职业学院《小学数学解题方法》2023-2024学年第一学期期末试卷
- 二零二五年度白酒线上销售平台运营合同2篇
- 承诺函(支付宝)
- FZ/T 81024-2022机织披风
- GB/T 24123-2009电容器用金属化薄膜
- 艾滋病梅毒乙肝实验室检测
- 国铁桥梁人行道支架制作及安装施工要点课件
- 领导科学全套精讲课件
- 粤教版地理七年级下册全册课件
- 小学科学苏教版六年级上册全册精华知识点(2022新版)
- 萎缩性胃炎共识解读
- 2022版义务教育语文课程标准(2022版含新增和修订部分)
- 精品金属线管布线施工工程施工方法
评论
0/150
提交评论