基于单片机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		0


sbit 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;
			else
				test_boot=No;
			
			if(GSM_receive[12]=='C')
				test_net_register=Yes;
			else
				test_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输出高电平蜂鸣器不响,输出低电平蜂鸣器响。


资源下载


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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在 Windows 上开发.NET MAUI 应用_2.生成你的第一个应用

先决条件 Visual Studio 2022 17.8 或更高版本&#xff0c;并安装了 .NET Multi-platform App UI 工作负载。 可参考上一篇文章&#xff1a;http://t.csdnimg.cn/n38Yy 创建应用 1.启动 Visual Studio 2022。 在开始窗口中&#xff0c;单击“创建新项目”以创建新项目&#…

java:aocache 与Spring Aop兼容问题

本文适用于所有AspectJ与Spring AOP混用的场景。 Spring AOP 是基于动态代理的实现AOP&#xff0c;基于 JDK代理和CGLib代理实现运行时织入&#xff08;runtime weaving&#xff09;。 Spring AOP的切面定义沿用了ASpectJ的注解体系&#xff0c;所以在Spring体系中注解定义切面…

Jenkins安装nodeJs环境

首先插件市场安装nodeJS插件&#xff0c;我这里已经安装了&#xff0c;没安装的话在 Available plugins 中搜索安装 安装完成后需要下载需要的nodejs版本 新增完成就可以在构建的时候选择当前版本号了

【python虚拟环境管理】【mac m3】 使用pipx安装poetry

文章目录 一. 安装 pipx二. 安装Poetry1. 安装2. advanced 操作 官网文档&#xff1a;https://python-poetry.org/docs/ pipx介绍文档&#xff1a;https://blog.51cto.com/u_15064632/2570626 一. 安装 pipx pipx 用于全局安装 Python 命令行应用程序&#xff0c;同时在虚拟环…

Linux 线程初步解析

1.线程概念 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一个进程内部的控制序列。在linux中&#xff0c;由于线程和进程都具有id,都需要调度等等相似性&#xff0c;因此都可以用PCB来描述和控制,线程含有PCB&am…

uniapp开发钉钉小程序流程

下载开发工具 1、小程序开发工具 登录钉钉开发平台&#xff0c;根据自己的需求下载合适的版本&#xff0c;我这里下载的是Windows &#xff08;64位&#xff09;版本 小程序开发工具 - 钉钉开放平台 2、HBuilder X HBuilderX-高效极客技巧 新建项目及相关配置 新建项目 …

云动态摘要 2024-07-16

给您带来云厂商的最新动态&#xff0c;最新产品资讯和最新优惠更新。 最新优惠与活动 数据库上云优选 阿里云 2024-07-04 RDS、PolarDB、Redis、MongoDB 全系产品新用户低至首年6折起&#xff01; [免费体验]智能助手ChatBI上线 腾讯云 2024-07-02 基于混元大模型打造&…

智慧煤矿:AI视频智能监管解决方案引领行业新变革

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;技术已经渗透到各个行业&#xff0c;为传统产业的转型升级提供了强大的动力。在煤矿行业中&#xff0c;安全监管一直是一个重要的议题。为了提高煤矿的安全生产水平&#xff0c;降低事故发生率&#xff0c;智…

远程访问及控制(ssh)

目录 一、OpenSSH服务器 1.1 SSH&#xff08;Secure Shell&#xff09;协议 1.2 OpenSSH 2.1 SSH原理 2.1 1 公钥传输原理 2.1.2 加密原理 2.1.3 SSHD服务的两种验证方式 二、SSH命令中的基本操作 2.1 构建密钥对验证的SSH 2.1.1 公钥和密钥的关系 2.1.2 构建密钥对…

linux虚拟机主ip地址:网络信息不可用(没IP)

第一种情况其它博主写的很详细 就是在 /etc/sysconfig/network-scripts/ifcfg-ens33 的onbootno 改为 yes 然后重启 第二种就是我遇到的&#xff0c;是因为服务没有启动 首先winr打开搜索 然后搜索service.msc 把这两项手工右键开启即可&#xff0c;然后重启虚拟机&a…

安卓笔记1-Retrofit2请求自定义接口

1、整体功能概述 安卓项目中使用Retrofit2实现和自定义接口的网络交互&#xff0c;通过Postman模拟服务端&#xff0c;创建自定义接口。 作用 前后端开发进度对不齐时&#xff0c;客户端可利用本功能模拟测试数据。备忘。 缺点 retrofit模拟接口需要配置响应数据类&#xff…

STM32入门开发操作记录(二)——LED与蜂鸣器

目录 一、工程模板二、点亮主板1. 配置寄存器2. 调用库函数 三、LED1. 闪烁2. 流水灯 四、蜂鸣器 一、工程模板 参照第一篇&#xff0c;新建工程目录ProjectMould&#xff0c;将先前打包好的Start&#xff0c;Library和User文件^C^V过来&#xff0c;并在Keil5内完成器件支持包的…

可视化工具选择指南:助力企业数字化转型和新质生产力发展

随着信息技术的快速发展和新质生产力概念的兴起&#xff0c;可视化工具在各个行业中的作用日益凸显。这些工具不仅能够帮助用户更直观地理解和分析数据&#xff0c;还能提升团队的协作效率和决策质量。 在当今数字化转型迅速发展的背景下&#xff0c;新质生产力的概念正在成为…

策略模式原理与C++实现

定义 定义一些列算法&#xff0c;把他们一个个封装起来&#xff0c;并且使他们可以相互替换&#xff08;变化&#xff09;。该模式使得算法可独立于使用它的客户程序&#xff08;稳定&#xff09;而变化&#xff08;扩展、子类化&#xff09;。 C实现 在不考虑策略模式的情况…

数学基础【俗说矩阵】:齐次线性方程和非齐次线性方程求解-学习笔记

一、矩阵基础知识 二元一次方程的传统解法 不论是代入消元法还是加减消元法都统称 【高斯消元法】。 齐次方程组和非齐次方程组 线性方程组的解 线性方程的向量展示 向量规则 矩阵的高斯消元和初等行变行及其规则 高斯消元规则 初等行变换 矩阵经初等行变换成阶梯矩阵&…

入坑树莓派(2)——树莓派4B与手机蓝牙通信

入坑树莓派(2)——树莓派4B与手机蓝牙通信 1、引言 在入坑树莓派(1)中已经搞掂了可视化问题。现在继续开展下一步,尝试与手机通信,一开始是想弄wifi连接的,但发现基于wifi的APP比较难弄,为了降低开发的难度,又因为树莓派板子自带蓝牙模块,所以直接选用蓝牙连接手机…

SAP 银企直连--FBPM生成付款文件增强

需求描述&#xff1a; SAP中通过运行事务码FBPM生成付款文件&#xff0c;触发传输将文件写入跳板机&#xff0c;写入跳板机之前&#xff0c;检查文件是否已存在&#xff0c;存在则给出提示无需执行 实现步骤 &#xff1a; 文件校验 参照标准函数FI_PAYMEDIUM_SAMPLE_21 创建自…

Vision Pro的增强视觉:企业级Unity插件包实现主摄像头访问

在AR和VR技术的快速发展中,Unity作为跨平台游戏和应用开发的首选引擎,其插件生态的丰富性一直是开发者们关注的焦点。最近,一个专为Vision Pro设计的Unity插件包——EnterpriseCameraAccessPlugin,因其能够通过企业API访问主摄像头的功能,引起了广泛关注。 一、插件背景与…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(二)-支持高分辨率视频直播应用

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

[Linux] yum和vim

文章目录 yumyum是什么?linux系统&#xff08;Centos&#xff09;的生态 vimvim是什么&#xff1f;vim配置 yum yum是什么? yum是一个下载安装及卸载管理软件的客户端。类似如应用商店 linux系统&#xff08;Centos&#xff09;的生态 Centos下载方式3种&#xff1a;源代…