资源简介
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
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论