搜索
bottom↓
回复: 5

红外防盗 单片机 VS1838B GSM

[复制链接]

出0入0汤圆

发表于 2012-5-9 01:02:45 | 显示全部楼层 |阅读模式
本帖最后由 拖拉机 于 2012-5-9 01:06 编辑

      小弟在做红外防盗报警器时,接收端不能按要求工作(要求如下)恳请高手指点
       单片机晶振为27.145MHZ
       发射端通过单片机T0工作在方式2发送2002微秒(154次13微秒)的38KHZ方波,接着发送6006微秒(154次×13微秒×3)的高电平,以此来驱动红外线发光二极管工作.
      接收端用VS1838B来接收发射端发射的信号,并把VS1838B的out引脚接到单片机上的P3^2引脚,通过外部中断0和定时器T0工作在方式2来计算out引脚上两次下降沿之间进入定时器中断的次数,如果进入定时器中断的次数不是600到625次之间(实际上应该是616次,允许有误差所以设置为600到625次之间)就通过GSM触发标志位flag来触发GSM发送短信(并点亮P1^7引出的LED灯,发送完了之后熄灭LED灯),否则不发送。下面是接收端单片机的程序:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar flag=0;  //发送短信标志位
uint count;        //接收到低电平时产生定时器中断次数
uint a;  //进入外部中断次数
sbit D=P1^7;
uchar code at[] =   "AT\0x0D\0x0A";
uchar code cmgf[]   = "AT+CMGF=0\0x0D\0x0A";
uchar code size[]  ="AT+CMGS=36\r";
uchar code duanxin[]="0891683108702505F011000B815128707088F00008A71660A87684623F95F45728906D53D751654FB5FF01FF01\x01a\0x0D\0x0A";

void chushihuaT0();   //定时器T0初始化
void   uart_int(void);          //串口初始化
void delay(uint z); //延时程序
void  send(uchar *tab); //GSM发送初始化
void main()
{       
        chushihuaT0();                                       
        count=0;
        EX0=1;   //开启外部中断 0
        IT0=1;   // 设置为下降沿触发方式                                          
        D=1;
        a=0;
                                                  
        uart_int();
        delay(500);
    send(at);
        delay(150);
        send(cmgf);                                       
        delay(150);
        while(1)
        {       
                if(flag==1)          //标志位为1就发送短信
            {                         
                    send(at);
                    delay(400);
                    send(cmgf);                               
                    delay(400);
                    send(size);
                    delay(400);
                    send(duanxin);          //发送短信
                        for(a=0;a<4;a++)
                        {
                                delay(1000);   //延时2秒
                         }
                        flag=0;        //发送完短信,把发送短信标志位清零,以便下次继续发送短信
                        D=1;  //发送完短信,发送短信指示灯灭
                }       
        }
}


void chushihuaT0(void)   //定时器T0初始化
{
        EA=1;       
        TMOD=0x02;
        ET0=1;
        TH0=227;
        TL0=227;
}

void   uart_int(void)          //串口初始化
{
        SCON   =   0x50;        //UART方式1:8位UART;   REN=1:允许接收
        PCON   =   0x00;   //SMOD=0:波特率不加倍
        TMOD   =   0x20;   //T1方式2,用于UART波特率
        TH1     =   0xFD;
        TL1     =   0xFD;   //UART波特率设置:9600
        TR1     =   1;
        ES=1;
}

void delay(uint z)        //延时程序
{
        uint x,y;
        for(x=z;x>0;x--)
        for(y=110;y>0;y--);

}

void   send(uchar *tab) //GSM发送初始化
{
        while((*tab)!= '\0')
        {
            SBUF =*tab;
            while(TI ==0);
            TI = 0;
            tab++;   
         }
}

void waibu() interrupt 0    //外部中断 0
{                 
    a++;
        count=0;  //对低电平时的定时中断次数清零,以便对下个低电平重复操作
        TR0=1;          //当接收到下降沿时,开启定时器T0,开始计时
        while(a==2)          //判断两次下降沿之间进入定时器中断的次数
        {
            if(count>600&&count<625)
            {
                    flag=0;
            }
                else
                {
                        flag=1;        //准备发送短信
                        D=0;        //发送短信指示灯亮
                }
                a=0;
        }

               
}

void T0_time() interrupt 1           //定时器T0中断
{                                                    
        count++;
}


出0入0汤圆

发表于 2013-1-1 23:54:14 | 显示全部楼层
正在用AVR做,还是新手,学习了

出0入0汤圆

发表于 2013-2-3 21:44:00 | 显示全部楼层
这个我也不会,希望有高手来帮你

出0入0汤圆

发表于 2013-2-3 22:44:43 | 显示全部楼层
很不错的想法....

出0入0汤圆

发表于 2013-3-6 21:24:51 | 显示全部楼层
请问GSM发送短信,手机能接收到吗?收费吗?谢谢!

出0入0汤圆

发表于 2013-3-9 14:49:13 | 显示全部楼层
LBQ691477940 发表于 2013-3-6 21:24
请问GSM发送短信,手机能接收到吗?收费吗?谢谢!

能收到的,它是要插上一张SIM卡的,钱卡里扣
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-4 02:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表