急求一个用8051控制TC35i GSM模块发短信的C语言程序

2019-03-24 18:45发布

急求一个用8051控制TC35i  GSM模块发短信的C语言程序 程序越简单越好。只要求发短信。急!!谢谢 邮箱84085155@qq.com
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
302805868@qq.co
2019-03-25 00:49
#include<reg52.h>
#include<absacc.h>
#include<stdio.h>

sbit P2_4=P2^4;
sbit P2_2=P2^2;
//---LED显示控制---------
sbit S1=P1^3;
sbit S2=P1^4;
sbit S3=P1^5;
sbit S4=P1^6;
sbit A1=P0^0;
sbit A2=P0^1;
sbit  WD=P1^0;
sbit  CLK=P1^2;                                 
sbit  EN_LED=P1^1;
//-----------------------

#define uint unsigned int
#define uchar unsigned char

uchar num_c[8],num_d,num_sum,high_t;
uint time_add2,time_add,num_e;

uchar code tab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xfd,0xff};//0-9,-,全灭 (共阳字段表)


#define RST      0X01
#define CMGF     0X02
#define CMGD     0X03
#define CREG     0X04
#define CMGR     0X05
#define CMGS     0X06
#define CSCA     0X07
#define ATDAT    0X08
#define TC35RET  0X00


uint temp;


void delay(int de_u)
{int u,n;
//10us
for(u=0;u<de_u;u++)
{
for(n=0;n<1000;n++)
{;}
}
}

void Displaybyte(uchar byte)
{   
        uchar num,c;
        num= 0xff-tab[byte];//共阴       
        EN_LED=0;EN_LED=1;       
                for(c=0;c<8;c++)
        {       
                        if(num&0x01)    //(0x80即十进制的128, 二进制的10000000 按位发送)                
                           WD=1;
                        else
                           WD=0;
                        num>>=1;
                        CLK=0;                                  
                          CLK=1;                        
        }
                delay(2);
//                Delay_ms(1);//A0;B0;C0;D0;//CLR_LED;       
}


#include"GSM.h"
void ATE0(void);
void delay_GSM(uint);
void init_serialcom( void );
void send_uart( unsigned char);
void ATNAME(void);
void AT_CMGS(void);
void AT_CSCA(void);
void AT_RST(void);
void AT_CREG(void);
void AT_CMGF(void);
void AT_CMGR(void);
void AT_CMGD(void);
void Init_T0 (void)   
{           
    TMOD = 0x21;   
    TH0 = (65536-10000) /256;
    TL0 = (65536-10000) %256;
    EA = 1;      
    ET0 = 1;
    TR0 = 1;      
}
void Time0_ISR(void)  interrupt 1    using 0
{  
TH0 = (65536-10000) /256; //初始值
TL0 = (65536-10000) %256;


}





main()
{
//--------初始化-------------------
init_serialcom();
//Init_T0();
//--------发三次关闭回显命令----------------
S1=1;S2=0;S3=0;S4=0;
Displaybyte(0X00);
delay_GSM(100);
ATE0();
Displaybyte(0X01);
delay_GSM(100);
TC35_MAX=0;
ATE0();
Displaybyte(0X02);
delay_GSM(100);
SMS_CONFIG();
//ATE0();
Displaybyte(0X03);
delay_GSM(100);
//------------------------------


for(i_TC35=0;i_TC35<=39;i_TC35++)
{TC35_RE[i_TC35]=0;}
i_TC35_RECE=0;
TC35_MAX=0;

//P0_0是高电平就行这样P01会亮
//

ATE0();
while(1)
{
SEND_MESSAGE();
}



}

一周热门 更多>