중국시가넷 - 메시지 플랫폼 - 5 1 마이크로 컨트롤러 제어 TC35 모듈은 문자 메시지를 보낼 수 없습니다! ! ! !

5 1 마이크로 컨트롤러 제어 TC35 모듈은 문자 메시지를 보낼 수 없습니다! ! ! !

이 QQ 그룹 127858558 로 오세요. 위에 기성된 구조도와 절차가 모두 테스트되었다. 먼저 보내 드리겠습니다. 확인해 주세요. 나는 지금 이것을 사용한다, 문제없을 것이다.

# include & ltreg52.h & gt

# include & ltintrins.h & gt

# uchar 부호 없는 문자 정의

# uint 부호 없는 정수 정의

#define RxIn 90 // 수신된 배열 길이를 90 으로 정의합니다.

Uchar 코드 AT[]= "AT ";; //핸드쉐이킹 신호

Uchar 코드 ate [] = "ate"; //에코 끄기

Uchar 코드 at _ cnmi [] = "at+cnmi = 21"; //이 매개 변수 세트를 설정하면 새 정보가 직렬 포트에 직접 표시되고 저장되지 않습니다.

Uchar 코드 at _ csca [] = "at+csca = \"+8613800571500 \ "; //서비스 센터 번호 설정

Uchar 코드 at _ cmgf [] = "at+cmgf =1"; //문자 형식을 텍스트 형식으로 설정합니다.

Uchar 코드 AT _ CMGR[]= "AT+CMGR = "; ="; //SMS 명령 읽기

Uchar 코드 AT _ CMGS[]= "AT+CMGS = "; ="; //문자 보내기 명령

Uchar 코드 AT _ CMGD[]= "AT+CMGD = "; ="; //문자 보내기 명령

Uchar 코드 성공 [] = "작업 성공!" 을 눌러 섹션을 인쇄할 수도 있습니다 //작업 성공 메시지를 대상 번호로 보냅니다.

Uchar code fail[]= "작업에 실패했습니다. 다시 시도하십시오!" 을 눌러 섹션을 인쇄할 수도 있습니다 //대상 번호로 작업 실패 메시지를 보냅니다.

Ucharat _ delete [12];

Ucharat _ read [12]; //문자 메시지를 보내고 읽는 지침을 저장하는 데 사용됩니다.

Uchar at _ send number [25]; //문자 메시지를 보내는 번호를 저장하는 명령입니다.

Uchar numberbuf [3]; //메시지를 저장하는 데 사용되는 수량입니다.

Uchar idata system buf [rxin]; //스토리지 소켓에서 수신한 데이터.

Uchar command buf [6]; //명령을 저장하는 데 사용됩니다

우차르 아이다주 [17]; //입출력 포트를 저장하는 데 사용되는 상태입니다.

Uchar idata state1[17]; //입출력 포트를 저장하는 데 사용되는 상태입니다.

Uchar Rx = 0;;

단위 온도 //로깅 상태

Uchar temp1; //P0 포트의 상태를 기록하는 데 사용됩니다.

Uchar temP2// p2 포트 상태를 기록하는 데 사용됩니다.

비트 검증 = 0; //쿼리 플래그 비트

비트 receive ready = 0;; //수신 SMS 플래그 비트

비트 send ready = 0;; //SMS 준비 플래그 비트 전송

비트 전송 = 0; //문자 메시지 표시 비트 보내기

비트 플래그 = 0; //명령 플래그 비트

Sbitp3 _ 7 = P3 7; //GSM 부트 라인 연결 IGT 를 시작합니다.

Sbit real y0 = P0 0 0; //트렁킹 1

Sbitkey1= p2 0; //스위치 1

Sbit 키 2 = p21; //스위치 2

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

//////////////////////////////////

//////////////////////////////////

//////////////////voiddelay _ ms (uint I); 구현 기능: 밀리 초 지연///////////////////////

//////////////////////////////////

//////////////////////////////////

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

잘못된 지연 _ 밀리초 (단위 I)

{

부호 없는 int j;;

For (; 나>0; 나-) {

For(j = 0;; J< 125; J++)

}

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

//////////////////////////////////

//////////////////////////////////

//////////voidstart _ GSM (void); 기능: TC35 를 시작하고 tc35///////////////////////를 엽니다.

//기능 설명: 단일 칩 마이크로 컴퓨터의 P3_7 핀은 TC35 의 IGT 핀에 연결됩니다. TC35 를 시작하려면 15 핀 (/IGT) 에 최소 100ms 의 저수준 신호를 추가해야 합니다.

///및 이 신호의 하강 시간은 1 ms 보다 작으며, 시작 후 15 발의 신호는 고평을 유지해야 합니다.

//////////////////////////////////

//////////////////////////////////

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Void Start_GSM(void)

{

P3 _ 7 = 0;;

Delay _ ms (1000);

P3 _ 7 =1;

Delay _ ms (1000);

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

//////////////////////////////////

//////////////////////////////////

//////////voiduart _ init; 기능: 직렬 포트//////////////////////////////를 초기화합니다

//////////////////////////////////

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Void UART_init (void)

{

Tmod = 0x20; //선택 타이머 1

Pcon = 0x00; ///전송 속도가 두 배가 되지 않았습니다

Scon = 0x50; //직렬 작업 모드 1 직렬 수신 허용.

Th1= 0xfd; //결정진 1 1.0592MHZ, 전송 속도 9600.

Tl1= 0xfd; //해당 카운터에서 값을 지정합니다

Ea =1; //총 인터럽트 켜기

Es =1; //직렬 인터럽트 켜기

Tr1=1; //시동 타이머 1

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

//////////////////////////////////

//////////////////////////////////

////////////////void send char (UC hirch); 함수: 1 바이트의 데이터////////////////////////////를 보냅니다

//////////////////////////////////

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Void sendchar(uchar ch)

{

SBUF = ch

While (ti = = 0);

TI = 0;;

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

//////////////////////////////////

//////////////////////////////////

//////////////////void send string (uchar * p); 구현 기능: 직렬 포트를 통해 문자열////////////////////////를 보냅니다.

//////////////////////////////////

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Void 전송 문자열 (uchar *p)

{

While(*p)

{

Send char (* p);

P++;+;

}

Send char (0x0d);

Send char (0x0a);

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

//////////////////////////////////

//////////////////////////////////

///////////////void receive (void) interrupt 4 using1; 구현 기능: 직렬 포트를 통해 데이터////////////////////////를 수신합니다.

//////////////////////////////////

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Void 수신 (void) 인터럽트 4 사용 1

{

중간 주파수 (RI)

{

(Rx & ltRxIn) 인 경우

{

Systembuf [rx] = sbuf;

R x++;

}

RI = 0;;

}

}

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

//////////////////////////////////

//////////////////////////////////

//////////void GSM _ init (void); 기능: TC35 모듈//////////////////////////를 초기화합니다.

//////////////////////////////////

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Void GSM_INIT(void)

{

루프:

Delay _ ms (1000);

Send string (at);

Delay _ ms (1000);

문자열 보내기 (ate);

Delay _ ms (1000);

Send string (at _ cnmi);

Delay _ ms (1000);

Send string (at _ csca);

Delay _ ms (1000);

For(Rx = 0;; Rx & ltRxInRx++)

{

Systembuf [rx] = 0x00;

}

Rx = 0;;

Send string (at _ cmgf);

Delay _ ms (1000);

If ((systembuf [2] = =' o') & & amp(system buf[3]= =' k ')// 모듈이 성공적으로 초기화되었는지 확인하고 성공하면 모듈은 마이크로컨트롤러' OK' 에 응답합니다.

{//마이크로컨트롤러가 OK 를 받지 못하면 초기화 명령/

For(Rx = 0;; Rx & ltRxInRx++)

{

Systembuf [rx] = 0x00;

}

Rx = 0;;

}

기타

{

For(Rx = 0;; Rx & ltRxInRx++)

{

Systembuf [rx] = 0x00;

}

Rx = 0;;

루프로 이동

}

}

/* * * * * * * * *