单片机gprs接mysql_基于51单片机GPRS打电话等功能的实现 详细教程

这篇博客详细介绍了如何使用51单片机通过GPRS模块连接MySQL数据库,并实现了拨打电话功能。教程涵盖了GSM模块初始化、串口通信、短信收发以及数据读取等关键步骤,旨在帮助读者理解如何在51单片机上进行GPRS通信和数据库交互。
摘要由CSDN通过智能技术生成

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define RxIn 90              //定义接收的数组长度为90

uchar code AT[]="AT";              //握手信号

uchar code ATE[]="ATE";              //关回显

uchar code AT_CNMI[]="AT+CNMI=2,1";//设置这组参数来了新信息直接显示到串口,不作存储

uchar code AT_CSCA[]="AT+CSCA=\"+8613800571500\"";//设置服务中心号码              AT+CSCA=\"+8613010360500\"

uchar code AT_CMGF[]="AT+CMGF=1";//设置短信的格式为text格式

uchar code AT_CMGR[]="AT+CMGR=";//读取短信指令

uchar code AT_CMGS[]="AT+CMGS=";//发送短信指令

uchar code AT_CMGD[]="AT+CMGD=";//发送短信指令

uchar AT_delete[12];

uchar AT_Read[12];              //用来存储发送读取短信指令

uchar AT_SendNumber[22];  //用来存储发送短信号码指令

uchar numberbuf[3];                            //用来保存短信条数

uchar idata SystemBuf[RxIn];  //储存出口接收数据

uchar CommandBuf[4];              //用来储存指令

uchar Rx=0;

bit receiveready=0;                               //接收短信标志位

bit sendready=0;                               //发送短信准备标志位

bit send=0;                                                           //发送短信标志位

sbit IGT=P2^7;//启动GSM的启动线连IGT

sbit sw1=P3^3; //打电话

sbit sw2=P3^4;              //发测试短信

sbit sw3=P3^5;              //发温度

sbit beep=P3^2;    //蜂鸣器

void Delay_ms(uint i);

void Start_GSM(void);

void UART_init (void);

void sendchar(uchar ch);

void sendstring(uchar *p);

void GSM_INIT(void);

void receive_ready(void);

void message_read(void);

void read_message(void);

void sendmessage(void);

uchar code  AT7[]={0x41,0x54,0x2B,0x43,0x4D,0x47,0x53,0x3D};//AT+CMGS=  AT+CMGS=“+8613xxxxxxxxx”回车>输入短消息。Crtl+Z结束并发送。

uchar code  AT12[]={0x41,0x54,0x44,0x3E};//ATD> ATD*****; (拨号,"*"为需要拨的号码,如呼叫13973292929,则为ATD13973292929;

uchar  code  neirong[11]="15158107675";                                          //13185018567

sbit DQ=P3^7;                                                           //DS18B20数据传输线接单片机的相应的引脚

unsigned char tempL=0;                                           //临时变量低位

unsigned char tempH=0;                                          //临时变量高位

float temperature;                                               //温度值

unsigned char k,ge,shi,bai;

uchar code  atshanchu[]={ "AT+CMGD=9"};

sbit lcdrs=P1^0;

sbit lcdrw=P1^1;

sbit lcden=P1^2;

void delaymm(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void delay(unsigned int k)

{

unsigned int n;

n=0;

while(n < k)

{n++;}

return;

}

void write_cmd(uchar cmd)

{

lcden=0;

lcdrs=0;

lcdrw=0;

P0=cmd;

_nop_();

lcden=1;

delaymm(1);

lcden=0;

_nop_();

}

void write_dat(uchar dat)

{

lcden=0;

lcdrs=1;

P0&#

部分源程序如下: #define TARGET_GLOBAL 1 #include "target.h" /***************************************************************************************** *函数名称:usart0_Initial(void) *函数功能:初始化串口 *入口函数:无 *出口函数:无 *****************************************************************************************/ void usart0_Initial(void) { /************TH1=256-(K*oscFreq)/384*BaudRate************/ SCON=0x50; //SM0=0;SM1=1;REN=1; TI=0; //数据发送状态清零 RI=0; //数据接收状态清零 PCON=0; //不加倍 TH1=0xF3; //bode=2400 TL1=0XF3; TMOD=0X20; //TIMER1 MODER2; ET1=0; //屏蔽timer1溢出中断 TR1=1; //启动timer1 ES=0; //屏蔽串口中断 } /***************************************************************************************** *函数名称:send_char(uchar txd) *函数功能:串口发送一个字符 *入口函数:要发送的一个字符txd *出口函数:无 *****************************************************************************************/ void send_char(uchar txd) { TI=0; SBUF=txd; while(!TI); // 等特数据传送 TI=0; // 清除数据传送标志 } /***************************************************************************************** *函数名称:send_str(uchar *str,uchar len) *函数功能:串口发送一行字符串 *函数入口:字符串指针*str,字符串长度len *函数出口:无 *****************************************************************************************/ void send_str(uchar *str,uchar len) { uchar i; for(i=0;i<len;i++) send_char(str[i]); } /***************************************************************************************** *函数名称:get_char(void) *函数功能:串口接收一个字符 *函数入口:串口发送的字符rxd *函数出口:无 *****************************************************************************************/ uchar get_char(void) { uchar temp; RI=0; while(!RI); // 等特数据传送 temp=SBUF; RI=0; // 清除数据传送标志 return temp; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值