找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4244|回复: 2
打印 上一主题 下一主题
收起左侧

AT89S52单片机控制SIM800c发短信的源码

[复制链接]
跳转到指定楼层
楼主
ID:308386 发表于 2018-5-2 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg52.h>
#include "UART.h"
#include "Delay.h"

#define Yes                1
#define No                0

sbit Power_key = P1 ^ 0;

/********??GSM????**********/
int test_boot;
/********??GSM??????**********/
int test_net_register;
/********GSM????????**********/
unsigned char GSM_receive[60];
/********GSM???????**********/
unsigned char GSMDATA_count;

void main(void)
{
        //?????
        Power_key=0;
        test_boot=No;
        test_net_register=No;
        
        //GSM??
        Power_key=1;
        Delay_Ms(1000);
        Power_key=0;
        
        Uart_Init();
        //????????
        while(test_boot==No)
        {
                Send_String("AT\r\n");
                Delay_Ms(1000);
        }
  //
        while(test_net_register==No)
        {
                Send_String("AT+COPS?\r\n");
                Delay_Ms(1000);        
        }
        
        Send_String("AT+CMGF=1\r\n");
        Delay_Ms(100);
        
        Send_String("AT+CSMP=17,167,2,25\r\n");//¶ìDÅÎı¾2Îêy
        Delay_Ms(100);
        
        Send_String("AT+CSCS=\"UCS2\"\r\n");
        Delay_Ms(100);
        
        Send_String("AT+CMGS=\"00310030003000380036\"\r\n");//·¢Ëí¶ìDÅ
        Delay_Ms(100);
        
        Send_String("8FD9662F4E0067616D4B8BD54FE1606F3002\r\n");
        Delay_Ms(100);
        
        Send_Char(0x1A);
        Delay_Ms(20000);
               
        //GSM??
        Power_key=1;
        Delay_Ms(1000);
        Power_key=0;
}

/*****************************************************************************
????
/****************************************************************************/
void uart(void) interrupt 4
{
        unsigned char UART_data;
        if(RI)
        {
                UART_data=SBUF;
                if(UART_data=='\n')
                {
                        if(GSM_receive[0]=='O'&&GSM_receive[1]=='K')
                                test_boot=Yes;
                        else
                                test_boot=No;
                        
                        if(GSM_receive[12]=='C')
                                test_net_register=Yes;
                        else
                                test_net_register=No;
                        
                        GSMDATA_count=0;
                }
                else
                {
                        GSM_receive[GSMDATA_count]=UART_data;
                        GSMDATA_count++;
                }
        }
        RI=0;
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:338882 发表于 2019-3-19 19:39 | 只看该作者
第二个头文件没有啊
回复

使用道具 举报

板凳
ID:264360 发表于 2019-5-10 10:50 | 只看该作者
如果来点注解那就最好不过了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表