51单片机之简易报警器
硬件
51单片机,433M无线射频信号控制器、蜂鸣器、震动传感器
思路
当433M按下A键时,将A键引脚拉高开启报警模式,此时震动传感器检测是否发生震动,当发生震动时(震动传感器的引脚检测到低电平),拉低蜂鸣器的引脚,没有震动时(震动传感器的引脚检测到高电平),拉高蜂鸣器的引脚,当433M按下B键时,将B键引脚拉高关闭报警模式
代码实现
#include "reg52.h"
#include #define ON 1
#define OFF 0sbit buzzer = P1^1;
sbit on_433M = P1^2;
sbit off_433M = P1^3;
sbit vibration = P1^4;void Delay100ms() //@11.0592MHz
{unsigned char i, j;i = 180;j = 73;do{while (--j);} while (--i);
}void Delay1000ms() //@11.0592MHz
{unsigned char i, j, k;//_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}void Delay2000ms() //@11.0592MHz
{unsigned char i, j, k;_nop_();i = 15;j = 2;k = 235;do{do{while (--k);} while (--j);} while (--i);
}void main()
{int mark = OFF;while (1){//开启报警模式if(on_433M == 1){buzzer = 0;Delay2000ms();buzzer = 1;mark = ON;}//关闭报警模式if(off_433M == 1){buzzer = 0;Delay1000ms();buzzer = 1;Delay100ms();buzzer = 0;Delay1000ms();buzzer = 1;mark = OFF;}//报警模式开启后,检测电动车是否发生震动、移动if(mark == ON){if(vibration == 0){buzzer = 0;}else{buzzer = 1; }}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
