硬件设计
本设计介绍了基于单片机的智能手表定位系统的设计与实现,控制系统采用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); //串口初始化为115200uart2_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;//关闭ledLcd_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=1\r\n",11); //设置字符集i=7;while(i--) delay_ms(100);//延时UART_SendStr(USART1 ,"AT+CSCS=\"GSM\"\r\n",15);//设置文本i=7;while(i--) delay_ms(100);//延时UART_SendStr(USART1 , "AT+CMGDA=\"DEL ALL\"\r\n",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=1\r\n",11); //设置字符集i=3;while(i--) delay_ms(100);//延时UART_SendStr(USART1 ,"AT+CSCS=\"GSM\"\r\n",15);//设置文本i=3;while(i--) delay_ms(100);//延时UART_SendStr(USART1 ,"AT+CMGS=\"+8618105140357\"\r\n",26); //测试号码
// UART_SendStr(USART1 ,"AT+CMGS=\"+8615296556420\"\r\n",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