概述
硬件设计
本设计介绍了基于单片机的智能手表定位系统的设计与实现,控制系统采用STM32核心芯片,外围电路含有液晶显示器LCD1602,GPS,GSM电路,按键和LED灯电路组成,通过LCD模块能够将实时时间以及定位经纬度显示出来。系统可以通过GSM模块直接发送定位信息到指定的手机用户上。
主要由STM32单片机+LCD1602液晶显示电路+GPS模块+GSM模块+按键电路+LED灯电路+电源电路组成;框图如图:
设计功能
(1)液晶1602显示时钟,带日期,且可以显示经纬度信息,两个信息通过一个按键切换显示。
(2)通过GPS定位,获取当前的经纬度信息(可以通过浏览器查看具体位置)。
(3)通过电位器可以调节液晶屏的清晰度。
(4)具有手电筒功能,通过另外一个按键,按下,灯亮,再次按下,灯灭。
(5)通过第3个按键来发送经纬度信息给指定手机,按下后,开始发短信;
(6)短信处理过程有指示灯显示;
(7)接受短信的手机号码可以主动获取经纬度信息,发送"GET"给设备手机号,设备会回复信息给发送者.
设计原理图
四.软件设计
(1)程序流程图
(2)主程序源码
int main(void)
{
unsigned char i ;
delay_init(); //延时函数初始化
uart_init(115200); //串口初始化为115200
uart2_init(9600) ;
TIM3_Int_Init(499,7199);//50ms
LED_Init(); //初始化与LED连接的硬件接口
KEY_Init();
led_gsm =0 ; ligh =1;//上电初始化
Lcd_GPIO_init(); //初始化lcd 接口
Lcd_Init(); //初始化函数
delay_ms(200);
ligh =0;//关闭led
Lcd_Puts(0,0,(u8 *)Lin0_No);//显示
Lcd_Puts(0,1,(u8 *)Lin1_Ea);//显示
i=60;
while(i--) delay_ms(100);//延时
UART_SendStr(USART1 ,"AT+CMGF=1rn",11); //设置字符集
i=7;
while(i--) delay_ms(100);//延时
UART_SendStr(USART1 ,"AT+CSCS="GSM"rn",15);//设置文本
i=7;
while(i--) delay_ms(100);//延时
UART_SendStr(USART1 , "AT+CMGDA="DEL ALL"rn",20); //删除所有短信
for(i=0;i<5;i++)
delay_ms(100); //延时有助于稳定
led_gsm = 1;
while(1)
{
key_scan();
if(disFlag ==1) //定时更新显示
{
disFlag =0;
if(sysmode_GPS==1) //gps有效
{
// sysmode_GPS=0;
dealGps();
if(disNum==0)
{
Lcd_Puts(0,0,(u8 *)Lin0_No);//显示
Lcd_Puts(0,1,(u8 *)Lin1_Ea);//显示
}
else
{
Lcd_Puts(0,0,(u8 *)dis0);//显示
Lcd_Puts(0,1,(u8 *)dis1);//显示
}
}
}
if(key_m==0) //发送按键按下
{
delay_ms(10);
if(key_m==0)
{
led_gsm = 0;
UART_SendStr(USART1 ,"AT+CMGF=1rn",11); //设置字符集
i=3;
while(i--) delay_ms(100);//延时
UART_SendStr(USART1 ,"AT+CSCS="GSM"rn",15);//设置文本
i=3;
while(i--) delay_ms(100);//延时
UART_SendStr(USART1 ,"AT+CMGS="+8618105140357"rn",26); //测试号码
// UART_SendStr(USART1 ,"AT+CMGS="+8615296556420"rn",26); //发送短信号码
i=3;
while(i--) delay_ms(100);//延时
if(sysmode_GPS==1) //gps有效
{
sysmode_GPS=0;
dealGps();
UART_SendStr(USART1 ,Lin0_No,12); //发送纬度
UART_SendStr(USART1 ,Lin1_Ea,12); //发送经度
}
else
{
UART_SendStr(USART1 ,"gps linking...",14); //gps无信号
}
delay_ms(200);
UART_SendStr(USART1 ,( char *)Crtl_Z, 1); //发送
i=30;
while(i--) delay_ms(100);//延时发送
led_gsm = 1;
}
}
....
}
}
}
链接:https://pan.baidu.com/s/18eQcnJTPaemJeORJ7WCl3g?pwd=o3kd
提取码:o3kd
最后
以上就是干净斑马为你收集整理的基于STM32单片机智能手表设计-GPS-GSM的全部内容,希望文章能够帮你解决基于STM32单片机智能手表设计-GPS-GSM所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复