版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用课程设计说明书题目:基于单片机的家居智能防盗控制系统设计二 目 录1 选题背景22 原理与设计221 流程图222 系统总体设计323 系统模块设计43 代码54 结果分析195 总结19参考文献1 选题背景随着科技的开展和人们生活水平的提高,家居智能防盗成了越来越热门的话题。本课题贴近日常生活,又能很好地运用所学的单片机知识,主要是针对家庭的平安问题,既可以安装在门外,作为一个报警系统,防止钥匙丧失或被复制时被不法分子利用,造成不必要的损失。也可以外加传感器,连接至报警系统上,将窗户等需要监测的地方与大门构成整体的监控报警系统,对房屋进行整体监控。保证住户的人身财产平安。2
2、原理与设计开始2.1 流程图系统初始化检测中断信号1N语音提示,并触发中断0YNLED显示中断0时间,P1.0置位,语音报警持续30秒,P1.1置位, 报警。Y报警结束,等待下次中断信号。Y结束N 图2-12.2 系统总体设计本系统的设计中,采用51单片机为主控制器,用不同颜色的LED灯为装态指示灯,水银开关为开门的触发中断开关,按钮开关作为识别主人和陌生人的装置,DS1302作为时钟芯片提供准确的时间,在LCD1602上显示时间,当有陌生人闯入,触发报警系统包报警。LCD记录报警时间,并通过继电器控制给主人拨打 。系统工作原理介绍:本系统控制有三种状态:正常状态,仅绿灯亮,LCD时间正常显示
3、,此状态可以调整时间,调整时间是通过时间修改按键来调整的,按键分为调整启动按键即时间显示停止,KEY_STOP,按键按下,时间停止更新,同时出现调整位置的光标,按动KEY_R右移或KEY_L左移,移动光标,选择需要调整的时间单位,再按键KEY_ADD加或KEY_DEC减,来调整时间,调整好后,按键KEY_START,开启动时间更新显示。警告状态,这个状态在门开后触发水银开关使得,黄灯亮,蜂鸣响,LCD时间更新,处于警告状态,并且识别是否是陌生人。此时,如果按下识别按钮,5s后进入正常状态,如果不按下识别按钮或者时间超过5s,那么触发报警状态。报警状态,时间停止更新,红色灯亮,黄色灯不灭,继电器
4、触100ms拨打 给主人,同时警报启动,1分钟后除了LCD时间显示停止外其他模块恢复正常工作状态。整体硬件点路设计图见图2-2。图2-2 2.3 系统模块设计本系统的模块设计分为显示局部,时钟局部和实时控制显示局部主要是LED灯和LCD等为状态指示灯和系统时间显示等显示电路局部,绿色LEDP10,黄色LEDP11,红色LEDP12,蜂鸣器在仿真时用蓝色LED代替,接P13,LCD1602数据口接P0,RSP20,RWP21,ENP22。见图2-3。 图2-3时钟局部,该局部主要是由时钟芯片DS1302和时钟调整按键组成,DS1302的VCC1和VCC2同时接+5V,RST接上拉电阻,由51的P
5、23控制,SCLKP24,IOP25,2脚和3脚接晶振,并通过2个22uF的电容接地。时钟调整按键分别是KEY_STOP 图2-4P16,KEY_STARTP17,KEY_RP30,KEY_LP31,KEY_ADDP34,KEY_DECP35。见图2-4。实时控制局部,该局部主要是由扬声器,蜂鸣器,继电器等器件模块组成,蜂鸣器P13,扬声器P14,继电器P15,其中蜂鸣器,扬声器和继电器前端接各一个三极管为功率放大。见图2-5。图2-53 代码以下为LCD1602的头文件。#include<reg52.h>/包含头文件,一般情况不需要改动,头文件包含特殊功能存放器的定义#ifnde
6、f LCD1602_H#define LCD1602_H#define uint unsigned int/预定义#define uchar unsigned charsbit rs=P20;/1602的数据/指令选择控制线sbit rw=P21;/1602的读写控制线sbit en=P22;/1602的使能控制线/*P0口接1602的D0D7,注意不要接错了顺序*/void lcddelay(uint n) /延时函数uint x,y;for(x=n;x>0;x-)for(y=110;y>0;y-); void lcd_wcom(uchar com)/1602写命令函数rs=0;
7、/选择指令存放器 rw=0;/选择写P0=com;/把命令字送入P2 lcddelay(5);/延时一小会儿,让1602准备接收数据 en=1;/使能线电平变化,命令送入1602的8位数据口 en=0; void lcd_wdat(uchar dat)/1602写数据函数rs=1;/选择数据存放器 rw=0;/选择写 P0=dat;/把要显示的数据送入P2 lcddelay(5);/延时一小会儿,让1602准备接收数据 en=1;/使能线电平变化,数据送入1602的数据口 en=0; void lcd_init()/1602初始化函数 lcd_wcom(0x38);/8位数据,双列,5*7字形
8、 lcd_wcom(0x0c);/开启显示屏,关光标,光标不闪烁 lcd_wcom(0x06);/显示地址递增,即写一个数据后,显示位置右移一位 lcd_wcom(0x01);/清屏 #endif以下为DS1302的头文件/=/- 星期一 monday 星期二 tuesday 星期三 wednesday/- 星期四 thursday 星期五 friday 星期六 saturday/- 星期日 sunday/=#ifndef _DS1302_h_ #define _DS1302_h_ /-#define uchar unsigned char#define uint unsigned int/-
9、/- 定义端口 -sbit rst=P23;sbit sclk=P24;sbit io=P25;/-uint tab_13027=0,20,16,27,12,4,12; /初始化时时间日期设置 /秒 分 时 日月 星期 年uint tab1_13027=0,20,16,27,12,4,12; /-/- 函数声明 -/-void ds1302(); /获取DS1302时间void writeds_byte(uchar); /向DS1302写一字节uchar readds_byte(); /从DS1302读一字节void ds1302_init(); /DS1302初始化void writeds_
10、add(uchar,uchar); /指定地址向1302写一数据uchar readds_add(uchar); /指定地址从1302读一数据/=/- 函数 -/=/-/- 向DS1302写一字节 (上升沿有效) -/- 数据输入从低位到高位 -/-void writeds_byte(uchar dat) uchar i,dat_w; dat_w=dat; /数据送给变量dat_w for(i=0;i<8;i+) io=0; /数据线先拉低 if(dat_w&0x01) /如果是1 io=1; else /如果是0 io=0; dat_w=dat_w>>1; /右移一
11、位 sclk=0; /先拉低时钟信号 sclk=1; /拉高时钟信号 sclk=0; /写一字节完毕,拉低时钟信号/-/- 从DS1302读一字节 下降沿有效 -/- 读出数据时从低位0位到高位7 -/-uchar readds_byte() uchar i,k; k=0; for(i=0;i<8;i+) k=k>>1; /k右移一位,确保先读来的数据在低位 if(io) k=k|0x80; /读取的值先送K最高位 clk=1; /先拉低时钟信号 sclk=0; sclk=0; return (k);/-/- 指定地址写一数据 -/-void writeds_add(ucha
12、r add,uchar dat) /dat为十进制数 rst=0; sclk=0; rst=1; /拉高RST writeds_byte(add); / 写地址 writeds_byte(dat/10<<4)|(dat%10); / DS1302中的时间数据是BCD码形式sclk=0;rst=0;/-/- 指定地址读出一数据 -/-uchar readds_add(uchar add) uchar temp,dat1,dat2; rst=0;sclk=0; rst=1; writeds_byte(add); temp=readds_byte(); /读取的数据为16进制 sclk=
13、0; /读取完毕,拉低SCLK rst=0; /拉低SCLK dat1=temp/16; /16进制转成BCD dat2=temp%16; temp=dat1*10+dat2; /转换成10进制数字 return (temp); /-/- DS1302初始化 -/- 设置初始时间 -/-void ds1302_init() uchar i,add; add=0x80; writeds_add(0x8e,0x00); /允许写入 for(i=0;i<7;i+) writeds_add(add,tab1_1302i); add+=2; writeds_add(0x90,0xa6); /写充电
14、控制存放器. writeds_add(0x8e,0x80); /禁止写入/-/- 获取DS1302时间 -/- 在主函数中调用 -/-void ds1302() uchar i,add=0x81;/ writeds_add(0x8e,0x00); /允许向DS1302写入数据 for(i=0;i<7;i+) tab_1302i=readds_add(add); /获得的数据已转换为十进制 add+=2; /writeds_add(0x8e,0x80);/获取完一次时间,禁止向DS1302写入数据,提高可靠#endif以下为按键的头文件#ifndef _KEY_H_ #define _KE
15、Y_H_#include <reg52.h>#include "ds1302.h"#include "lcd1602.h"/-#define uchar unsigned char#define uint unsigned intsbit key_stop =P16; /光标停止sbit key_right =P30;/光标右移sbit key_left =P31;/光标左移sbit key_add =P34;/数字加sbit key_dec =P35;/数字减sbit key_start =P17;/*模糊延时延时函数*/ uchar i,
16、j; do for(i=0;i<10;i+) for(j=0;j<20;j+); time-; while(time>0); /*扫描按键*/int scan_key()if(key_stop=0)|(key_right=0)|(key_left=0)|(key_add=0)|(key_dec=0)|(key_start=0)delay_0ms(130);if(key_stop=0)|(key_right=0)|(key_left=0)|(key_add=0)|(key_dec=0)|(key_start=0)if(key_stop=0) while(key_stop); r
17、eturn 1;else if(key_right=0)while(key_right);return 2;else if(key_left=0)while(key_left);return 3;else if(key_add=0)while(key_add);return 4;else if(key_dec=0)while(key_dec);return 5;else if(key_start=0)while(key_start);return 6;else return 0;以下为主程序#include <reg52.h>#include "ds1302.h"
18、;#include "lcd1602.h"#include "key.h"/typedef unsigned int uint; /无符号类型别名定义/typedef unsigned char uchar;sbit led_green =P10; /平安标志sbit led_yellow =P11;/警告提示标志sbit led_red =P12;/报警标志sbit buzzer =P13;/警告提示sbit speaker =P14;/扬声器报警sbit relay =P15;/继电器拨打 int flag0=0,flag1=0,flag=0,fla
19、g_change=0;int x=6;uchar tab_date14="2021-08-24 FRI"/表示年月日星期uchar tab_time8="00:00:00"/表示时分秒/* 数据转换*/void trans()tab_date2=tab_13026/10+'0' /年十位 tab_date3=tab_13026%10+'0' /年个位 tab_date5=tab_13024/10+'0' /月十位 tab_date6=tab_13024%10+'0' /月个位 tab_dat
20、e8=tab_13023/10+'0' /日十位tab_date9=tab_13023%10+'0' /日个位tab_time0=tab_13022/10+'0' /小时十位 tab_time1=tab_13022%10+'0' /小时个位 tab_time3=tab_13021/10+'0' /分十位 tab_time4=tab_13021%10+'0' /分个位 tab_time6=tab_13020/10+'0' /秒十位 tab_time7=tab_13020%10+'
21、;0' /秒个位/-/ 星期显示/-void week()uchar i; if(tab_13025=1) i=7;else i=tab_13025-1; /*实时时钟里的值是6,但是2021/08/08是星期五,所以减1, Proteus的问题? */ switch(i) case 1: tab_date11='M'tab_date12='O'tab_date13='N' break; case 2: tab_date11='T'tab_date12='U'tab_date13='E' b
22、reak; case 3: tab_date11='W'tab_date12='E'tab_date13='D' break; case 4: tab_date11='T'tab_date12='H'tab_date13='U' break; case 5: tab_date11='F'tab_date12='R'tab_date13='I' break; case 6: tab_date11='S'tab_date12='T&
23、#39;tab_date13='A' break; case 7: tab_date11='S'tab_date12='U'tab_date13='N' break; default: ; break; /其它情况 int xxxx(int x)switch(x)case 0: return 3; case 1: return 6;case 2: return 9;case 3: return 13;case 4: return 0x44;case 5: return 0x47;case 6: return 0x4A;defaul
24、t : return 0;break;void updata_time()uchar i,j;if(flag=0)&&(flag_change=0)ds1302(); trans(); week();/如果没有中断,更新时间,反之,停止时间更新lcd_wcom(0x80+0x01);/显示地址设为80H即00H,上排第一位for(i=0;i<14;i+)lcd_wdat(tab_datei);lcddelay(10);lcd_wcom(0x80+0x44);/重新设定显示地址为0xc4,即下排第5位for(j=0;j<8;j+)/将table1中的数据依次写入160
25、2显示 lcd_wdat(tab_timej);lcddelay(10); void main()/flag0 flag1uchar i;P1=0x2F; /IO口初始化EA =1; /翻开全局中断EX1 =1; /外部中断1翻开IT1 =0;/低电平触发中断PX1 =1;/设置中断优先级,外部中断1EX0 =0;/屏蔽外部中断0ds1302_init();lcd_init();/led_green=0;while(1)/获取时钟芯片内的数据 updata_time();if(scan_key()=0)if(flag1) /*有人开门,处于警告状态,绿灯灭,黄灯亮,蜂鸣器*/ led_gree
26、n =1; led_yellow=0; buzzer =0; for(i=0;i<5;i+) delay_0ms(100); /延时约5supdata_time(); /*如果按下开关,说明是主人,取消警告状态,回复正常状态*/ if(flag0) /*取消警告,绿灯亮,黄灯灭,蜂鸣器关*/ led_yellow=1; buzzer =1; led_green =0; /*没按下开关,说明不是主人,警报状态*/ else /*警报状态:只有红灯亮,声音警报启动,并且继电器工作拨打 */ flag =1; /标志置位时间停止 led_green =1; led_red =0; buzzer
27、 =0; speaker =1; relay =0; delay_0ms(1000); /10ms左右 relay =1; for(i=0;i<20;i+) /持续60s左右 delay_0ms(1000); updata_time(); buzzer =1; speaker =0; flag0 =0; flag0 =0; flag1 =0;led_green =0;led_yellow =1;led_red =1;buzzer =1;elseswitch(scan_key()case 1: flag_change=1; lcd_wcom(0x80+xxxx(x); lcd_wcom(0
28、x0f); /case 2: flag_change=1; x+; lcd_wcom(0x80+xxxx(x); /lcd_wcom(0x0f); case 3:flag_change=1; x-; lcd_wcom(0x80+xxxx(x); /lcd_wcom(0x0f); case 4: flag_change=1; /时钟停止tab_1302x+; tab1_1302x+; /修改ds1302初值的数据 flag_change=0; /翻开时钟更新updata_time(); lcd_wcom(0x80+xxxx(x);/翻开闪烁光标 /ds1302_change(x); /把修改的数
29、据放到ds1302存放器ds1302();trans();week();/时间转换 lcd_wdat(tab_datexxxx(x);/让lcd显示修改后的时间lcddelay(10);/延时flag_change=1; break;/停止时间更新case 5: flag_change=1; tab1_1302x-; flag_change=0; writeds_add(0x8e,0x00);tab_1302x=readds_add(0x81); updata_time(); flag_change=1; break;case 6: flag_change=0;ds1302_init();lc
30、d_wcom(0x0f);updata_time();default: break;/*外部中断1的效劳程序*/void exist1() interrupt 2 flag1 =1;EA =1;EX0 =1;IT0 =1;/*外部中断0的中断效劳程序*/void exist0() interrupt 0flag0 =1;4 结果分析当整正常状态,绿色LED灯亮,时间正常显示,修改时间正确无误,如果触发外部中断1,那么响应中断,系统切换到警告状态,黄灯亮,绿灯灭,蜂鸣器响,提示主人关 闭警告状态,如果是陌生人或者时间过长而没有按下识别按钮,那么系统默认是陌生人,系统进入报警状态:继电器工作,给主
31、人拨打 ,声音警报系统触发,报警,而且时间停止更新并显示当前时间,即记录案发时间,同时主人可报110等采取一些必要措施来应对盗窃行为。5 总结刚开始做这个课程设计的时候,我还真是没有头绪,不知道该如何下手,因为对单片机的了解并不是很精,所以一下子要做这样一个设计确实有些困难。后来我上网查了一下以往同学做的和网上已有的资料,慢慢知道了该怎么去做,我也向做同样题目的学的好的同学请教,虽然最后还是没有完全掌握,但是还是学到了很多。 这次单片机课程设计,是要设计家具智能防盗系统,虽然平时生活中类似的东西很常见,但从没有想过其中的原理以及涉及的东西,这其中既要用到以前学过的硬件电路的知识,又要用到89C
32、52单片机中程序及C语言的编写、调试等内容。因此这就要求我们对所学过的知识不仅要懂,而且会用。实验的硬件由老师提供,可以在已有的硬件条件下作相应的修改,我们这次的修改是增加了一个主人识别按钮,以免影响其他市面上的防盗报警,只有一个触发开关,出发了就报警,这样很不切合实际,只要触发开关就会报警而不会识别是否是陌生人,是否需要报警。在做课程设计之前,我对单片机这门课还多少有些吃不透,但通过这次的课程设计,我学到了许多平时不了解或不熟悉的知识,得到了一次用专业知识分析和解决问题的锻炼,使我在单片机的根本原理及应用以及编程方面都有了提高,通过这样的锻炼,让我学到了之前没有接触的过的东西,也激发了对设计
33、的兴趣,在以后的学习中我会更加努力,使自己设计的更加完美。参 考 文 献1魏立峰等.单片机原理与应用技术.北京大学出版社.3赵建领,薛园园.零根底学单片机C语言程序设计.机械工业出版社.2021.4内部资料,请勿外传!9JWKffwvG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!
34、z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%M
35、z849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X
36、4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8K
37、qqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxG89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4N
38、GpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5ux
39、Y7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z8vG#tYM*Jg&6a*CZ7H$dq8KqqfHVZFedswSyXTy#&QA9wkxFyeQ!djs#XuyUP2kNXpRWXmA&UE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmY
40、WpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849Gx
41、Gjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmUE9aQGn8xp$R#͑GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$
42、vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&
43、amp;MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNuGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&Mu
44、WFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGj
45、qv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&am
46、p;gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD
47、6YWRrWwcvR9CpbK!zn%Mz84!z89Amv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5
48、pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#Qc
49、UE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWv*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$U*3tnGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz849GxGjqv$UE9wEwZ#QcUE%&qYpEh5pDx2zVkum&gTXRm6X4NGpP$vSTT#&ksv*3tnGK8!z89AmYWpazadNuGK8!z89AmYWpazadNu#KN&MuWFA5uxY7JnD6YWRrWwcvR9CpbK!zn%Mz84
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论