Gọi điện từ module sim900a sử dụng MCU at89s52

Thảo luận trong 'Thùng Rác - Recyle Bin'

Đang xem chủ đề này ( Thành viên: 0, Khách: 0)

  1. lehathanh993

    lehathanh993 Học sinh phổ thông

    Các bác giúp em với ạ.em mô phỏng và tham khảo giao tiếp UART giữa module sim900a và at89s52 thì đã gửi được lệnh rồi ạ,nhưng test mạch thật thì nó không chạy ạ.
    Cụ thể code em viết khi nhấn nút nhấn tại chân P2_1 thì sim sẽ gọi điện về máy chủ ạ

    #include <REGX51.H>
    #include<stdio.h>

    void delay_ms(unsigned int u)
    {
    unsigned int i,j;
    for(i=0;i<u;i++)
    for(j=0;j<125;j++);
    }
    /*-----delay------*/
    void delay(unsigned long int u)
    {
    unsigned long int i;
    for(i=0;i<u;i++);
    }
    void Serialbegin()
    {
    TMOD=0x20;
    SCON=0x50;
    TH1=0xfd;;
    TR1=1;

    }
    void Serialwrite(char dat)
    {
    SBUF=dat;
    while(TI==0);
    TI=0;
    }
    void Serialprintln(char *p)
    {
    while(*p)
    {
    Serialwrite(*p);
    p++;
    }
    Serialwrite(0x0d);
    }
    void main()
    {
    P2_1=0;
    P2_2=0;
    Serialbegin();
    //Serialprintln("AT");
    Serialprintln("ATE0");

    delay_ms(500);
    while(1)
    {
    P2_2=1;//led nhấp nháy
    delay_ms(1000);
    P2_2=0;//led nhấp nháy
    delay_ms(1000);
    if(P2_0==0) // nhấn nút
    {
    P2_1=1;// đèn sáng khi nhấn nút
    delay_ms(1000);
    Serialprintln("ATD+84985267472;");
    delay(1000);
    Serialprintln("AT+CMGF=1");
    delay(500);
    Serialprintln("AT+CMGS=\"+84985267472\"");
    delay(500);
    Serialprintln("ok men.");
    delay(500);
    Serialwrite(26);
    }
    else
    {
    P2_1=0;
    }
    }
    }
     

Chia sẻ trang này