目录具体实现功能设计介绍51单片机简介资料内容原理图AD19程序Keil5全部资料资料获取具体实现功能具体功能1系统分为主机和从机。从机上有布防、撤防、紧急报警按键。2按下布防按键后进入监控状态当主机检测到震动或人体时进行报警。3按下撤防按键解除布防。当遇到特殊紧急情况时可按下紧急报警键进行报警。设计介绍51单片机简介51单片是一种低功耗、高性能CMOS-8位微控制器拥有灵巧的8位CPU和可编程Flash使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。本设计所使用的芯片可兼容以下所有的51系列单片机包括AT系列和STC系列。资料内容原理图AD19本系统原理图设计采用Altium Designer19具体如图。注1请使用Altium Designer19直接打开资料中的工程文件资料中已说明打开方式注2此设计需按照原理图制作实物不可直接烧录到任何开发板中运行需要修改程序程序Keil5本设计利用KEIL5软件实现程序设计。主函数如下//////////////// void main() //主函数 { uchar j; relay0; key10; key20; key30; Uart_init(); //中断初始化函数 init_eeprom(); LED_YLED_G0; delay(5000); SendString(AT\r\n); delay(1000); SendString(AT\r\n); delay(1000); SendString(ati\r\n); delay(1000); SendString(ati\r\n); delay(1000); SendString(ATH\r\n); delay(1000); SendString(ATIPR9600\r\n); delay(1000); RsPoint0; for(j0;jRsBuf_N;j) { RsBuf[j]0; } delay(10000); SendString(AT\r\n); delay(1000); SendString(ati\r\n); delay(1000); SendString(ATH\r\n); delay(1000); SendString(ATCMGF1\r\n); delay(1000); SendString(ATCNMI2,1,0,0,0\r\n); delay(1000); SendString(ATCSCS\UCS2\\r\n); delay(1000); SendString(ATCSMP17,0,2,25\r\n); delay(1000); SendString(ATCMGL\REC UNREAD\,0\r\n); delay(1000); REN1; // 不允许串口接收数据 ES1; // 串口中断不应许 LED_YLED_G1; while(1) //进入循环 { if(RsPoint10) { deal(); RsPoint0; } keyscan(); //按键函数 if((rsd0||zd0)flag_BF1TR00) //热释电有信号并且在布防状态 { if(rsd0) flag_rsd0; if(zd0) flag_zd0; LED_Gflag_zd; LED_Yflag_rsd; //点亮发送短信指示灯 j200; //初值200 while(j--) { delay(10); //5ms*2001s if(rsd0) flag_rsd0; if(zd0) flag_zd0; if(flag_rsd0flag_zd0) break; } LED_Gflag_zd; LED_Yflag_rsd; //点亮发送短信指示灯 GSM_work(); //发送短信函数 } if(SOS1) GSM_work(); //发送短信函数 } } void T0_time() interrupt 1 //定时器0中断服务函数 { TH00x4b; TL00xff; //重新赋初值50ms m; //每50ms变量m加一次 if(m10) //加10次也就是500ms { m0; //m清零 n; //变量n加一次是500ms if(flag1/*||flag_bj1*/) //布防计时并且再次发送短信等待变量为1 { LED_G!LED_G; //布防指示灯闪烁 LED_YLED_G; } if(flag_alarm1) //报警开关打开 { BUZZ!BUZZ; //蜂鸣器取反 sec_alarm; //报警计时 if(sec_alarm40) //取反十次也就是蜂鸣器响5次 { sec_alarm0; //秒清零 BUZZ1; //关闭蜂鸣器 flag_alarm0; //报警变量清零 sec0; TR00; LED_G1; //布防指示灯闪烁 LED_Y1; } } if(n2) //n大于等于2也就是加两次就是1s { n0; //n清零 sec; //秒加 if(sec20flag1) //秒加到20布防计时状态下 { BUZZ1; //关闭蜂鸣器 sec0; //秒清零 flag0; //开始布防变量清零 LED_G1; //布防指示灯熄灭 LED_Y1; flag_BF1; //布防变量置1代表进入布防状态 TR00; //关闭定时器 sec_alarm0; //秒清零 } } } }程序运行结果如图注请使用KEIL C51直接打开资料中的工程文件资料中已说明打开方式全部资料全部资料包括原理图(AD19)、程序(Keil5)、protues仿真(protues8.7)、设计报告(仅供参考)、仿真视频、开发资料、仿真视频、单片机最小系统介绍等全网最全资料内容如下图所示资料获取https://docs.qq.com/doc/DT1pkdERzcVBpYUhk