资源简介
GSM发短信 GPS 单片机C语言实现 代码实现了GSM的发短信功能以及GPS读取数据、数据处理
代码片段和文件信息
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define mclk 12000000
#pragma interrupt_handler uart_rx:12
uchar flag=0;
/*****GPS取数据变量参数定义*****/
uchar comma;//逗号变量存储
//////////以下4个数组最后一个作为0,字符串结束标志/////////
uchar Time[11];//时间hour-2 bytes minute-2 bytessecond-6 bytes
uchar Data_YMD[7]; //日期
uchar Longitude[11];//经度
uchar Latitude[10];//纬度
////////时分秒///////////////
uchar hour[3];//最后一个作为0,字符串结束标志显示时使用
uchar minute[3];
uchar second[7];
////////日月年///////////////
uchar day[3];//最后一个作为0,字符串结束标志
uchar month[3];
uchar year[3];
////////////////////////////////////////////////////////////
uchar count_Tcount_Laticount_Longicount_Data;//串口接收 时间 纬度 经度 日期 接收数组计数
uchar num_comma;//逗号计数
uchar GPS_state;//GPS资料可用状态
uchar N_or_SE_or_W;//半球标志数据存储
uchar frame_flag;//接收到帧头标志
uchar data_flag;//接收数据标志
uchar frame_header[5];
uchar overflow_count;//定时器0溢出中断计数
/////////////GSM使用////////////////////////////////////////
uchar PhoneCall[]={“ATD13706405213;“};//打电话数据
uchar TxtMode[9]={“AT+CMGF=1“}; //AT+CMGF=1短信模式设置Text模式;AT+CMGF=0PDU模式
uchar MessCom_PhoneNum[21]={“AT+CMGS=\“15017506465\““};//发送短信AT指令头+接收短信号码
uchar CenterNum[24]={“AT+CSCA=\“+8613800200500\““};//24个数(短信息中心号码设置)格式:\位转义字符,将““转移成字符
uchar RecNum[11]={“15017506465“};//11个数(短信接收手机号码设置)
uchar message[6] = {“Hello!“};//发送的短信内容
uchar AT[2]={“AT“}; //联机命令
uchar Enter[1]={0x0D};//回车键“\r“
uchar ATCNMI[]=“AT+CNMI=21“;
//uchar idata send_data[11]={0x410x420x430x440x450x460x350x360x370x380};
uchar Frequency[5]={0x350x300x2E0x300x30};//测试使用
uint cnt=0;
void delay(uint ms)
{
uint ij;
for(i=0;i {
for(j=0;j<1141;j++);
}
}
void uart_init(uint baud)
{
UCSRB=0x00;
UCSRA=0x00; //控制寄存器清零
UCSRC=(1< //选择UCSRC,异步模式,禁止
// 校验,1位停止位,8位数据位
baud=mclk/16/baud-1 ; //波特率最大为65K
UBRRL=baud;
UBRRH=baud>>8; //设置波特率
UCSRB=(1< //接收、发送使能,接收中断使能
SREG=BIT(7); //全局中断开放
DDRD|=0X02; //配置TX为输出(很重要)
}
//发送函数
void sendchar(uchar data)
{
while(!(UCSRA&(BIT(UDRE)))) ;
UDR=data;
while(!(UCSRA&(BIT(TXC))));
UCSRA|=BIT(TXC);//因为是查询操作,不会自动清零,采用设置清零
/*以备后面数据的发送*/
}
void sendstr(uchar *struint len)
{
while(len--)
{
sendchar(*str++);
}
}
void GSM_AT() //发“AT“的函数
{
sendstr(AT2);delay(100);
sendchar(‘\r‘);delay(100); //以回车作为结束符号,手机才能识别
delay(100);
}
void GSM_TXT() //发送AT+cmgf=1 设置短信模式Text
{
sendstr(TxtMode9);delay(100);
sendchar(‘\r‘);delay(100);
delay(100);
}
void GSM_CMGS() //发送AT+cmgs= (发短信的命令)
{
sendstr(MessCom_PhoneNum21);delay(1
- 上一篇:PIC18F452串口通信程序
- 下一篇:一个MFC多文档的小vc2015
相关资源
- PIC18F452串口通信程序
- 学生信息管理系统c语言单链表实现
- graphics的随笔画程序基于c语言
- 双边滤波器 C语言程序可用
- 操作系统课程设计银行家算法C语言
- EasyX图形库
- VMware 12 安装 MAC10.12,安装Xcode 用于
- dsp 54x生成正弦波的C语言样例
- 华邦串行FLASH W25X40 读写程序范例,
- C语言这本书所配套的部分源代码,
- crc8的校验算法(c语言)
- C语言库函数源码大全
- FIR滤波器的C语言实现
- c语言实现病例管理系统
- 基于 51 单片机 多进程 多任务 纯 C语
- DSP小波变换源代码
- C语言 简易二十四节气判断代码
- 端口扫描c实现
- AES加密算法c语言实现代码
- C语言编在VC环境下带界面的计算器
- 键盘控制步进电机正反转和调速c语言
- 毕业设计图书管理系统C语言源代码,
- C语言版BM3D算法
- BayesShrink阈值图像小波去噪 c语言
- 用C语言对图像加高斯噪声
- 旅行商问题 C语言解法
- 二叉树的C语言实现,实现二叉树基本
- C语言马踏棋盘_实验报告+源代码
- 应用C语言编写ADAMS用户自定义函数的
- 模拟时钟转动程序
评论
共有 条评论