C51:无线遥控电动车防盗器

目录

一 硬件外设 

​编辑

​编辑

二 震动传感器

三 蜂鸣器

四 继电器

五 震动通过继电器控制警报

五 433M无线射频模块

六 完结


效果展示:

基于C51的无线遥控电动车防盗器

一 硬件外设 

 1.蜂鸣器或者报警器

2.震动传感器

3.C52开发板

4.遥控器

5.继电器

6.433M无线射频模块

C51:无线遥控电动车防盗器_第1张图片

C51:无线遥控电动车防盗器_第2张图片

二 震动传感器

接线:

DO ->p3.3

VCC->5V

GND->GND

C51:无线遥控电动车防盗器_第3张图片C51:无线遥控电动车防盗器_第4张图片

 震动传感器也是低电平触发:

delay() 以让效果明显

烧录程序时候拔掉传感器供电,会影响烧录

#include "reg52.h"
#include 
 
sbit ledOne = P3^7;
sbit vibrate = P3^3;

void Delay200ms()		//@11.0592MHz
{
	unsigned char i, j, k;
 
	_nop_();
	i = 2;
	j = 103;
	k = 147;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void main()
{
	while(1){
		
		if(vibrate == 0){

				ledOne = 0;
				Delay200ms();
			
			}else{

				ledOne = 1;		
			}
	} 
}

三 蜂鸣器

蜂鸣器同理,代码没区别,外接线即可

#include "reg52.h"
#include 
 
sbit vibrate = P3^3;
sbit buzzer = P3^2;

void Delay200ms()		//@11.0592MHz
{
	unsigned char i, j, k;
 
	_nop_();
	i = 2;
	j = 103;
	k = 147;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void main()
{
	while(1){
		
		if(vibrate == 0){

				buzzer = 0;
				Delay200ms();
			
			}else{

				buzzer = 1;			
			}	
	} 
}

四 继电器

原理类似

C51:无线遥控电动车防盗器_第5张图片

 通过继电器来控制电路,比如智能插座,比如220V的灯,比如我们项目不带开关的傻瓜式报警器
当设置继电器为低电平处罚时,STC89C52RC的IO输出低电平,就会导致COM口和NO闭合,也就是完成报警器的串联电路,开始响。
现在我们就可以来写程序,完成振动控制警报的功能

代码没区别:

继电器被触发,绿灯会亮,会“咯噔”一声响

#include "reg52.h"
#include 
 
sbit vibrate = P3^3;
sbit relay = P3^2;

void Delay200ms()		//@11.0592MHz
{
	unsigned char i, j, k;
 
	_nop_();
	i = 2;
	j = 103;
	k = 147;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

void main()
{
	while(1){
		
		if(vibrate == 0){

				relay = 0;
				Delay200ms();
			
			}else{

				relay = 1;	
			}
	} 
}

五 震动通过继电器控制警报

警报器需要掐线,然后正负两根线连接在继电器上,但是这个警报器太吵了,这里用蜂鸣器代替

不同点是蜂鸣器有三个接口,使得I/O口始终低电平就好。

代码差不多

#include "reg52.h"
#include 
 
sbit vibrate = P3^3;
sbit relay = P3^2;
sbit buzzer = P3^4;

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 main()
{
	buzzer = 0;
	
	while(1){
		
		if(vibrate == 0){

				relay = 0;
				Delay1000ms();
			
			}else{

				relay = 1;	
			}
	} 
}

五 433M无线射频模块

433m无线模块基础知识 - 百度文库 (baidu.com)

 使用D0接口默认低电平,一按高电平,再一按低电平,对应遥控器按键A

#include "reg52.h"

sbit relay = P3^2;
sbit buzzer = P3^4;

sbit D0 = P1^0;
sbit key1 = P2^1;
sbit key2 = P2^0;


void main()
{
	buzzer = 0;
	
	while(1){
		
		if(D0 == 1){
				relay = 0;

			}
		if(D0 == 0){
				relay = 1;	
			}			
	} 
}

六 完结

复合以上代码,加入标记,加入led,led亮表示电动车上锁,灭表示电动车解锁,完成

#include "reg52.h"
#include 

sbit relay = P3^2;
sbit vibrate = P3^3;
sbit buzzer = P3^4;

sbit led = P3^7;

sbit D0 = P1^0;

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 main()
{
	buzzer = 0;
	led = 1;
	
	while(1){
		
		if(D0 == 1){
			led = 0;
			if(vibrate == 0){
				relay = 0;
				Delay1000ms();
			
			}else{
				relay = 1;	
			}
		}else{
			led = 1;
		}
	} 
}

你可能感兴趣的:(C51,单片机,嵌入式硬件)