중국시가넷 - 메시지 플랫폼 - 5 1 마이크로 컨트롤러 제어 TC35 모듈은 문자 메시지를 보낼 수 없습니다! ! ! !
5 1 마이크로 컨트롤러 제어 TC35 모듈은 문자 메시지를 보낼 수 없습니다! ! ! !
# 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;;
루프로 이동
}
}
/* * * * * * * * *
- 관련 기사