




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 单片机技术课程设计说明书 密码锁院 、 部: 学生姓名: 指导教师: 职称: 专 业: 班 级: 完成时间: 摘 要随着现代科技的发展,锁变得更加的多样化,实用性和安全性最为重要的,于是电子密码锁毋庸置疑的成为了最受欢迎的锁类。电子密码锁具有众多的优点,保密性强、不需要钥匙、修改密码方便等。该课程设计是一个基于51单片机的液晶显示电子密码锁的设计。单片机技术是智能化检测与控制领域应用非常普及并且拥有很大潜力的技术。本设计硬件方面采用美国Atmel公司的AT89S52单片机作为系统处理核心, AT24C02作为数据存储器,用于断电保护,液晶显示器则是采用LCD12684,作为系统输出设备,显示
2、系统提示信息,4*4矩阵键盘作为输入设备,再加以蜂鸣器、电源等电路构成整个系统硬件;软件方面则采用C语言编写。关键词:密码锁;at89s52;at24c02;lcd12684ABSTRACTWith the development of modern technology, diversification of the lock becomes more, practicality and safety is the most important, so the electronic password lock undoubtedly become the most popular lock.
3、 Electronic cipher lock has numerous advantages, strong confidentiality, do not need to modify the password key, convenient etc.The curriculum design is a design of electronic password lock based on MCU 51 LCD display. SCM technology is the application of intelligent detection and control field is v
4、ery popular and have great potential technique. The design of hardware with USA Atmel company AT89S52 microcontroller as the core processing system, AT24C02 is used as the data memory, for power-off protection, liquid crystal display is the use of LCD12684, as the system output device, display syste
5、m information, 4*4 matrix keyboard as input device, and then the buzzer, the power supply circuit of the whole system hardware; software using C language.Key words: password-lock; at89s52; at24c02; lcd12684目 录1 设计课题任务、功能要求说明及总体方案介绍11.1 设计课题任务11.2 功能要求说明11.3 设计课题总体方案介绍及工作原理说明12 设计课题的硬件系统设计32.1 设计课题硬件
6、系统各模块功能简要介绍32.2 设计课题电路原理图、PCB图、元器件布局图42.3 设计课题元器件清单43 设计课题软件系统的设计53.1 设计课题使用单片机资源的情况53.2 设计课题软件系统各模块功能简要介绍53.3 设计课题软件系统程序流程框图64 设计结论、仿真结果、误差分析、教学建议等等84.1 设计课题的设计结论及使用说明84.2 设计课题的仿真结果94.3 设计课题的误差分析144.4 设计体会14参考文献:15致 谢16附 录17附录 A17附录 B18附录 C19附录 D21附录 E221 设计课题任务、功能要求说明及总体方案介绍1.1 设计课题任务设计并制作一个液晶电子密码
7、锁,具有密码修改,超级密码,报警等功能。1.2 功能要求说明(1)密码锁上电或按键复位后能自动显示系统提示符“P.”;(2)可以存储原始密码,超级密码和修改后的密码;(3)显示提示信息;(4)密码输入时处于保密显示状态;391.3 设计课题总体方案介绍及工作原理说明1.3.1 设计课题总体方案介绍本课程设计采用AT89S52作为系统处理核心,4*4键盘输入密码,AT24C02用于存储密码,进行掉电保护,蜂鸣器用于报警功能,LCD12684用于显示系统提示信息,5V电源供电。硬件系统框图如图1所示。图1 硬件系统结构框图1.3.2 工作原理说明用4*4键盘输入密码,单片机调用AT24C02中存储
8、的原始密码对输入密码进行比较,通过显示屏输出相应的系统提示信息,通过提示信息,可修改密码,并存储新密码,用于下次开锁。可进行手动复位,回到初始界面。2 设计课题的硬件系统设计2.1 设计课题硬件系统各模块功能简要介绍本课程设计硬件系统采用AT89S52为核心,再加以LCD12684液晶显示电路,蜂鸣器电路,AT24C02密码存储电路,4*4键盘输入电路,手动复位电路,晶振电路,电源电路,下载口电路等模块。2.1.1 单片机AT89S52模块AT89S52是一款低功耗、高性能CMOS8位微控制器,具有8K可编程 Flash存储器。使用 Atmel 公司高密度非易失性存储器技术制造,与工业 80C
9、51 产品指令和引脚完全兼容。价格低廉,不过在性能方面上完全可以胜任本设计课题中硬件系统中的处理核心。结合各个方面,所以决定采用AT89S52单片机作为核心处理模块。2.1.2 LCD12684液晶显示模块LCD12684带有中文字库,是一种具有4位/8位并行、2线或3线串行多种接口方式,可以显示出8*4行16*16点阵的汉字,综合各方面,所以采用了LCD12684为本设计课题的液晶显示模块。AT89S52的P0口接LCD12684的八位数据线,用于显示提示信息。P3.1 接寄存器选择端RS,当RS=1时,DB0DB7为显示数据;当RS=0时,DB0DB7为显示指令数据。 P3.6接读写控制端
10、R/W,当R/W=1的时候,写操作;当R/W=0的时候,读操作。P3.7接使能端E,写入操作时,使能端下降沿有效。2.1.3 蜂鸣器模块用P3.0口控制一个无源蜂鸣器,作为提示音,当密码错误时会发出声音,进行提示。由于单片机输出的电流过小,无法驱动蜂鸣器工作,所以使用了三极管进行放大电流,使蜂鸣器可以正常工作。本设计课题通过控制单片机的P3.0口进而控制蜂鸣器的工作状态。2.1.4 AT24C02密码存储模块AT24C02是美国Atmel公司生产的低功耗CMOS型E2PROM,内部含含256*8位存储空间,具有抗干扰能力强,不易丢失数据,体积小,成本低等优点。AT24C02有一个16字节页写缓
11、冲器,该器件通过I2C总线接口进行操作,还有一个专门的写保护功能。本设计课题主要用到AT24C02的写保护功能。其中其串行时钟SCL端接P2.4;串行数据/地址SDA端接P2.3口,完成数据和指令的传送,相比较并行传输,更加节省I/O口资源。2.1.5 4*4键盘输入电路本设计课题采用4*4行列式键盘,共有键位16个,4根行线连接P1口低四位,另外4根列线连接P1口高四位,在一开始的时候,给4根行线赋高电平,当有按键按下时,则某行和某列相通,高电平变低,可知该行有按键被按下,然后进行列扫描,同理可识别出按键所在列。最后则可知按下的键位。、2.1.6 手动复位模块为确保系统中电路稳定可靠工作,复
12、位电路是必不可少的一部分。本设计课题采用AVR复位电路,当按下复位按钮的时候, VCC的高电平就会直接加到RET端。由于人的动作再快也会使按钮保持接通一段时间,所以完全能够满足复位的时间要求。2.1.7 晶振模块单片机本身就是一个复杂的同步时序电路,为了保证能够实现同步工作方式,必须提供时钟信号,以使其系统在时钟信号的控制下按时序协调工作。晶振电路是不可缺少的一部分,AT89S52芯片中的高增益反向放大器输入端为引脚XTAL1,输出端引脚为XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只负载电容。保证单片机能够进行正常工作。2.1.8 电源模块本设计直接采用5V电源进行外部供电,这可
13、使整个系统处于正常工作状态。2.1.9 下载口模块通过下载口模块,可以将用KEIL软件产生的Hex文件下载入单片机AT89S52中,使其进行正常工作。2.2 设计课题电路原理图、PCB图、元器件布局图详见附录A、B、C、2.3 设计课题元器件清单详见附录D3 设计课题软件系统的设计3.1 设计课题使用单片机资源的情况P0口接LCD12684的八位数据线,用于显示提示信息;P3.1 接寄存器选择端RS;P3.6接读写控制端R/W;P3.7接使能端E;P3.0口控制一个无源蜂鸣器,用于提示;P1口接4*4矩阵键盘,用于输入数据;P2.3、P2.4分别接AT24C02的SDA、SCL端;RET接手动
14、复位模块RET端;XTAL1、XTAL2分别接晶振模块的XTAL1和XTAL2端。3.2 设计课题软件系统各模块功能简要介绍主函数:主体的布局,并调用相应的子函数,使其构成一个完整的系统;延迟子函数:用于去抖,显示间隔,使系统更加的有条理;显示子函数:用于显示系统提示的信息;密码锁子函数:用于密码的逻辑关系,使整个程序拥有密码锁的功能,可以存储密码和调用密码,主要控制AT24C02的工作;按键扫描子函数:用于输入键值,实现与用户的交互;蜂鸣器子函数:实现蜂鸣器的报警功能。3.3 设计课题软件系统程序流程框图图2 主程序流程图图3 密码处理函数流程图图4 按键扫描流程图4 设计结论、仿真结果、误
15、差分析、教学建议等等4.1 设计课题的设计结论及使用说明本设计课题使用AT89S52单片机作为主控芯片, LCD12684作为其液晶显示器, 用AT24C02串行传输存储器来存储密码,4*4矩阵键盘,蜂鸣器,以及其他外围电路,用C语言编写其控制程序,最终成功设计出一款密码锁,可以进行随时改密,并存储新的密码可以用于下次开启,当忘记密码时配有专有的超级密码,可以解决忘记密码所带来的麻烦,同时拥有丰富声光提示信息。此密码锁具有很高的使用价值,可在日常生活中发挥巨大的作用。利用单片机控制,矩阵键盘输入密码,液晶显示器显示中文提示字符,蜂鸣器发声,密码锁运行的效果非常的良好,设计课题取得了圆满的成功。
16、密码锁的初始密码为88888888,超级密码为99999999,可以修改密码;当输错三次密码时,密码锁将会报警,并锁死,按下返回键和复位键可以回到初始界面。加入了AT24C02模块,拥有掉电保护功能,就算停电,也不用担心密码的遗失。4.2 设计课题的仿真结果图5 初始页面图6 菜单页面图7 进入界面图8 密码输入界面图9 密码输入正确提示图10 密码输入错误界面图11 超级密码功能界面图12 超级密码输入界面图13 重新输入密码选择界面图14 安全退出选择界面4.3 设计课题的误差分析LCD12684显示有乱码,跟延迟没有设置合理有一定的关系,通过多次试验,无改变,不过不影响正常的使用,此误差
17、可以忽略。4.4 设计体会 本设计课题最终成功运行,不过存在一些小误差,LCD12684显示有瑕疵,至今无力解决,颇感无奈。通过设计,对多方面的知识都有很大的增加,对以后设计有很大的作用,积累了大量的经验,收获颇丰。对于几个芯片的理解和运用更加的自如。再设计中感到很大的压力。同时对单片机的功能更加期待,其强大的功能还有待后续发掘,其潜力无穷。参考文献1 刘迎春.MCS-51单片机原理及应用教程M .北京:清华大学出版社,2005Liu Yingchun. MCS-51 tutorial Microcomputer Principle and application M. Beijing: Ts
18、inghua University press, 20052 沙占友.单片机外围电路设计M . 北京:电子工业出版社,2003Sha Zhanyou. Peripheral circuit design M. Beijing: Publishing House of electronics industry, 20033 李念强.单片机原理机及应用M .北京:机械工业出版社,2013Li Nianqiang. Principle of single chip machine and application of M. Beijing: Mechanical Industry Press, 20
19、13致 谢 本次设计课题圆满结束,在此要先感谢我的指导老师王韧老师,他严谨求实的作风给我很大的鼓舞。设计过程中,从前期的功能设计,电路设计,软件上每一条语句的调试,期间遇到许许多多的难点,众多意想不到的问题。克服这些困难,最终获得成果,知识融入到设计的每个角落里。当最终完成整个设计,自是欣喜不已。最后还要感谢帮助过我的众多同学。附 录附录 A 图15 密码锁原理图(Altium Designer绘制)附录 B图16 密码锁原理图(AUTO CAD绘制)附录 C图17 PCB底层图 图18 PCB顶层图图19 元器件布局图附录 D表1 元器件清单名称规格数量DS1302加底座1 AT24C02加
20、底座1TLC549加底座1 发光二极管9 下载口座子1 六脚按键开关1 大按键(带键帽)18 排阻10k5AT89S52加底座DIP(40)1 12864液晶1 电解质电容22uF2 瓷片电容33pf4 晶振12MHz1 精密可调电位器50K2 蜂鸣器1 三极管90121 电阻1k2 电阻2001 电阻4701 电阻4.7K1 电阻10K1 短路帽8 单排插针40p2 单排插槽40p1 电源5V1附录 E程序代码:/*标题:液晶显示电子密码锁 *日期:2013-12-24*作者:徐恩彬*功能:可以实现密码的修改,密码的存储,掉电后密码不丢失,拥有超级密码, 根据液晶的提示便可进行操作。 初始密
21、码为88888888;超级密码为99999999;修改密码要输入初始密码或超级密码才能修改密码*/*主函数*/#include <reg52.h>#include <intrins.h>#include "LCD12864.h"/液晶显示模块头文件#include "delay.h"/延时模块头文件#include "keyscan.h"/键扫描模块头文件#include "mimasuo.h"/频率测试模块头文件#include"beep.h"/报警模块头文件#defi
22、ne uchar unsigned char#define uint unsigned intvoid main() uchar v,flag_2;lcdset();delay(1000); /液晶显示初始化display(1,2,"湖南工学院 P."); display(2,2,"密码锁 D键进入"); display(3,2,"通信1103徐恩彬"); display(4,1,"学号11401340334"); /开机界面beepoff(); dov=keyscan();while(v!=0x28); writ
23、ecommand(0x01); /清屏,DDRAM的地址归零 while(v=0x28|v=0x88) display(1,2,"密码锁菜单 D"); display(2,1,"输入密码"); display(3,1,"重新设置密码"); display(4,1,"超级密码"); dov=keyscan(); while(v!=0x28); writecommand(0x01); /清屏,DDRAM的地址归零 if(v=0x28) display(2,1,"进入系统吗?");display(4,
24、1,"确认E 退出D/F ");dov=keyscan();while(v!=0x48)&&(v!=0x28)&&(v!=0x88); writecommand(0x01); /清屏,DDRAM的地址归零 if(v=0x48) /确认键键值 display(1,2,"请输入密码"); display(4,1,"确认E 退出F "); jingrumima(); dov=keyscan();while(v!=0x28)&&(v!=0x88); writecommand(0x01); /清屏
25、,DDRAM的地址归零 if(v=0x28) display(2,1,"重新设置密码吗"); display(4,1,"确认E 退出D/F "); dov=keyscan(); while(v!=0x48)&&(v!=0x28)&&(v!=0x88); writecommand(0x01); /清屏,DDRAM的地址归零 if(v=0x48) display(1,2,"请输入当前密码"); display(4,1,"确认E 退出/F "); flag_2=jingrumima();
26、/ 当前密码函数if(flag_2=1) writecommand(0x01); /清屏,DDRAM的地址归零 display(1,2,"设置新密码"); display(4,1,"确认E 退出/F "); stepupmima(); /设置新密码函数 flag_2=0; dov=keyscan();while(v!=0x28)&&(v!=0x88); writecommand(0x01); /清屏,DDRAM的地址归零 if(v=0x28) display(2,1,"输入超级密码吗"); display(4,1,&q
27、uot;确认E 退出D/F "); dov=keyscan();while(v!=0x48)&&(v!=0x28)&&(v!=0x88); writecommand(0x01); /清屏,DDRAM的地址归零 if(v=0x48) display(1,1,"请输入超级密码"); display(4,1,"确认E 退出/F "); chaojimima(); /超级密码函数 dov=keyscan();while(v!=0x28)&&(v!=0x88); writecommand(0x01); /清
28、屏,DDRAM的地址归零 /*beep*/#include"beep.h"void beepon() beep=0; void beepoff() beep=1; /*delay*/#include"delay.h"#define uint unsigned intvoid delay(uint x) while(-x);/* LCD12864显示程序*/#include "LCD12864.h"#include"delay.h"#include <reg52.h> #define uchar unsi
29、gned charsbit rs = P31;sbit rw = P36;sbit en = P37;/*液晶写命令函数*/void writecommand(uchar command) delay(100); rs=0; rw=0; en=1; P0=command; /液晶数据线P0 en=0; /*液晶写数据函数*/void writedata(uchar date) delay(100); rs=1; rw=0; en=1; P0=date; en=0; /*液晶设置函数*/ void lcdset(void) writecommand(0x30); /基本指令集 writecomm
30、and(0x01); /清屏,DDRAM的地址归零 writecommand(0x02); /地址归位 writecommand(0x0c); /显示开,光标关,反白关 writecommand(0x06); /DDRAM地址加1 /*液晶显示函数*/void display(uchar y, uchar x, uchar *p) switch (y) case 1:writecommand(0x7f+x); break; /液晶第一行 case 2:writecommand(0x8f+x); break; /0x90+(x-1) case 3:writecommand(0x87+x); br
31、eak; case 4:writecommand(0x97+x); break; default:break;while(*p) writedata(*p+); /*按键扫描程序*/#include "keyscan.h"#include"delay.h"#include <reg52.h> #define uchar unsigned charuchar keyscan(void)uchar scan,tmp; /列号,行号 P1=0xf0; /发全行0扫描码 if(P1&0xf0)!=0xf0) /若有键按下 delay(1000
32、); / 延时去抖 if(P1&0xf0)!=0xf0) /延时再判键是否还按下 scan=0xfe; while(scan&0x10)!=0) /逐行扫描 P1=scan; /输出行扫描码 if(P1&0xf0)!=0xf0) /本行有键按下 tmp=(P1&0xf0)|0x0f; delay(50000); /按键判释放 return (scan)|(tmp); /还回键值else scan=(scan<<1)|0x01; /行扫描码左移一位 return (0); /无键按下,还回0 /*密码锁函数程序*/#include "keys
33、can.h"#include"delay.h"#include "mimasuo.h"#include "LCD12864.h"#include"beep.h" #include <reg52.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned int#defineOP_READ0xa1/ 器件地址以及读取操作#defineOP_WRITE 0xa0/ 器件地址以及写入操作 #defineMA
34、X_ADDR 0xff/ AT24C02最大地址(256字节)sbit SDA = P23; /串行数据/地址sbit SCL = P24; /串行时钟uchar m,n;uchar i,ii,k;uchar code dis_code = 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39; /0-9,写入到AT24C01的数据串 uchar code surper_code=0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39;/ 超级密码9个9uchar password=0x38,0x38,0x38,0x38,0
35、x38,0x38,0x38,0x38; /原始密码8个8uchar Userpassword8; /按键输入密码存放数组uchar find_code16=" " /安全显示“*”缓冲数组 uchar table8;/ 读取密码存放缓冲数组uchar table_18;/新密码存放缓冲数组uchar j; /计算密码输入次数变量uchar flag_2; /密码输入正确标志位,当前密码输入正确后,方可重置密码uchar flag_3; /原始密码与设置密码判断标志位uchar flag_4;/ 连续三次输入判断标志位uchar jingrumima() flag_4=rea
36、d_random(254);/读取三次输入判断标志位 if(flag_4!=1) while(m!=15) m=key_return();switch(m) case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: if(ii<8) Userpasswordii=m; /输入原始密码 find_codeii='*' /对显示数组赋值“*” Display_String(find_code,0x89); ii+;
37、break;case 14: flag_3=read_random(255);/读取设置密码判断标志位 if(flag_3=1) for(k=0;k<8;k+) tablek= read_random(k);/单片机从24C02上读回数据,送给比较数组 else for(k=0;k<8;k+) tablek=passwordk; if( table0=Userpassword0&&table1=Userpassword1&& table2=Userpassword2&&table3=Userpassword3&&tab
38、le4=Userpassword4&&table5=Userpassword5&&table6=Userpassword6&&table7=Userpassword7)/判输入密码与原始密码是否相等 writecommand(0x01); /清屏,DDRAM的地址归零 display(1,2,"恭喜你!密码输入正确"); display(4,6,"退出/F"); j=0; flag_2=1; /密码输入正确标志位 else writecommand(0x01); /清屏,DDRAM的地址归零 display
39、(1,1,"密码输入错误!"); display(2,2,"请重新输入密码"); display(4,1,"确认E 退出/F "); do m=key_return();while(m!=14)&&(m!=15); j+; k=9; /跳出For循环条件 ii=0; flag_2=0; clear_password(); /清除密码函数 writecommand(0x01); /清屏,DDRAM的地址归零 display(1,2,"请重新输入密码"); display(4,1,"确认E 退
40、出/F ");if(j=3)/报警条件及函数 writecommand(0x01); /清屏,DDRAM的地址归零display(1,2,"您连续三次输入");display(2,1,"错误!界面锁死"); display(3,1,"重新输入!");display(4,6,"退出/F");j=0;SDA = 1; SCL = 1;delay(5000);write_byte(254, 1);/三次机会已经到,判断标志位beepon(); /报警 dom=key_return();while(m!=15);
41、/等待您按下返回键 beepoff(); /关闭报警 break; ii=0; m=0; clear_password(); writecommand(0x01); display(1,2,"安全退出密码输入界面"); display(4,5,"返回D/F"); return(flag_2); void stepupmima() while(m!=15) m=key_return(); switch(m) case 0x30: case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case
42、 0x37:case 0x38:case 0x39: if(ii<8) Userpasswordii=m; /输入新密码 find_codeii='*' /对显示数组赋值“*” Display_String(find_code,0x89); ii+; break; case 14: for(k=0;k<8;k+) table_1k=Userpasswordk; /准备数据 SDA = 1; SCL = 1; delay(5000); for(i = 0 ; i < 8; i+) write_byte(i, table_1i); /写入数据 到24C02 wri
43、te_byte(255, 1); /存储设置密码判断标志位 clear_password(); /清除密码函数 writecommand(0x01); /清屏,DDRAM的地址归零 display(2,1,"恭喜你!密码设置成功"); display(4,6,"退出/F"); dom=key_return();while(m!=15); break; clear_password(); ii=0; m=0; writecommand(0x01); display(1,2,"安全退出密码重置界面"); display(4,5,"
44、;返回D/F");void chaojimima()while(m!=15&&m!=14) m=key_return(); switch(m) case 0x30: case 0x31:case 0x32:case 0x33:case 0x34:case 0x35:case 0x36:case 0x37:case 0x38:case 0x39: if(ii<=7) Userpasswordii=m;find_codeii='*' Display_String(find_code,0x89);ii+; break; case 14: for(k=0
45、;k<8;k+) /确认键 if(surper_codek=Userpasswordk) /判输入密码与超级密码是否相等 writecommand(0x01); /清屏,DDRAM的地址归零display(1,2,"超级用户权限"); display(4,1,"还原/E 退出/F "); dom=key_return();while(m!=15&&m!=14);if(m=14) writecommand(0x01);display(2,2,"成功还原出厂设置");display(4,6,"返回/F"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年三亚市公务员考试行测试卷历年真题及答案详解(名校卷)
- 2025年农业废弃物资源化利用与新型农业经营主体培育策略研究报告
- 电磁场纳米防护-洞察及研究
- 四年级数学(四则混合运算带括号)计算题专项练习与答案
- 五年级数学(小数四则混合运算)计算题专项练习及答案
- 2025年西式面点师实操考核试卷:西式点心制作流程规范
- 2025年社区团购市场用户留存与社区团购活动策划创新报告
- 城市防洪工程建设中2025年社会稳定风险的城市安全风险评估与预警报告
- 2025年教育培训机构品牌建设策略及市场推广创新路径报告
- 2025年中国地毯织机行业市场全景评估及投资前景展望报告
- 上海浦东新区公办学校储备教师教辅招聘笔试真题2024
- 2025年中国水性马克笔行业市场前景预测及投资价值评估分析报告
- 电动汽车充换电站建设资料标准
- JG/T 375-2012金属屋面丙烯酸高弹防水涂料
- 南邮综评面试题目及答案
- 施工现场劳动力调配与材料保障措施
- 学校档口租赁合同提点模式协议书
- 工商业光伏技术方案
- 2025届四川省宜宾市叙州区英语七下期末质量检测试题含答案
- T/CCOA 62-2023大豆油生产技术规范
- 2025国家开放大学《人文英语1》综合测试形考任务答案
评论
0/150
提交评论