基于单片机STC89C52和GSM实现的远程拨号开锁设计(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于单片机STC89C52和GSM实现的远程拨号开锁设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。

目录

摘要

仿真图

单片机系统流程图 

实物图

代码

系统论文

资源下载


摘要

本文介绍了一种基于单片机STC89C52和GSM模块实现的远程拨号开锁设计。该设计通过单片机控制锁的电路,并通过GSM模块实现与手机的通信。用户可以通过手机发送指定的短信命令来控制锁的开关。当收到开锁命令后,单片机会对锁的电路进行控制,从而实现远程开锁。本设计实现了智能化的远程控制,方便了用户的使用,并提高了安全性和便利性。通过实际测试,该设计稳定可靠,实用性较强。

关键词:STC89C52;单片机;远程拨号开锁


仿真图


单片机系统流程图 


实物图


 实物图

 效果展示图

代码


/*****************************************************************************
程序名:	GSM接听电话                             
*****************************************************************************/#include <reg52.h>
#include "UART.h"
#include "Delay.h"
#include "LCD1602.h"
#include "FMQ.h"
#include "28BYJ.h"
#define Yes		1
#define No		0sbit Power_key=P2^7;
sbit led=P2^ 6;/********测试GSM是否启动**********/
int test_boot;
/********测试GSM是否注册网络**********/
int test_net_register;
/********测试是否有电话打入**********/
int test_have_call;
/********GSM串口接收数据缓存**********/
unsigned char GSM_receive[60];
/********GSM串口接收计数器**********/
unsigned char GSMDATA_count;
/********号码缓存*******************/
unsigned char number_get;
unsigned char door;
/********短信发送程序********/void message()
{Send_String("AT+CMGF=1\r\n");//指定信息的输入输出格式为文本格式Delay_Ms(100);Send_String("AT+CSMP=17,167,2,25\r\n");Delay_Ms(100);Send_String("AT+CSCS=\"UCS2\"\r\n");Delay_Ms(100);Send_String("AT+CMGS=\"00310033003200300038003000330038003000300035\"\r\n");Delay_Ms(100);Send_String("4E3B94F6007E95E85F004E86007E\r\n");Delay_Ms(100);Send_Char(0x1A);Delay_Ms(200);
}void main()
{unsigned char m;//初始化状态Power_key=0;test_boot=No;test_net_register=No;test_have_call=No;door=No;fmq=1;P2=0x00;number_get=No;//GSM启动Power_key=1;Delay_Ms(1000);Power_key=0;Uart_Init();				//串口初始化LcdInitiate();Print_String(line_1,0x00,"calling test--HM");//测试是否已经开机while(test_boot==No){Send_String("AT\r\n");Delay_Ms(1000);}//测试是否注册到网络while(test_net_register==No){Send_String("AT+COPS?\r\n");Delay_Ms(1000);	}//等待电话打入Send_String("AT+CLIP=1\r\n");Delay_Ms(100);while(1){while(test_have_call==Yes){if(number[10]=='5'&&number[9]=='0'&&number[8]=='0'&&number[7]=='8'){
//					if(door==No)
//					{for(m=0;m<200;m++){forward();}Print_String(line_2,0x0B,"open!");FMQ_0();Delay_Ms(100);FMQ_1();message();					//						door=Yes;
//					}	}else{Print_String(line_2,0x0B,"close");	led=1;}				}}	}/*****************************************************************************
串口中断
/****************************************************************************/
void uart(void) interrupt 4
{unsigned char UART_data;unsigned char i;if(RI){UART_data=SBUF;if(UART_data=='\n'){if(GSM_receive[0]=='O'&&GSM_receive[1]=='K')test_boot=Yes;elsetest_boot=No;if(GSM_receive[12]=='C')test_net_register=Yes;elsetest_net_register=No;if(GSM_receive[0]=='R'&&GSM_receive[1]=='I'&&GSM_receive[2]=='N'&&GSM_receive[3]=='G'){test_have_call=Yes;				}else{test_have_call=No;}if(GSM_receive[0]=='+'&&GSM_receive[1]=='C'&&GSM_receive[2]=='L'&&GSM_receive[3]=='I'&&GSM_receive[4]=='P'){for(i=0;i<11;i++){number[i]=GSM_receive[i+8];}display_number(line_2,0x00);	}GSMDATA_count=0;}else{GSM_receive[GSMDATA_count]=UART_data;GSMDATA_count++;}}RI=0;
}

系统论文


Abstract

This article introduces a remote dialing and unlocking design based on the STC89C52 microcontroller and GSM module. This design controls the lock circuit through a microcontroller and communicates with the mobile phone through a GSM module. Users can control the lock switch by sending specified SMS commands through their mobile phones. After receiving the unlock command, the microcontroller will control the lock circuit to achieve remote unlocking. This design realizes intelligent remote control, which facilitates user use and improves security and convenience. Through actual testing, the design is stable, reliable, and highly practical.

Keywords: STC89C52; singlechip; Remote dialing unlocking

1.1 单片机课程设计内容

利用STC89C52单片机和GSM实现远程开关门锁的,用户可在手机上拨号对门锁进行开关

1.2 单片机课程设计要求

1.能识别手机号并显示;

2.能显示密码即号码是否正确;

3.能通过短信通知用户门锁是否已打开。

1.3 系统运行流程

程序首先进行串口和LCD初始化,在主程序的开启GSM模块,并通过串口发送测试命令测试是否开机以及是否注册到网络;GSM模块正常工作后通过串口发送指令指示模块显示来电号码,单片机中断程序接收到反馈的数据后对数据进行处理,并调用步进电机程序、短信发送程序、LCD 显示程序和蜂鸣器程序。

相关程序调用是靠对来电号码的识别。

2.1 总体设计方案说明

1.程序设计及调试

根据单片机课程设计内容和要求,完成Protues仿真电路的设计和KEIL软件编写程序,并运行仿真模拟调试。

2.硬件焊接及调试

    根据仿真电路完成电路板的焊接并进行软、硬件的调试,达到预期目的。

3.后期处理

对设计过程进行总结,完成设计报告。

2.2 单片机系统方框图

第一部分 设计任务和要求

2.3 单片机系统流程图

 

第三部分 主要器件及简介

1. STC89C52单片机简介

STC89C52是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率为80MHz,片内含8K Bytes的可反复擦写1000次的Flash只读程序存储器,器件兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。

2.GSM模块简介

SIM900A是一个2频的GSM/GPRS模块,工作频段为EGSM900MHz和DCS1800MHz。该模块与单片机通过串口进行数据的收发,具有功率密度集中,传输距离远、抗干扰能力强等特点。因为SIM900A模块进行通信时需要插入SIM卡,方便简单,而且通过通信基站进行数据的传输,安全可靠。

3. 步进电机简介

步进电机28BYJ48型四相八拍电机,电压为DC5V—DC12V。当对步进电机施加一系列连续不断的控制脉冲时,它可以连续不断地转动。每一个脉冲信 号对应步进电机的某一相或两相绕组的通电状态改变一次,也就对应转子转过一定的角度(一个步距角)。当通电状态的改变完成一个循环时,转子转过一个齿距。四相步进电机可以在不同的通电方式下运行,常见的通电方式有单(单相绕组通电)四拍(A-B-C-D-A),双(双相绕组通电)四拍(AB-BC- CD-DA-AB-。。。),八拍(A-AB-B-BC-C-CD-D-DA-A)。

4.LCD1602液晶显示屏简介

LCD1602可以显示2行16个字符,有8位数据总线D0—D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。

LCD1602引脚说明如下所示:

VDD:电源正极,4.5V—5.5V,通常使用5V电压; 

VL:LCD对比度调节端,电压调节范围为0—5V。接正极时对比度最弱,接地电源时对比度最高,但对比度过高会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地; 

RS:MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平; 

R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据; 

EN:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。 

D0—D7:8为数据总线,三态双向。 

A:LED背光正极。需要背光时, A串接一个限流电阻接VDD, K接地。 

K:LED背光地端

第四部分 系统硬件设计

4.1 最小系统

复位时单片机的初始化操作,只要给RST引脚加上两个机器周期以上的高电平信号,就可以使单片机复位。本次采用的是12M晶振,按钮复位电路。

4.2 GSM通信电路

SIM900A芯片采用+5V电压输入,SIM900A的POWER接口与P2.7连接,高电平时间持续1s可开启模块;通过串口RX、TX与单片机连接进行数据传输。

4.3步进电机电路

28BYJ-48步进电机通过ULN2003PAC驱动芯片与单片机相连,采用+5V输入,IN1-IN4分别与单片机的P1.0-P1.3相连。

4.4 LCD显示电路

LCD显示屏的D0到D7与单片机P0口相连,LCD显示屏EN口与单片机P1.2口相连,RW与P1.1相连RS与P1.0相连。通过滑动变阻器改变LCD显示屏的显示对比度。

4.5 蜂鸣器

    蜂鸣器采用TMB12A05无源蜂鸣器,通过三极管与单片机P1.5相连。P1.5输出高电平蜂鸣器不响,输出低电平蜂鸣器响。


资源下载


如果有需要这个系统的源码、仿真、论文等资源的可以私信我。感谢你的阅读~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/47256.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python数据可视化(9)——绘制小提琴图

课程学习来源&#xff1a;b站up&#xff1a;【蚂蚁学python】 【课程链接&#xff1a;【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接&#xff1a;【链接】】 python&#xff1a;3.12.3 所有库都使用最新版。 Python绘制小提琴图 小提琴图(violin plot…

【经验总结】将markdown文档转换为word(swagger导出word)

工具准备&#xff1a; 任意markdown编辑器&#xff0c;以typora为例pandoc&#xff0c;官方下载地址 思路整理&#xff1a; 从swagger提取离线md文档将md文档转换为word格式 操作步骤&#xff1a; 一、安装pandoc &#xff08;markdown编辑器安装略&#xff09; 前往官网…

Yak与nuclei的深度融合:打造高效漏扫生态,解锁PoC管理新姿势

在Yakit中使用nuclei很简单&#xff0c;只需要几行代码。在Yak Runner中&#xff0c;使用下面代码&#xff0c;指定扫描的目标与选项&#xff0c;便能调用nuclei的漏扫能力&#xff1a; results:nuclei.Scan(target,opts...)~for result in results { dump(result)} 比如以…

UNiapp微信小程序Ucharts

效果图如下 以上为加载接口所得数据的玫瑰图与折线图 具体步骤如下 1&#xff0c;将插件导入Hbuiler 所需要的项目中&#xff08;插件地址&#xff1a;秋云 ucharts echarts 高性能跨全端图表组件 - DCloud 插件市场&#xff09; 2&#xff0c;导入成功是这样的 3&#xff0c…

相对定位语法:css+xpath基础语法使用-定位页面元素

文章目录 CSS相对定位获取元素关系定位顺序关系 XPath相对定位基础语法顺序关系-通过索引获取元素选取元素 总结 ✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来&#xff01; 编程真是一件很奇妙的东西。你只是浅尝辄止&#xff0c;那么只会觉得枯燥乏味&#xff0c…

uniapp小程序上传pdf文件

<template><view class="mainInnBox"><view class="formBox"><!-- 注意,如果需要兼容微信小程序,最好通过setRules方法设置rules规则 --><u-form :model="form" ref="uForm" :rules="rules"&g…

韦东山嵌入式linux系列-具体单板的 LED 驱动程序

笔者使用的是STM32MP157的板子 1 怎么写 LED 驱动程序&#xff1f; 详细步骤如下&#xff1a; ① 看原理图确定引脚&#xff0c;确定引脚输出什么电平才能点亮/熄灭 LED ② 看主芯片手册&#xff0c;确定寄存器操作方法&#xff1a;哪些寄存器&#xff1f;哪些位&#xff1f;…

STM32 BootLoader 刷新项目 (三) 程序框架搭建及刷新演示

STM32 Customer BootLoader 刷新项目 (三) 程序框架搭建 文章目录 STM32 Customer BootLoader 刷新项目 (三) 程序框架搭建典型工作流程 1. 硬件原理图介绍1.1 USART硬件介绍1.2 LED和按键介绍 2. STM32 CubeMX工程搭建2.1 创建工程2.2 系统配置2.3 USART串口配置2.4 配置按键G…

GD32 MCU上电跌落导致启动异常如何解决

大家是否碰到过MCU上电过程中存在电源波动或者电压跌落导致MCU启动异常的问题&#xff1f;本视频将会为大家讲解可能的原因以及解决方法&#xff1a; GD32 MCU上下电复位波形如下图所示&#xff0c;上电过程中如果存在吃电的模块&#xff0c;比如wifi模块/4G模块/开启某块电路…

10校大满贯!中国内地高校2024年1-6月CNS发文统计出炉

随着全球科研竞争的日趋激烈&#xff0c;CNS&#xff08;Cell、Nature、Science&#xff09;作为科学领域的三大顶级期刊&#xff0c;不仅是科研成果的展示平台&#xff0c;更是各国科研实力比拼的重要战场。近年来&#xff0c;中国高校在国际科研舞台上的表现愈发抢眼&#xf…

排队问题--逆序对应用

对于逆序对&#xff0c;我们可以用树状数组的方式来求&#xff0c;但是值得注意的是&#xff0c;我们逆序对一般求的是比这个元素小的个数&#xff08;位置可以是前或者后&#xff09;&#xff0c;那么求比这个元素大的个数怎么办&#xff0c;我们可以用 i - query() !!! 每个元…

生物安全柜验证:气流流型、粒子、浮游菌等参考标准

生物安全柜也是制药行业常见设备&#xff0c;根据GMP的要求&#xff0c;需对生物安全柜定期进行验证确认&#xff0c;确保生物安全柜的性能满足GMP洁净厂房的相关要求。 生物安全柜是实验室的基本设备&#xff0c;也是生物安全实验室的一级安全隔离屏障。其最重要的作用就是气流…

Windows与Linux双机热备软件推荐

网络数据安全在如今信息化的时代越来越变得举足轻重&#xff0c;因此服务器维护和管理也成为企业健康稳定运营的一项重要工作。但实际情况是很多公司并没有配备专业的运维人员&#xff0c;一般都会通过一些管理软件维护或者主机托管给服务商。整理6款服务器的Windows与Linux双机…

JAVA-----异常处理

一、定义 在 Java 中&#xff0c;异常&#xff08;Exception&#xff09;是指程序在执行过程中遇到的不正常情况&#xff0c;这些情况可能导致程序无法继续执行或产生错误的结果。异常可以是 Java 标准库中提供的内置异常类&#xff0c;也可以是开发人员自定义的异常类。 二、…

PyTorch面部表情识别项目实战

新书速览|PyTorch深度学习与企业级项目实战-CSDN博客 本书案例比较丰富、比较完整&#xff0c;可以用于课题研究、毕业论文素材&#xff0c;值得大家收藏。 人脸表情是人类信息交流的重要方式&#xff0c;它所包含的人体行为信息与人的情感状态、精神状态、健康状态等有着极为…

关于Ubuntu22.04中的Command ‘vim‘ not found, but can be installed with:

前言 在Ubuntu终端编辑文本内容时需要利用vim&#xff0c;但新安装的虚拟机中并未配置vim&#xff0c;本文记录了vim的安装过程。 打开终端后&#xff0c;在home目录中输入 vim test.txt但提示报错&#xff0c;提示我们没有找到vim&#xff0c;需要通过以下命令进行安装&…

yearrecord——一个类似痕迹墙的React数据展示组件

介绍一下自己做的一个类似于力扣个人主页提交记录和GitHub主页贡献记录的React组件。 下图分别是力扣个人主页提交记录和GitHub个人主页的贡献记录&#xff0c;像这样类似痕迹墙的形式可以比较直观且高效得展示一段时间内得数据记录。 然而要从0实现这个功能还是有一些麻烦得…

等保-Linux等保测评

等保-Linux等保测评 1.查看相应文件&#xff0c;账户xiaoming的密码设定多久过期 rootdengbap:~# chage -l xiaoming Last password change : password must be changed Password expires : pass…

mysql5.7版本字符集编码

默认character_set_databaselatin1 当你字段插入中文值的时候&#xff0c;会报错。 所以修改为了character_set_databaseutf8既可以。 character_set_server他的范围更大&#xff0c;属于服务器级别。

LeetCode 852, 20, 51

目录 852. 山脉数组的峰顶索引题目链接标签二分思路代码 三分思路代码 20. 有效的括号题目链接标签思路代码 51. N 皇后题目链接标签思路回溯如何保证皇后之间无法互相攻击 代码 852. 山脉数组的峰顶索引 题目链接 852. 山脉数组的峰顶索引 标签 数组 二分查找 二分 思路…