密码锁控制说明书
更新时间:2024-05-31 05:15:01 阅读量: 综合文库 文档下载
单片机课程设计报告
课题名称:密码锁控制
学院:机电汽车工程学院 班级:机092-1 姓名:李凡亮 学号:200923502115 指导老师:王东兴
小组成员:李凡亮 宋凯 万倩倩 张峰山
1
单片机课程设计
基于单片机8051的密码锁控制
一、 题目:密码锁控制 二、 任务要求:
1、密码锁由4x4键盘和LCD显示器组成。
2、其基本功能为:(1)使用LCD显示器来显示密码输入的相关信息(2)可以设置4位数字(0-9)密码;(3)内定另一组4位数字密码为‘1234’;(4)密码输入正确则继电器启动2s,密码输入错误则发出警报声。程序执行后工作指示灯LED亮,表示程序开始执行,LCD显示“PASSWORD A OR B KEY”,按下操作键A或B动作如下:操作键A:设置新的4位数字密码,操作键B:输入4位数字密码并做检查。
三、组内成员:
李凡亮 宋凯 万倩倩 张峰山 四、指导老师:王东兴
2012
年7月13日
2
本组成员及分工情况
组长:李凡亮
组员:张峰山 宋凯 万倩倩
李凡亮:任务分配,领导整体程序编制以及电路的模拟. 张峰山 宋凯:电路图的仿真
张峰山 宋凯 李凡亮:程序的编译调试
万倩倩 李凡亮 张峰山 宋凯:前期资料的搜集整理
全体小组成员集体参与资料搜集,前期程序的研讨,程序的编制和任务书的编写。
3
绪论
单片机自二十世纪七十年代问世以来,以其极高的性能价格比受到人们的重视和关注,应用广泛,发展快。由于其的优点多而突出,所以其的应用领域极广,几乎到了无孔不入的地步。在我国广泛的应用于工业自动化控制、自动检测、智能仪表、智能家用电器、航空航天系统和国防军事、尖端武器等各个方面。可以采用软硬件结合的办法提高系统的性能的控制技术为微控技术。
LCD 液晶显示器是 Liquid Crystal Display 的简称,是20世纪70年代初发展起来的一种液晶显示器。随着技术的发展其的分辨率、屏幕发光颜色等进入批量化合实用化。
随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。
本系统由单片机系统、矩阵键盘、LCD显示和报警系统组成。系统能完成开锁、报警、修改用户密码基本的密码锁的功能。本文详细阐述了个模块的功能以及它们之间的联系。
一、单片机概述
采用以8051为核心的单片机控制方案。利用单片机灵活的编程
4
设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。其原理如图所示。
图2-2单片机控制方案
2、单片机
8051
1>、芯片8051有40条引脚,共分为端口线、电源线和控制线三类
·4并行I/O端口,每个端口有8条端口线,用于传送数据、地址。
·可编程串行通道 ·5个中断源
·低功耗的闲置和掉电方式 ·两个16位定时器、计数器 ·片内振荡器和时钟脉冲 ·4K内部RoM ·128内部RaM
5
2>、管脚说明
1)、、主电源引脚VCC和VSS VCC——(40脚)接+5V电压; VSS——(20脚)接地。
2)、外接晶体引脚XTAL1和XTAL2
XTAL1(19脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。
6
XTAL2(18脚)接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。
3)、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP
①RST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VCC引脚之间连接一个约10μF的电容,以保证可靠地复位。VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±0.5V)内,VPD就向内部RAM提供备用电源。
②ALE/PROG(30脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。 对于EPROM单片机(如8751),在EPROM编程期间,此引脚用于输入编程脉冲(PROG)。
7
③PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入。
④EA/VPP(引脚):当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对851/8751/80C51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。对于常用的8031来说,无内部程序存储器,所以EA脚必须常接地,这样才能只选择外部程序存储器。
对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚也用于施加21V的编程电源(VPP)。
4)、输入/输出(I/O)引脚P0、P1、P2、P3(共32根) ①P0口(39脚至32脚):是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。
②P1口(1脚至8脚):是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4个LS型的TTL负载。对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第
8
二功能为T2EX捕捉、重装触发,即T2的外部控制端。对EPROM编程和程序验证时,它接收低8位地址。 ③P2口(21脚至28脚):是准双向8位I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2可以驱动(吸收或输出电流)4个LS型的TTL负载。 ④P3口(10脚至17脚):是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。P3能驱动(吸收或输出电流)4个LS型的TTL负载。 作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。 P3各口线的第二功能定义 口线 引脚 第二功能 P3.0 10 RXD(串行输入口) P3.1 11 TXD(串行输出口) P3.2 12 INT0(外部中断0) P3.3 13 INT1(外部中断1) P3.4 14 T0(定时器0外部输入) P3.5 15 T1(定时器1外部输入) P3.6 16 WR(外部数据存储器写脉冲) P3.7 17 RD(外部数据存储器读脉冲) 9
2>、MCS-51单片机的片外总线结构
综合上面的描述可知,I/O口线都不能当作用户I/O口线。除8051/8751外真正可完全为用户使用的I/O口线只有P1口,以及部分作为第一功能使用时的P3口。如图,是MCS-51单片机按引脚功能分类的片外总线结构图。
由图我们可以看到,单片机的引脚除了电源、复位、时钟接入,用户I/O口外,其余管脚是为实现系统扩展而设置的。这些引脚构成MCS-51单片机片外三总线结构,即:
①地址总线(AB):地址总线宽为16位,因此,其外部存储器直接寻址为64K字节,16位地址总线由P0口经地址锁存器提供8位地址(A0至A7);P2口直接提供8位地址(A8至A15)。 ②数据总线(DB):数据总线宽度为8位,由P0提供。
③控制总线(CB):由P3口的第二功能状态和4根独立控制线RESET、EA、ALE、PSEN组成。
下表列出各个子系列的配制情况供读则参考。
芯片种类 片内存储器 中断源 定时/计数器 串行口 电源消耗(mA) 制造工艺 ROM/EPROM RAM
8051(8751,8031) 4K 128 5 2 同、异步方式,8位或10位可程序控制 125 HMOS
8052(8752,8032) 8K 256 6 3 同、异步方式,8位或10位可程序控制 100 HMOS
10
80C51(87C51,80C31) 4K 128 5 2 同、异步方式,8位或10位可程序控制 24 CHMOS
80C52(87C52,80C32) 8K 256 7 3 同、异步方式,8位或10位可程序控制 24 CHMOS
8044(8744,8344) 4K 192 5 2 S.L.U 200 HMOS 3>、控制部件
控制部件是单片机的神经中枢,它包括时钟电路、复位电路、指令寄存器、译码以及信息传送控制部件。它以主振频率为基准发出CPU的时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的微操作,用来控制单片机各部分的运行。其中有一些控制信号线能简化应用系统外围控制逻辑,如控制地址锁存的地址锁存信号ALE,控制片外程序存储器运行的片内外存储器选择信号EA,以及片外取指信号PSEN
二、硬件设计
2.1 硬件设计思想
●键盘采用4×4矩阵式键盘,P1口作为键盘的输入口。
●显示采用LCD显示 ●报警声音由P3.6引脚控制 ●错误指示灯由P3.7引脚控制
●电源与接地要做好片内外以及强弱电的隔离。
11
2.2 部分硬件方案论述 2.2.1 键盘输入单元:
这是用户使用时将密码输入单片机内的输入设备,具体结构构成见图:
采用16个按键开关,分别代表0~D14个数字输入键位,一个确认键和一个取消键。采取矩阵式键位设计,此举为减少对单片机的I/O口的使用,同时也是的我们键盘的的外形更好看,使用更人性化。键盘的行线和列现分别接80C51单片机的P1.0~P1.7八个端口。对键盘的识别方式我们采取行扫描法。具体使用由编程由单片机完成。 逐行(或列)扫描查询法,是一种最常用的按键识别方法,介绍过程如下。
1>、判断键盘中有无键按下。将全部行线置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。
2>、判断闭合键所在的位置。在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。
12
图 键盘输入单元
2.2.2 显示单元:
此设备是用户使用密码防盗锁的的显示装置,是实现人机交换的重要设备。用户通过它来观看键位数字的信息,了解已输入的密码个数,单片机通过它告知用户操作的正确与否,对用户的操作进行提示和引导。
13
HEADER2vccd321HEADER112d2DPYd11A2Bag9cdpdbCLKLCD显示电路
89MRDPYQ0Q1Q2Q3Q4Q5Q6Q7345601111213abcfdeefgpd12345678IC1ag9cdpdbLED01A2BCLKLCD显示器的基本结构和原理
89MRQ0Q1Q2Q3Q4Q5Q6Q7345610111213abcfdeefgpd12345678IC2DPYag9cdpdbLED1 14
CLK345601111213abcfdeefgpd123456781A2B89MRQ0Q1Q2Q3Q4Q5Q6Q7IC3DPYag9cdpdbLED21A2BCLK89MRQ0Q1Q2Q3Q4Q5Q6Q7345610111213abcfdeefgpd12345678IC4DPYag9cdpdbLED31A2BCLK89MRQ0Q1Q2Q3Q4Q5Q6Q7345601111213abcfdeefgpd12345678IC5DPYagdb9cdpLED41A2BCLK8C9MRQ0Q1Q2Q3Q4Q5Q6Q7345601111213abcfdeefgpd12345678 IC6
LED5
LCD模组是由控制器,驱动器,显示器三部份所组成,而目前市面上LCD的模组驱动/控制器都是由日制的HD44780控制器晶片(或是相容产品),因此外部接脚的功能也都相同,这个控制器的内部共有80 个位元组可供储存由外部送进来的资料,因此使用此款控器的LCD模组最多一次可显示80个字HD44780中储存显示资料的80个位元组,称之为Display DataRAM(DDRAM),DDRA的位址从00H~67H,共80个Byte。在LCD 上Show出资料DDRAM位址与可供显示位置的对应图
15
至于CPU如何将资料送给LCD显示的方法,是将欲显示的字元的ASCII 码写到LCD内部的DDRAM,LCD就会将这个自在其对应的位置显示出来.例如,若想在LCD 的左上角处(位址00h),显示’A’.就将ASCII码-41H,送到DDRAM 的00H 位址.
例:
16
2.2.3报警电路模块:
此设备用于输出按键声、开锁提示声、操作错误提示声及报警声;由P3.6输出脉冲驱动喇叭发声,电路如图:
图 报警电路模块
2.2.4晶振电路模块:
17
此模块为单片机提供时钟频率
图 晶振电路
2.2.5复位电路模块:
此模块用于实现密码锁的密码重置,复位电路接单片机的RST引脚,但复位键按下时,低电平使单片机复位,从而实现密码锁密码的重置。
图 复位电路模块
2.26 掉电存储单元
SCK:串行时钟端;
18
SDA:串行数据端,串行发送接收的数据从此引脚一位接一位输出输入
WP:写保护,当WP为高电平时存储器只读,当WP为低电平时,存储器可读可写。AT24C02的WP引脚为测试脚,可接地处理。 A0,A1,A2:片选或块选。
2.3 使用到的元器件列表
元器件 单片机 LCD显示器 蜂鸣器 晶体振荡器 可擦除存储芯片 按键开关 电容 电阻 发光二极管 滑动变阻器 非门 三极管 8051 LM016L SPEAKER CRYSTAL 24C024 BUTTON CAP RES LED-RED,LED-GREEN POT NOT 规格和型号 1 1 1 1 1 16 3 4 2 1 1 1 数量 Transistors 3 总框图设计
19
整体程序设计和程序流程图
1>、程序分为主程序和中断服务程序两个主要部分,主程序完
成变量和单片机特殊功能寄存器的初始化后,进入一个循环结构。在循环中,首先判断有无按键按下,若有则判断是数字键还是功能键,根据按键的情况执行相应的功能。然后根据密码是否正确的判断情况,执行相应的操作。循环中最后需要显示的内容通过动态扫描子在液晶显示器上显示。中断服务程序需要实现待机计时5秒。 单片机采用MCS51系列的单片机8051作为主要主控制器,外围电路器件包括液晶显示驱动、蜂鸣器的驱动输出、独立式键盘和发光二极管的输出等。
2>、程序主要包括以下几个模块
1)、主程序模块——主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。
2)、键盘扫描及识别子程序——键盘采用查询方式,放于主程序中,当没有按键按下时,单片机循环主程序,当按键按下时便转向相应的子程序处理,处理结束后返回。
20
3)、掉电存储服务程序——当比较密码的时候,需要读取AT24C02程序,将存储于芯片内的数据读到RAM中,然后和输入密码相比较,当修改密码时需要把密码保存于24C02中。
4)、显示子程序——包括关闭状态显示子程序(dis-A)、开锁状态显示子程序(DIS-B)、密码输入及修改状态显示子程序(DIS-C)、密码输入错误报警状态子程序(DIS-D).
程序流程图
21
四、程序设计
#include
uchar count0,count1,count3,num,n=0,temp,a,j,count4; uchar mima[4]; //初始密码存储区 uchar tab_key[50]; //输入密码存储区 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71};
bit enterflag; //确认键按下与否的标志 bit mimaflag; //密码正确与否的标志 bit xiugaiflag; //修改密码标志 bit enter1flag; //修改密码确认键标志 sbit red=P3^7; sbit bell=P3^6; sbit rs=P2^0;
22
sbit rw=P2^1; sbit lcden=P2^2; sbit green=P3^2; sbit scl=P3^4; sbit sda=P3^5;
uchar code table1[]=%uchar code table2[]=\ --------%uchar code table3[]=\
uchar code table4[]=\ (^_^) %uchar code table5[]=\
uchar code table6[]=%uchar code table7[]=\ --------%uchar code table8[]=\ is new%uchar code table9[]=\//*********************************键盘消抖**************************** void delay1() { ;; }
void delay2(uchar x) {
uchar a,b; for(a=x;a>0;a--)
23
数
函 for(b=100;b>0;b--); }
void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }
//****************************e^2room******************************* void start() //开始信号 { sda=1; delay1(); scl=1; delay1(); sda=0; delay1(); }
void stop() //停止
24
初始化
的{ sda=0; delay1(); scl=1; delay1(); sda=1; delay1(); }
//****************************
应
答
信
************************************* void respond() { uchar i; scl=1; delay1();
while((sda==1)&&(i<250))i++; scl=0; delay1(); }
//**********************************写字节操作函*****************************
void write_byte(uchar date)
25
号
数
{ uchar i,temp; temp=date; for(i=0;i<4;i++)
{
temp=temp<<1; //保持最高位,左移到进位 scl=0; delay1(); sda=CY; delay1(); scl=1; delay1();
}
scl=0; delay1(); sda=1;//总线释放
delay1();
}
//**********************************读字节************************** uchar read_byte() {
26
CY 操作函数
uchar i,k; scl=0; delay1(); sda=1; delay1(); for(i=0;i<4;i++) { scl=1; delay1();
k=(k<<1)|sda; //或运算,放到最低位 scl=0; delay1();
}
return k; }
//***********************************写地址***************************
void write_add(uchar address,uchar date) { start();
write_byte(0xa0); respond();
27
数
函 write_byte(address); respond(); write_byte(date); respond(); stop(); }
//******************************************************************** uchar read_add(uchar address) {
uchar date; start();
write_byte(0xa0); respond();
write_byte(address); respond(); start();
write_byte(0xa1); respond(); date=read_byte(); stop(); return date;
28
读地址函数
}
//**************************LCD1602******************************** void write_com(uchar com) { rs=0; lcden=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; }
void write_date(uchar date) { rs=1; lcden=0; P0=date; delay(5); lcden=1; delay(5);
29
的初始化
lcden=0; }
//*****************************
密
码
比
较
函
数
***************************************** bit mimacmp() { bit flag; uchar i; for(i=0;i<4;i++) {
if(mima[i]==tab_key[i]) flag=1; else {
flag=0; i=4;
}
}
return(flag); //返回flag }
30
////**************************LCD显示函数开始
********************************************** void lcd_display() { }
//***********************************键盘功能分配函数群开始*********************************
//** 0 ** 4 ** 8 **修改(clr) ** //** 1 ** 5 ** 9 **修改密码键(a)**
//** 2 ** 6 ** 确认(en)**修改确认密码键(b)** //** 3 ** 7 **
void key_manage1() {
uchar i=0;
write_com(0x80+0x40+4); for(i=0;i write_date(table3[0]); } tab_key[n]=0; 31 n++; if(xiugaiflag==1) { mima[count4]=0; count4++; } } void key_manage2() { tab_key[n]=1; n++; if(xiugaiflag==1) { mima[count4]=1; count4++; } } void key_manage3() { 32 tab_key[n]=2; n++; if(xiugaiflag==1) { mima[count4]=2; count4++; } } void key_manage4() { tab_key[n]=3; n++; if(xiugaiflag==1) { mima[count4]=3; count4++; } } void key_manage5() 33 { tab_key[n]=4; n++; if(xiugaiflag==1) { mima[count4]=4; count4++; } } void key_manage6() { tab_key[n]=5; n++; if(xiugaiflag==1) { mima[count4]=5; count4++; } } void key_manage7() { 34 tab_key[n]=6; n++; if(xiugaiflag==1) { mima[count4]=6; count4++; } } void key_manage8() { tab_key[n]=7; n++; if(xiugaiflag==1) { mima[count4]=7; count4++; } } void key_manage9() { tab_key[n]=8; 35 n++; if(xiugaiflag==1) { mima[count4]=8; count4++; } } void key_manage10() { tab_key[n]=9; n++; if(xiugaiflag==1) { mima[count4]=9; count4++; } } //********************************** 确 认 ************************************************************ void key_manage11() { enterflag=1; //确认键按下 36 键 if(n==4) //只有输入4个密码后按确认才做比较 mimaflag=mimacmp(); else mimaflag=0; if(enterflag==1) { enterflag=0; n=0; //用FFFF清除已经输入的密码 for(count3=0;count3<4;count3++) { delay(5); tab_key[count3]=0x0f; } TR1=1; //打开计数器 count1=0; //定时器1由50MS累计到1S所用的计数器 if(mimaflag==1) { a=0; write_com(0x01); 37 write_com(0x80); for(count3=0;count3<16;count3++) { write_date(table4[count3]); //密码正确,显示 RIGHT,绿灯亮 green=0; delay(5); } delay(1000);delay(1000);delay(1000);delay(1000);delay(1000); write_com(0x01);write_com(0x80); for(count3=0;count3<20;count3++) {write_date(table9[count3]);} } else { n=0; red=0; // bell=~bell; // delay(100) ; 38 a++; if(a==3) { // for(count3=0;count3<8;count3++) //ffffffff清除密码 // { // delay(5); // tab_key[count3]=0x0f; // } write_com(0x01); write_com(0x80); for(count3=0;count3<9;count3++) { write_date(table5[count3]); //密码错误,显示红灯亮 } // { green=1; pw_error=0; //密码错误指示灯亮 bell=0; //长鸣声报警 delay(60000); delay(60000); delay(60000); 39 error, delay(60000); delay(60000); delay(60000); delay(60000); delay(60000); delay(60000); bell=1; //------------- TR1=1; //打开定时器计时 cnt_state=2; //下一状态处于15秒计时的状态 // } delay(5); // } TR1=0; } } } } 40
正在阅读:
密码锁控制说明书05-31
中小企业融资理论国内外研究现状06-02
一次借书的经历作文400字06-12
当前损害群众利益的突出问题的调查研究11-13
苏教版小学二年级语文下册《晚上的太阳》第二课时教学设计05-28
2018智慧树知到《食品安全与日常饮食》章节测试期末考试答案10-03
室内环境污染08-26
【精品】七年级数学上册第三章有理数的运算3-2有理数的乘法与除法3-2-2有理数的乘法与除法导学案青岛版05-03
护理员四级考试题库01-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 密码锁
- 说明书
- 控制
- 上海交大 数据结构 实验报告
- 工作总结:改革开放40年XX“三农”工作工作总结
- 项目质检员岗位职责
- 物理:4.3《牛顿第二定律》精品学案(人教版必修1)
- 托里县教育系统继续开展“安全生产年”活动总结
- 大学物理在线作业 2014秋建筑 石油大学
- MATLAB课件 第6章、MATLAB程序语句
- 主题五网络技术基础(含答案)
- 音乐鉴赏(1)
- 上海首家Shopping Mall的信息化探索
- 道路交通事故论文
- 南京市城建集团城市综合管理标准化建设单位责任区综合管理指导标
- 民航口试题
- 五年级上册语文第四单元测试卷
- 学生语言文字规范意识和能力培养方案
- 湘教版数学八年级下册第一章单元测试题
- 东平县第三实验小学课程校本化工作方案
- 2007年一级建造师《建设工程经济》考试真题
- 事故风险评估
- 财政学复习题