51单片机GSM 收发短信打电话源码 sim800c 900c

本文介绍了如何使用51单片机配合SIM800C模块实现GSM收发短信和打电话功能。在开始编程前,需要熟悉并测试AT指令。程序中,按下K2键可以发送短信,收到短信时会点亮LED指示灯。此程序为基础的火警消防警报系统的实现,作者欢迎指出错误和提供改进意见,并愿意分享源码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在代码编程之前 大家必须先手续AT指令并且测试是否能正常接收发短信
AT指令可以找卖家要 按照流程发送即可
注意事项:卡的斜口朝外
稳定1A的电流
使用移动卡

程序功能:按下K2发送短信
发短信
接下来放源码 亲测有效:

//按下K2发送短信

#include "reg52.h"
#include "intrins.h"
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
#include "string.h"
#include "absacc.h"
typedef unsigned char uchar;
typedef unsigned int uint;

sbit LED0=P2^0;
sbit LED1=P2^1;
sbit LED2=P2^2;
sbit LED3=P2^3;
sbit LED4=P2^4;

sbit k1=P3^3; //按键

sbit beep=P1^5;   //蜂鸣器

uchar code SMS_send[]="AT+CMGS=";
uchar code SMS_send_AT[]="AT";
uchar code GMS[]="AT+CMGF=1";
uchar code SMS_PDU[]="AT+CSQ";
uchar Byte_num[]="\"+86173*****83\"";
uchar code Sms2_Pdu[]="warning";
//uchar SMS_End[]="\x1a";
	uchar date;


void delay(uint n)          //延时
{
   
unsigned int  i,j;
for(i=0;i<n;i++);
for(j=0;j<123;j++);
}

void Print_Char(uchar dat)         //发送一个字符
{
   
ES = 0;
TI=0;
SBUF = dat;
while(!TI);
        TI = 0;
ES = 1;
}

void Print_Str(uchar *str)  //一个字节
{
   
  while(*str!='\0')
  {
   
   Print_Char(*str++);
   
  }
}


void Ini_UART()              //初始化 设置波特率2400
{
   
PCON&=0x00;
SCON=0x50;
TMOD=0x20;
TL1=0xf3;  
TH1=0xf3;


TF1=1;
ET0=1;
TR1=1;
ES=1; 
EA=1; 
}

void GSM_PDU()
{
   
	
	Print_Str(SMS_send_AT);
	Print_Str("\r\n")</
评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值