标题: 基于单片机的GSM安防系统 论文+原理图+程序 [打印本页]

作者: 51hei学习技术中    时间: 2016-10-11 15:54
标题: 基于单片机的GSM安防系统 论文+原理图+程序
该项目并不完美,如果要做这个项目的朋友,有此项目帮助相信会容易很多。

在此说明一下该GSM发送短信的方式,这里采用的是PDU模式,但不是直接发送PDU短信,而是先把要发送的短信存到SIM卡上,再从SIM卡上转发出去。如果要直接发送,只要再代码内改一下相应的AT指令即可。

另外,PCB上与实际电路有点不符,因为当时做出板来后,焊上元件,但是还是有小小的问题,所以在硬件上调好后,就没有把PCB上的也改了。放心,原理图上是正确滴。

沐雨青林在此多谢各位的支持。

若需要该项目的相关芯片资料或者GSM实际调试返回指令的可以联系俺。对此有疑问的也可以问俺。

沐雨青林原创
基于AT89S52单片机的安防系统设计论文

指导老师:                                          谭雄乐

开发人员:                                          林国友
                                                                                                                徐健俊
任务分配:林国友(编写程序、硬件测试、硬件焊接、程序调试)。                              徐健俊(画PCB电路)。


警报发生:红外警报→发送“红外警报”短信
燃气警报→发送“燃气警报”短信
烟雾警报→发送“烟雾警报”短信
收到短信:“家里情况”→发送短信“一切正常”(无警报时)
“关闭红外”→关闭红外警报,关闭蜂鸣器,关红外指示灯
“关闭燃气”→关闭燃气警报,关闭蜂鸣器,关燃气指示灯
“关闭烟雾”→关闭烟雾警报,关闭蜂鸣器,关烟雾指示灯
“关闭所有”→关所有警报,关蜂鸣器,关警报指示灯,开正常指示灯
实物图:
硬件接线图请参考:AT89S52单片机的安防系统硬件接线图.doc
2键盘中断流程图
原理图:
AT89S52外围I/O接口:
P1.0~P1.7为矩阵键盘输入,P1.0~P1.3为行,P1.4~P1.7为列。
P0.3为蜂鸣器(低电平有效),P0.4~P0.7为LED指示灯(低电平有效)
P2.0~P2.2为安防信号扫描入口P2.1、P2.2、P2.0(高电平有效)
P2.0接红外探测器,P2.1接燃气探测器,P2.2接烟雾探测器
P3.0、P3.1用作串口接收发送,P3.2用作键盘外部中断输入,P3.6、 P3.7分别接24C02的SCL和SDA
RST按键复位,XTAL1、XTAL2接12M晶振
P0.0、P2.4~P2.7用作NOKIA5110显示屏。
PCB(硬件在调试时有更改,但相差不大):
主函数代码:
  1. /****************************************************************
  2. ****************************************************************
  3. ****                            main.c  主函数                                                        *****
  4. ****                                                                                                                *****
  5. ****                                本程序都是采用PDU格式                                        *****
  6. ****************************************************************
  7. ****************************************************************/


  8. #include
  9. #include
  10. #include
  11. #include
  12. #include
  13. #include
  14. #include

  15. extern bit scan_Security();//安全监控扫描
  16. //警报扫描初始化  初始化所有检测电平,等待警报电平进入
  17. extern void init_security();
  18.                
  19. extern uchar idata phonenum[15];//存放要发送对象的号码
  20. extern uchar Nindex[];//存放发送到SIM卡中短信返回的index
  21. extern void test_code(uchar n_delay,uchar n_wait);/*测试函数*/
  22. void init_pho_msg();//号码和短信初始化

  23. void main()
  24. {
  25.         
  26.         lcd_disp0();
  27.         I2C_Init();//I2C总线初始化

  28.         P0_4=0;//
  29.         LCD_clear();//清屏
  30.         LCD_write_String(8,4,"GSM");
  31.         disp16_16(2,2,16);//安
  32.         disp16_16(4,2,17);//防
  33.         disp16_16(6,2,18);//系
  34.         disp16_16(8,2,19);//统
  35.         delayms_100ms();

  36.         init_interrupt();                        //外部中断0初始化  键盘
  37.         init_security();                        //警报扫描初始化

  38.         P0_4=1;//
  39.         P0_5=0;//
  40.         LCD_clear();//清屏
  41.         disp16_16(0,0,29);//指
  42.         disp16_16(2,0,30);//导
  43.         disp16_16(4,0,31);//老
  44.         disp16_16(6,0,32);//师
  45.         LCD_write_char(':');
  46.         disp16_16(2,2,33);//谭
  47.         disp16_16(4,2,34);//雄
  48.         disp16_16(6,2,35);//乐

  49.         init_uart();                                //初始化串口
  50.         while(!connect_gsm());                  //发送联机指令
  51.         test_code(1,0);//

  52.         P0_5=1;//
  53.         P0_6=0;//
  54.         LCD_clear();//清屏
  55.         disp16_16(0,0,20);//制
  56.         disp16_16(2,0,21);//作
  57.         disp16_16(4,0,22);//人
  58.         LCD_write_char(':');

  59.         init_gsm();                                        //禁止回显,设置为pdu模式
  60.         
  61.         P0_6=1;//
  62.         P0_7=0;//
  63. //        LCD_clear();//清屏
  64.         disp16_16(2,2,23);//林
  65.         disp16_16(4,2,24);//国
  66.         disp16_16(6,2,25);//友
  67.         
  68.         disp16_16(2,4,26);//徐
  69.         disp16_16(4,4,27);//健
  70.         disp16_16(6,4,28);//俊
  71.         while(!connect_gsmnet());         //获取网络注册情况
  72.         init_sim();                                        //不接受广播短信
  73.         test_code(5,0);//响铃500ms提示初始化成功

  74.         init_pho_msg();//号码和短信初始化
  75.         P0_7=1;//
  76.                                                                
  77.         test_code(1,0);//响铃100ms提示进入系统监控状态
  78.         while(1)
  79.         {               
  80.                 scan_Security();//安全监控扫描
  81.                 key_out();//键盘处理跳出               
  82.                 Chk_Read_Do();//检测读取新短信执行控制命令

  83.         }
  84.          
  85. }

  86. //号码和短信初始化
  87. void init_pho_msg()
  88. {
  89.         uchar i,n_addr=0x0;
  90. //读取目标号码到phonenum
  91.         for(i=0,n_addr=0x0;i<13;i++)
  92.                 I2C_On(I2C_SrRECV, 0xA0, n_addr++, &phonenum[i], 1);//读n_addr地址内容到phonenum
  93.         phonenum[13] = '';
  94.         if(phonenum[12]<0 && phonenum[12]>9)
  95.         {
  96.                 strcpy(phonenum,"8618998361948");//设定初始号码
  97.                 for(i=0,n_addr=0x0;i<14;i++)
  98.                 {
  99.                         I2C_On(I2C_SEND, 0xA0, n_addr++, &phonenum[i], 1);//写phonenum内容到n_addr地址
  100.                         delayms_10ms();
  101.                 }
  102.                 phonenum[13] = '';
  103.                 while( !init_Send_sms_sim(phonenum) );                //初始化将所有要发送的短信写到SIM卡
  104.         }
  105.         LCD_clear();//清屏
  106.         LCD_write_String(0,0,"Read Phone number");
  107.         LCD_write_String(0,2,phonenum);
  108.         
  109.         delayms_1000ms();        
  110. }
复制代码

AT89S52单片机的安防系统硬件接线说明
红外:蓝(信号负输入)青(信号正输入)黑(9V电源负)红(9V电源正)
燃气:蓝(信号负输入)青(信号正输入)黑(9V电源负)红(9V电源正)
烟雾:蓝(信号负输入)青(信号正输入)黑(9V电源负)红(9V电源正)
具体接线请看图上注解

注意:燃气和红外的蓝色线不需要接上

元件清单:
芯片:AT89S52、MAX232、TLP521-4光耦。
传感器:红外、烟雾、燃气


按键 17个
串口(针) 1个
AT89S52 底座 1个
16针底座 2个
DC直插式电源座(普通) 1个
蜂鸣器 1个
11.0592晶振 1个
PNP管 1个
HT7133A 1个
LM7805稳压管 1个
电容104
电容22uF(复位键用) 1个
电容22pF(晶振用) 2个
LED灯 5个
电阻10K(复位) 1个 (R10)
电阻1K 7个 (R1,R2,R3,R5,R6,R14,R15,R16,R20)
电阻330 3个 (R4,R7,R8)
二极管(键盘用) 4个
排针、排座若干


注意:原理图中的C1电容在PCB封装中删除了,那是不对的,当时我们做好后,就因为这个原因,屏幕显示就出问题了。

具体请看原件参数图





所有资料打包下载地址(包含论文+程序+原理图等全套资料):
http://www.51hei.com/bbs/dpj-4591-1.html
作者: 爱学习的庆庆    时间: 2021-9-26 21:51
谢谢分享哈, 正在学习发送短信。。。。。。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1