基于51单片机GPS定位系统GSM短信上报设计方案原理图 您所在的位置:网站首页 单片机功能模块图 基于51单片机GPS定位系统GSM短信上报设计方案原理图

基于51单片机GPS定位系统GSM短信上报设计方案原理图

2024-05-27 06:03| 来源: 网络整理| 查看: 265

系统功能分析

(末尾附文件) 系统功能分析 本系统由STC89C52单片机电路+GPS模块电路+GSM模块SIM800A+指示灯电路+电源电路组成。 1、系统上电后,系统向特定手机号码发送短信,短信内容为系统的当前经纬度信息。40s左右发一次。 2、如果需要立刻发送经纬度信息,直接按板载按键即可立刻发送经纬度数据,不用等待40s。 3、短信发送及初始化有状态指示灯指示。 4、GSM模块是SIM800A,该模块和SIM900A电路程序完全兼容外观外形一模一样。 3.1.2系统总体结构 本系统具体框图如下图所示: 在这里插入图片描述

模块电路的设计

在这里插入图片描述 5V电源电路设计 本系统选择5V直流电源作为系统总电源,为整个系统供电,电路简单、稳定。DC为电源的DC插座,可以直接接USB电源线,一端插在DC插座上,另外一端可以插在5V电源上,如电脑USB、充电宝、手机充电器等等。LED为红色LED灯,作为系统是否有点的指示灯,电阻为1K电阻,起到限流作用,保护LED灯,以防电流过大烧坏LED灯。SW为自锁开关,开关按下后,红灯亮,此时系统电源5V直流输出。开关再次按下后,红灯灭,此时系统电源无5V电源输出。 在这里插入图片描述 GSM_SIM800A模块电路设计 GSM模块,是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。GSM模块具有发送SMS短信,语音通话,GPRS数据传输等基于GSM网络进行通信的所有基本功能。简单来讲,GSM模块加上键盘、显示屏和电池,就是一部手机。 SIM800A是SIMCOM公司推出的一款高性能工业级 GSM/GPRS 模块, 该模块具有极高的性价比,在双频的市场中占据极大份额。 GSM_SIM800A模块采用高性能工业级GSM/GPRS模块:SIM800A,工作频段:GSM900/1800MHz。硬件设计在官方设计上加以优化,采用高效开关电源供电,SIM卡采用主流的卡座,质量更坚固。GSM_SIM800A模块在外围硬件的设计上参考了SIM800A 模块的硬件设计指南,对板子的电源、保护和抗干扰上做足了功夫。电源采用开关电源模块供电,电源利用效率高。

系统软件设计 #include #include #include #include "delay.h" /**The UART1 stage1**/ #define STAGE_SOHE 0x01 #define STAGE_TYPE 0x02 #define STAGE_NONE 0x03 #define STAGE_DATA 0x04 #define INIT 0xFF #define TRUE 0x00 #define FALSE 0x01 sbit LED = P1^0;//指示灯 sbit key =P2^0;//按键 unsigned char Lin0_No[13]="N:000.000000";//显示北纬 unsigned char Lin1_Ea[12]="E:000.000000";//显示东经 unsigned long xdata time_20ms=0; unsigned char xdata devide_flag; //GPS数据逗号分隔符 unsigned char xdata speed_end; //收速度数据结束标志 unsigned char xdata dir_end; //收方向角数据结束标志 unsigned char xdata sysmode_GPS=FALSE; //gps有效无效标志 unsigned char xdata ew_flag; //东西标志 unsigned char xdata ns_flag; //南北标志 unsigned char xdata gps_infor_weijing[17]; //暂存经纬度 格式是以度分秒的是形式 unsigned char xdata gps_infor_speed[4]; //暂存速率 unsigned char xdata gps_infor_time[6]; //时间暂存 unsigned char xdata gps_infor_date[6]; //日期暂存 unsigned char xdata gps_infor_dir[3]; //方向暂存 unsigned char xdata recv1_step=STAGE_SOHE; //串口接收指令步骤 unsigned char xdata uart1_r_buf; //串口的缓存 unsigned char xdata rev1_buf_busy; //串口接收忙碌标志 unsigned char xdata temp1_buf[85]; //串口接收数组 unsigned int xdata record1=0; //串口接收计数 unsigned char i ; unsigned char dealGpsMes=FALSE; //gps定时处理标志 unsigned char reportTime = 0;//短信上报时间 计数 void Init_Timer0(void);//函数声明 void gpsDealfun(void); void uartSendStr(unsigned char *s,unsigned char length); void UART_Init(void); void uartSendByte(unsigned char dat); void main (void) { Init_Timer0(); //定时器0初始化 UART_Init(); //串口初始化 LED = 0; //打开led key = 1; for(i=0;i 2) { gps_infor_speed[1]=gps_infor_speed[record1-3]; } else { gps_infor_speed[1]=0x30; } if(record1 > 3) { gps_infor_speed[0]=gps_infor_speed[record1-4]; } else { gps_infor_speed[0]=0x30; } } } if(devide_flag == 8) { if(dir_end == 0x00) { if((record1 > 0) && (uart1_r_buf != '.')) { gps_infor_dir[record1-1]=uart1_r_buf; //存储方向 } else if(uart1_r_buf == '.') { record1--; dir_end=0xff; } } else if(dir_end == 0xff) { dir_end=0xfe; if(record1 == 2) { gps_infor_dir[2]=gps_infor_dir[record1-2]; gps_infor_dir[1]=0x30; gps_infor_dir[0]=0x30; } if(record1 == 3) { gps_infor_dir[2]=gps_infor_dir[record1-2]; gps_infor_dir[1]=gps_infor_dir[record1-3]; gps_infor_dir[0]=0x30; } } } if(devide_flag == 9) { if((record1 > 0) && (record1 < 7)) { gps_infor_date[record1-1]=uart1_r_buf; } } if(uart1_r_buf == 0x0d) { recv1_step=STAGE_SOHE; //接收完成 并信号确定 record1=0; //恢复初始化状态 为下一次准备 devide_flag=0; sysmode_GPS=TRUE; //置位 GPS 信号为正确 } } break; } } if(TI) //如果是发送标志位,清零 TI=0; }

链接:https://pan.baidu.com/s/1FSMLsaumjvjNPuRfHn4CWw 提取码:kpye



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有