gsm家庭防盗系统设计_毕业设计论文说明书(编辑修改稿)内容摘要:

所示。 接口 P3 为单片机 P0 引脚的上拉电阻,接口 P2 为矩阵键盘的接入 口。 在晶振电路中,晶振频率选为 ,原因是使初值为整数,从而产生精确的波特率,如图 5 图 5 单片机控制模块电路图 传感器模块电路设计 在本设计中,为了提高传感器的精确度和方便性,传感器都通过引线连接到相应的接口上,而非直接焊接到电路板上。 由于传感器的信号为弱电平信号,容易造成单片机的误操作。 为保证系统具有较高的灵敏度,故加入由 LM324 组成的放大电路,电路如图 8 所示。 接口 P6 为烟雾传感器的接口;接口 P7 为人体感应传感器的接口。 通过分别调整可变电阻 R2 和 R7,可以改变烟雾传感器和人体感应传感器信号的放大倍数。 由于单片机的中断方式为低电平中断,所以经放大器平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 11 页 放大后的信号要先接入反相器,才能再连接到单片机的中断引脚上如图 6。 图 6 传感器模块电路图 报警模块电路设计 由于单片机 STC89C52 提供的工作电流只有 20mA,而蜂鸣器正常工作电流一般比较大, 片机的 I/O 口是无法直接驱动的 ,因此需要一个外部的驱动电路,提供正常工作所需要的电流。 报警模块电路图如图 7 所示,在该电路中, speaker 连接在单片机引脚上,接口 P4 为蜂鸣器,晶体管工作在饱和状态,相当于一个开关。 图 7 报警模块电路图 平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 12 页 GSM 模块的工作主要由单片机通过串口将 AT 指令发送到 GSM 模块。 串口电路主要由芯片 MAX232 进行电平转换,实现串口电压与单片机电压的转换,确保双方可以相互通信,电路如图 8 所示。 单片机的 TXD 引脚接到 MAX232 的 T2IN引脚,单片机的 RXD 引脚接到 MAX232 的 T2OUT 引脚。 图 8GSM 模块接口电路图 存储器模块电路设计 存储器模块电路主要由芯片 AT24C02 构成,存储器模块电路图如图 9 所示。 在本设计中,只有一个 AT24C02 被总线寻址这三个地址,故输入脚 A0A1A2 可悬空或连接到 Vss。 串行时钟 SCL 和串行数据 /地址引脚 SDA 分别接到单片机引脚 和 上,通过单片机编程控制存储器的读写。 图 9 存储器模块电路图 平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 13 页 液晶模块电路设计 液晶模块电路如图 10 所示。 可调电阻 R1 调节液晶偏压, RS、 RW 和 EN 分别接到单片机的 、 、 引脚,通过单片机按相应时序编程控制液晶显示。 Data0~Data7 为液晶数据位,接到单片机 P2 引脚。 图 10 液晶模块电路图 平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 14 页 该系统主要实现的功能是:输入密码,密码正确则进入系统。 当输入密 码错误次数小于 3 次时,可以重新输入。 当错误次数达到 3 次,系统便进入自锁状态并通过 GSM 发送短信通知用户。 成功进入系统后可以选择不同的功能:开门、修改系统密码和开启报警系统。 选择开门功能。 则开门的指示灯会亮。 选择修改系统密码功能,则按照系统指引输入旧密码、新密码和重复新密码。 若输入的密码都正确,则修改密码成功。 若输入的密码错误,则需要重新输入,当错误次数达到 3 次时,系统也会进入自锁状态和通过 GSM 发送短信通知用户。 选择开启报警功能,烟雾传感器和红外热释能传感器便开始工作,一旦检测到信号,报警音响并通过 GSM 发 送短信通知用户。 若需要关闭报警功能,只要按关闭报警的按键,并正确输入密码后,报警功能就会关闭。 主程序流程图如图 17 所示。 传感器模块软件设计 在本系统中, LCD1602 液晶显示是通过调用 voiddisplay(ucharpos,uchar*q)函数实现的,其流程图如图 12 所示。 在 voiddisplay(ucharpos,uchar*q)函数中, pos是写入的位置, q 指向要写入的数据所在的数组。 该函数主要调用 lcd_wcmd(),lcd_pos()两个函数,先写显示地址,后写显示数据。 单片机 P2 口接 LCD1602 的数据引脚, P0^ P0^ P0^7 分别接 LCD1602 的 RS、 RW、 EP 引脚,通过单片机控制液晶显示 平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 15 页 图 12 流程图 在本系统中,键盘的软件实现通过分时扫描、键盘编码的形式来实现,其流程图如图 13 所示。 P1 口低 4 位作为键盘的行,高 4 位作为键盘的列。 P1 口低 4位先循环输出 0,单片机扫描 P1 口高 4 位。 如果有键按下, P1 口高 4 位不会全为1。 如果读取不到 P1 口的值,比如是干扰,则不做键值处理,返回继续循环下次。 平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 16 页 图 13 主程序流程图 在本系统中, GSM 模块软件设计是通过 串口发送 AT 指令给 GSM 模块来实现发送短信的功能,其流程图如图 14 所示。 首先串口发送字符串“ AT+CMGF=1\r”给 GSM 模块,设置短信为 TXT 模式;然后发送“ AT+CMGS=13760727792\r”,设置收信方的手机号码;接着将待发送短信的内容发给 GSM 模块;最后发送十六进制的 0x1A(回车)确认发送,这样就能通过 GSM 模块最终实现报警通知用户的平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 17 页 功能。 程序见附录。 图 14 短信发送流程图 在 GSM 模块和单片机的串行通信中,选用定时器 T1 在工作方式 2 设定波特率为 9600,其初值计算公式如下:  波特率384 1S MO Df256X o s c   已知 oscf 为 ,设波特率控制位 SMOD=0,则有   x F D02 5 39 6 0 03 8 4 10100 5 9 5 6X 6   故在程序设计时,定时器初值设置为 0xFD。 存储器模块软件设计 在本系统中, AT24C02 的存储功能主要是通过 I2C 总线来实现串行读写,其流程图如图 15 所示。 I2C 总线在写入和读取一个 8 位二进制数时,总是高位在前低位在后。 在读函数 _24C02Read(unsignedcharl_address)中,先向 I2C 总线发出读取 24C02 的写地址,在完成 I2C 串口协议后,写入 24C02 的读地址,再读取存储平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 18 页 器对应位置的数据。 在写函数 _24C02Write(unsignedchardat, unsignedcharl_address)中,先向总线发出写 24C02 的地址,在完成 I2C 串口协议后,写入 24C02 的写地址,然后写入数据。 程序见附录。 图 15AT24C02 读写流程图 液晶键盘模块软件设计 在本系统中, LCD1602 液晶显示是通过调用 voiddisplay(ucharpos,uchar*q)函数实现的,其 流程图如图 16 所示。 在 voiddisplay(ucharpos,uchar*q)函数中, pos是写入的位置, q 指向要写入的数据所在的数组。 该函数主要调用 lcd_wcmd(),lcd_pos()两个函数,先写显示地址,后写显示数据。 单片机 P2 口接 LCD1602 的数据引脚, P0^ P0^ P0^7 分别接 LCD1602 的 RS、 RW、 EP 引脚,通过单片机控制液晶显示。 程序见附录。 平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 19 页 图 16LCD1602 显示流程图 在本系统中,键盘的软件实现通过分时扫描、键盘编码的形式来实现,其流程图如图 17 所示。 P1 口低 4 位 作为键盘的行,高 4 位作为键盘的列。 P1 口低 4位先循环输出 0,单片机扫描 P1 口高 4 位。 如果有键按下, P1 口高 4 位不会全为1。 读取 P1 口的值,查表获得相应的 16 进制值存放 l_key 变量中,退出循环。 如果读取不到 P1 口的值,比如是干扰,则不做键值处理,返回继续循环下次。 程序见附录。 平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 20 页 图 17 键盘扫描流程图 密码锁软件设计 在本系统中,密码锁的软件实现是通过比较输入密码值和实际密码值是否一样来进行的,其流程图如图 18 所示。 如果密码正确,则进入下一步操作。 如果密码错误,则需要重新输入密码,直到密码正确为止。 每输错一次密码,错误次数记录变量 times 就会加 1。 一旦 times 增加到 3,则调用 GSM 程序发短信,并且系统进入死锁状态。 程序见附录。 平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 21 页 图 18 密码锁设置流程图 平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 22 页 (建议更名为“家庭防盗系统系统仿真” ) 电路板焊接成功后就可以进行调试,在调试之前,应先将已编好的程序下载到芯片 STC89C52。 编写好程序后,将文件加载到工程中,然后“ build”,生成“ *.hex”文件,将 AT89S52 芯片插到下载开发板中,然后打开下载软件,通过它导入“ *.hex”运行编译,载入到芯片即可。 密码锁调试 系统上电后,液晶显示“ P leaseinputthepassword:”字样,如图 24 所示。 2 秒后,系统进入输入状态,此时可通过键盘输入 6 位密码。 在输入状态,当输入错误时,可通过键盘上的“ Delect”键删除错误位。 当输入完成以后,按“ Enter”键确认输入。 若输入的密码正确,则进入操作系统,液晶显示“ Pleasepressthefunctionkey”字样,此时可通过按不同的功能键选择不同的功能。 若输入的密码错误,蜂鸣器长鸣同时液晶显示“ Error!”,如图 26 所示。 若错误次数小于 3 次, 2 秒后可重新输 入密码。 若错误次数达到三次,系统进入死锁状态,液晶显示“ Tryittomorrow!”,并通过 GSM 模块发送短信通知用户, 开门功能调试 在进入操作系统后,按“ Open”键进入开门功能。 此时,开门灯亮,液晶显示“ Openthedoor.”。 修改密码功能调试 在进入操作系统后,按“ Change ”键进入修改密码功能。 按照液晶指示平 顶 山 工 业 职 业 技 术 学 院 毕 业 设 计 ( 论 文 ) 说 明 书 第 23 页 “ Inputoldpassword”,输入旧密码;然后提示“ Inputnewpassword”,输入新密码;最后在提示“ Inputitagain!”后重复输入新密码。 若输入 的密码都正确,则修改密码成功,显示“ Establishessuccessful!”,如图 28 所示。 若密码有一次错误,则需要从输入旧密码开始重新操作,当错误次数达到 3 次时,系统也会进入死锁状态。 报警功能调试 在进入操作系统后,按“ Alarm”键进入开启报警功能,此时液晶显示“ Systemstartup.”。 当烟雾传感器检测到烟雾时,启动中断程序,蜂鸣器报警,液晶显示“ Alarm!”和“ Onfire!”,并通过 GSM 发送短信通知用户, 当红外热释能传感器检测到人体时,启动中断程序,蜂鸣器报警,液晶显示“ Alarm!”和“ Steal!”,并通过 GSM 发送短信通知用户。 调试存在问题 整个设计的难点在于调试方面,因此在调试中也遇到了很多问题,但经过查看资料和细心分析后,最终都能顺利解决。 下面总结以下调试过程中出现的问题及解决方法。 在制板过程中,难免会出现各种差错而导致电路短路或断路等现象。 为避免此类情况的发生影响调试结果,在调试前,先用万用表二极管档将电路板的线路都测一下,确保电路正常。 调试过程首先验证 LCD1602 能否正常运行。 先编写简单的 LCD1602 显示程序,然后通过串口下载 HEX 格式文件到单 片机。 上电后,液晶只亮但没有显示,初步怀疑是 RS、 RW 和 E 控制位设置错误。 但通过万用表测试控制引脚电平跳变情况,发现正常,故排除该可能。 最后经过反复检查,发现原来是因为单片机 P2引脚为倒序排列,在画板图时没有留意,导致接错数据引脚。 采用飞线修改后,LCD1602 能正常显示。 在设计程序时,考虑到存储器 AT24C02 全新。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。