Hỏi về sim800L với AT89s52

taias3

Học sinh phổ thông
#1
Em test sim800L bằng máy tính và lưu tốc độ 9600, tắt echo, chuyển tin nhắn sang dạng text lại rồi. Gửi ok. Kết nối mcu với máy tính nó cũng send lệnh AT ok nhưng khi kết nối 800L với vđk(89s52) thì nó không gửi tin nhắn. Mọi người xem code có gì sai không giúp em với ạ! E cảm ơn!

#include <at89x52.h>
#include <main.h>

/*khai bao tap lenh AT cho module sim800a*/
//unsigned char *command_ATE0 = "ATE0";
//unsigned char *command_CMGF = "AT+CMGF=1";
unsigned char *command_CMGS = "AT+CMGS=\"0946xxxxxx\""; //tap lenh gui tin nhan vao so dien thoai
unsigned char *SMS ; // bien noi dung tin nhan
unsigned char CR = 0x0D;
unsigned char LF = 0x0A;
unsigned char CTRLZ = 0x1A; //ket thuc noi dung va gui tin nhan

//khai bao cac ham con
void gui_ki_tu(unsigned char c);
void gui_chuoi_ki_tu(unsigned char* p);
void khoi_tao_sdt();
void gui_sms();
void khoi_tao_UART();
void delay_ms(unsigned long value);

/*Chuong trinh chinh*/
void main(){

//khoi tao giao tiep UART
khoi_tao_UART();

SMS = "test thu sms \r";
gui_sms();
while(1)
}
/*-------------------Cac ham con-------------------------*/

/*ham khoi tao giao tiep UART de VDK giao tiep voi module sim800A*/
void khoi_tao_UART()

{
SCON = 0x50; //SCON: mode 1, 8-bit UART, enable receive
//SM0 = 0; SM1 = 1; // Chon UART mode 1
TMOD = 0x20; //TMOD: timer 1 hoat dong che do 8-bit tu dong nap lai
TL1 = 0XFD; //9600 @ 11.0592
TH1 = 0xFD; //TH1: toc do baud 9600
TR1 = 1; //TR1: timer 1 bat dau chay */
TI = 1;
}

/*ham gui tin nhan sms*/
void gui_sms()
{
gui_chuoi_ki_tu(command_CMGS);
gui_ki_tu(CR);
gui_ki_tu(LF);
delay_ms(200);
gui_chuoi_ki_tu(SMS);
delay_ms(100);
gui_ki_tu(CTRLZ);
}
/*ham gui 1 chuoi ki tu */
void gui_chuoi_ki_tu(char* s)
{
while(*s!=0)
{
gui_ki_tu(*s);
s++;
}
}
/*ham gui 1 ki tu*/
void gui_ki_tu(unsigned char c)
{
SBUF = c; //ghi kí tu can gui len thanh ghi SBUF
while(TI==0); //cho ki tu duoc gui di hoan tat (ki tu gui xong co TI = 1)
TI=0; //xoa co TI

}

// delay milli giây
void delay_ms(unsigned long value)
{
unsigned long x, y;

for(x = 0; x < value; x++)
for(y = 0; y < 1275; y++);
}





file main.h đây ạ:


#ifndef _MAIN_H_
#define _MAIN_H_

#include<regx52.h>

#define FREQ_OSC 11059200ul

#define BAUD_RATE 9600

#endif
 

Quảng cáo Google