Mạch Khóa Số Điện Tử Mạch Đếm Sản Phẩm Mạch Đèn giao thông Ngã Tư Mạch Trái Tim Final Mạch Trái Tim Final Mạch Trái Tim I Love U

May 27, 2015

Mạch điều khiển thiết bị từ xa bằng Module Sim 900A


Video Demo


Code Mã nguồn C ( Biên dịch bằng Keil C 4)

#include <REGX52.H>
#include <string.h>
#include "stdio.h"
#include "math.h"

// Define Macro
#define RL1 P2_0
#define RL2 P2_1
#define RL3 P2_2
#define RL4 P2_3


//--------------------------------------------------------
// Global variable
#define BUFF_SIZE 20
unsigned char buffer[BUFF_SIZE];
//unsigned char dl_rv;
unsigned char timer_count;
bit flag__;
bit ok;
char dem;


//-------------------------------------------------------------
// Function Static
void truyen_mang(char *s);
void xu_ly_tin_nhan(void);
void Process_mess(char *dtin);
 //---------------------------------------------------------------------
 // ctrinh delay
void delay(unsigned int ms)
{
unsigned int i;
for(i=0;i<ms;i++);
}
//-------------------------- chuong trinh ngat nhan byt co tin nhan gui toi
// khi co tin nhan gui toi thi thuc hien doc tin nhan
void isr_tinnhan() interrupt 0
{
truyen_mang("AT+CMGR=1\r"); // doc tin nhan tai o nho thu 1 cua SIM.
delay(2000);
}
//-------------------------------------------------------
// ham xu ly du lieu nhan duoc

//-----------------------------------------------------------------
// khoi tao UART
void khoitao_uart(void)
{
SCON=0x52;
TMOD=0x21;      // khoi tao 2 timer time1 dung cho UART, timer0 dùng de tao time doc tin nhan
TH1=TH1=-3; // baud = 9600
//TH0 = -10000/256; // 10ms
//TL0 = -10000%256;
TR1=1;
// ES = 1;
//TR0 = 1;
// ET0 = 1;
EX0 = 1;
IT0 = 1;
EA =1;
}
//---------------------------------clear buff------------
//
void clear_buffer(void)
{
unsigned char i;
for(i = 0 ; i< BUFF_SIZE ; i++)
{
buffer[i] = '\0';
}
}

//--------------------------------------------------------------------------
// Chuong trinh ngat UART nhan du lieu tu sim
void isr_interrup() interrupt 4
{ char dl_rv;
if(RI)
 {
  dl_rv=SBUF;
switch (dl_rv)
{
case '\*':
clear_buffer();
dem = 0;
break;
case '#':
Process_mess(buffer);
break;
default:
buffer[dem] = dl_rv;
dem++;
if(dem>BUFF_SIZE)
dem=0;
break;
}
RI = 0;
}
}
//--------------------------------------------------------
//+CMGR: "REC READ","+841653263756","","13/05/20,19:49:22+28"TB1 ON 1234>
//>
//OK
//--------------------------------------------------


//----------------------------------------------------------------
// truyen mang dl xuong sim
void truyen_mang(char *s)
{
// putchar(0x0d); //xuong dong
while(*s)
{
putchar(*s);
s++;
delay(1000);
}
}
//----------------------------------------------------------------
// Khoi   tao Sim 900
void khoitao_sim(void)
{
delay(4000);
truyen_mang("AT\n\r");
delay(10000);
truyen_mang("AT+CMGF=1\n\r");
delay(10000);
}

//----------------------------------------------------------
// xu ly tin nhan nhan duoc

void Process_mess(char *dtin)  
{
if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '1') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'N') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
{
RL1 = 0;
truyen_mang("AT+CMGD=1\r");
delay(10000);
truyen_mang("AT+CMGS=\"+841649802694\"\r");                                      
     delay(10000);
  delay(10000);
     truyen_mang("Thiet Bi 1 da duoc bat");
     putchar(0x1A);
}
if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '2') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'N') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
{
RL2 = 0;
truyen_mang("AT+CMGD=1\r");
delay(10000);
truyen_mang("AT+CMGS=\"+841649802694\"\r");                                      
     delay(10000);
  delay(10000);
     truyen_mang("Thiet Bi 2 da duoc bat");
     putchar(0x1A);

}
if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '3') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'N') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
{
RL3 = 0;
truyen_mang("AT+CMGD=1\r");
delay(10000);
truyen_mang("AT+CMGS=\"+841649802694\"\r");                                      
     delay(10000);
  delay(10000);
     truyen_mang("Thiet Bi 3 da duoc bat");
     putchar(0x1A);
}
if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '4') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'N') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
{
RL4 = 0;
truyen_mang("AT+CMGD=1\r");
delay(10000);
truyen_mang("AT+CMGS=\"+841649802694\"\r");                                      
     delay(10000);
  delay(10000);
     truyen_mang("Thiet Bi 4 da duoc bat");
     putchar(0x1A);
}
if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '1') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'F') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
{
RL1 = 1;
truyen_mang("AT+CMGD=1\r");
delay(10000);
 truyen_mang("AT+CMGS=\"+841649802694\"\r");                                      
     delay(10000);
  delay(10000);
     truyen_mang("Thiet Bi 1 da duoc tat");
     putchar(0x1A);
}
if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '2') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'F') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
{
RL2 = 1;
truyen_mang("AT+CMGD=1\r");
delay(10000);
truyen_mang("AT+CMGS=\"+841649802694\"\r");                                      
     delay(10000);
  delay(10000);
     truyen_mang("Thiet Bi 2 da duoc tat");
     putchar(0x1A);
}
if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '3') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'F') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
{
RL3 = 1;
truyen_mang("AT+CMGD=1\r");
delay(10000);
truyen_mang("AT+CMGS=\"+841649802694\"\r");                                      
     delay(10000);
  delay(10000);
     truyen_mang("Thiet Bi 3 da duoc tat");
     putchar(0x1A);
}
if((*(dtin) == 'T') && (*(dtin+1)== 'B') && (*(dtin+2)== '4') && (*(dtin+3)== ' ') && (*(dtin+4)== 'O') && (*(dtin+5)== 'F') && (*(dtin+6)== ' ') && (*(dtin+7)== '1') && (*(dtin+8)== '2') && (*(dtin+9)== '3') && (*(dtin+10)== '4'))
{
RL4 = 1;
truyen_mang("AT+CMGD=1\r");
delay(10000);
truyen_mang("AT+CMGS=\"+841649802694\"\r");                                      
     delay(10000);
  delay(10000);
     truyen_mang("Thiet Bi 4 da duoc bat");
     putchar(0x1A);
}
}
//------------------ chuong trinh chinh----------------
//
void main(void)
{
khoitao_uart();
//PS=1;
khoitao_sim();
delay(10000);
flag__ = 0;
ok     = 0;
truyen_mang("AT+CMGD=1\r");
delay(10000);
truyen_mang("AT+CMGS=\"+841649802694\"\r");                                      
          delay(10000);
      delay(10000);
          truyen_mang("Do an tot nghiep svth: Nguyen Huy Bien k12D He Thong Da Duoc Khoi Dong");
          putchar(0x1A);
delay(10000);
   ES=1;

while(1)
{
;
}
}

Nguyên lý + Layout ( Khách hàng có nhu cầu liên hệ: eChipKool.Com@gmail.com để đặt)

Theo Huybien

Điện Tử | Tin Học - eChipKool.Com - Chia sẻ kiến thức - Kết nối đam mê điện tử


0 comments:

Post a Comment

Bạn đọc hãy giúp chúng tôi xây dựng cộng đồng bằng cách để lại bình luận, chúng tôi luôn đón nhận mọi ý kiến của các bạn:
» Bình luận nghiêm túc và không chứa các liên kết quảng cáo.
» Vui lòng không Spam nhận xét với mọi hình thức.
» Rất mong bạn đề tên cho nhận xét của chính mình - Bằng cách chọn vào Tên/URL và điền tên bạn vào (Phần URL có thể bỏ trống ).

- Bạn có thể chèn Link nhạc (NCT), video(Youtube),Hình ảnh vào comment bằng cú pháp:
+ [youtube] Link video Youtube [/youtube].
+ [img] Link ảnh( định dạng PNG, JPG,GIF) [/img]
+Chèn link liên kết: <a href="LINK" rel="nofollow">Name</a>
-Bạn copy mã bên cạnh biểu tượng chèn vào nhận xét để bày tỏ cảm xúc!!

:) :( :)) :(( =)) =D> :D :P