C51_day3:入门项目电动车报警器
1、 硬件清单列表 :振动传感器模块;继电器模块;433M无线模块;
反应出来的代码都是高低电平,跟以上学习按键,LED并没有区别但是!做出来有乐趣,好玩刺激!
2、振动传感器控制灯
振动传感器结构:正极、负极、Do(数字输出:振动输出0,不振动输出1)、Ao不用
#include "reg52.h"sbit led1 = P3^7;//根据原理图(电路图),设备变量led1指向P3组IO口的第7口
sbit vibrate = P3^3;//Do接到了P3.3口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()
{//查询方式判断是否发生震动while(1){if(vibrate == 0)//模块说明告诉我们,震动的话,D0输出低电平{led1 = 0;//亮灯Delay2000ms();led1 = 1;}else{led1 = 1;//灭灯}}
}
3、继电器工作逻辑
通过继电器来控制电路,比如智能插座,比如220V的灯,比如我们项目不带开关的傻瓜式报警器当设置继电器为低电平处罚时,STC89C52RC的IO输出低电平,就会导致COM口和NO口闭合,也就是完成报警器的串联电路,开始响现在我们就可以来写程序,完成振动控制警报的功能
继电器结构:与单片机相连的一端有vcc 、gnd、IN(与单片机相连,输入低电平导通继电器);
另一端有公共端com 常开端NO 常闭端NC (只需将控制电路串联com和NO端即可)
振动传感器和按键一样只有振动或者被按下时才输入低电平否则其他时候都是高电平
#include "reg52.h"sbit vibrate = P3^3;//Do接到了P3.3口
sbit switcher = P1^1;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()
{//查询方式判断是否发生震动while(1){if(vibrate == 0)//模块说明告诉我们,震动的话,D0输出低电平{//当发生震动适合,导通继电器,给继电器IN一个低电平switcher = 0;Delay2000ms();switcher = 1;//高电平,继电器N0和COM不通}else{switcher = 1;}}
}
4、 遥控发送接收433M射频单元
单片机供电VCC GND接单片机接收到信号,接收模块对应针脚输出高电平有D0 D1 D2 D3,对应遥控器的ABCD
#include "reg52.h"sbit D0_ON = P1^2;
sbit D1_OFF = P1^3;sbit switcher = P1^1;void main()
{//查询方式哪个按键被按下while(1){if(D0_ON == 1)//收到遥控信号A,D0表现为高电平{//A被按下,我们导通继电器,给继电器IN一个低电平switcher = 0;}if(D1_OFF == 1)//收到遥控信号C,D1表现为高电平{//B被按下,我们不导通继电器,给继电器IN一个高电平switcher = 1;}}
}
5、项目开发
#include "reg52.h"
#include<intrins.h> #define J_ON 1
#define J_OFF 0
sbit switcher = P1^0;
sbit D0_ON = P1^1;
sbit D1_OFF = P1^2;
sbit vibrate = P1^3;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 Delay500ms() //@11.0592MHz
{unsigned char i, j, k;_nop_();i = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i);
}void main()
{int mark = J_OFF;while(1){//1. 如果a按键被按下,设定为开启警报模式if(D0_ON == 1){//长响,表示进入警报模式switcher = 0;Delay2000ms();switcher = 1;//设定警报模式标记mark = J_ON ;}//2. 如果b按键被按按下,设定为关闭警报模式if(D1_OFF == 1){//短响,表示进入解除警报模式switcher = 0;Delay500ms();switcher = 1;//设定警报解除模式标记mark = J_OFF ;}//3. 如果标记是在警报模式下if(mark == J_ON){//3.1 如果发生了震动if(vibrate == 0){//喇叭响,给继电器低电平,导通switcher = 0;}//3.2 如果不发生震动else{//喇叭不响,给继电器高电平,不导通switcher = 1;}}}
}
C51_day3:入门项目电动车报警器相关推荐
- 入门项目·电动车报警器
文章目录 目录 前言 1.3.1 硬件清单列表 1.3.2 振动传感器控制灯 1.3.3 继电器工作逻辑 1.3.4 遥控发送接收433M 1.3.5 项目开发 二. 定时器 1.4 简介 1.5 定 ...
- 电动车报警器实现就是这么简单(教程里面提供源码)
前言: 上篇博客中简单写了一下初识单片机,实现了点灯入门.博文结尾谈到了将会在接下来的博客中记录用C51单片机做一些项目教程.今天就来开始一下我们的入门级项目--电动车报警器实现. 话不多说,先来看一 ...
- 51单片机入门项目总结:简易版防盗报警器
好久没有更新博客了,今天开始有时间就写写博客,总结一下之前做过的项目,以及对一些技术的思考.因为目前做过的项目都是为了学习单片机的某个知识点而做的,完成程度并不完整,后面也会对这些做过的项目进行完善和 ...
- vue2 + vue-router + vuex + iview 入门项目
简单的vue2 + vue-router + vuex + iview 入门项目,一个移动端平台的简易考试系统.灵感来源于近期工作项目中开发的一套考试平台系统.欢迎大家来issues指出错误共同进步. ...
- Spring Boot CLI 入门项目
看此文: https://blog.csdn.net/bcbobo21cn/article/details/109063292 运行spring boot cli程序:运行了如下: 访问网页看到如下: ...
- 最简单最详细的SpringBoot入门项目——HelloWorld
最详细的SpringBoot入门项目--HelloWorld 关于SpringBoot的介绍以及优点这里就不说了,想了解的可以直接点击这里 Spring Boot百度百科 接下来我们直奔主题,开始用S ...
- 以太网实习_物联网通信硬件入门项目—光纤收发器(1)——实习内容,适用范围,技术及收益...
嵌程似锦 公众号 项目实践 连载 不少同学常常为如何获得项目经验而发愁,从本文开始,嵌程似锦工作室将连载光纤收发器项目的的开发过程,供硬件开发者入门实习.这是一个非常好的硬件入门项目,适合通信,电子等 ...
- 基于Springboot2.0的Dubbo入门项目(dubbo-spring-boot-starter)
Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成.最近半年来,Dubbo的得到了快速的维护,官方也推出了 ...
- 基于IDEA搭建JavaWeb入门项目结构(2021版)
前言:对于很多从eclipse等IDE迁移到IDEA开发工具的小伙伴,对于如何在IDEA上创建JavaWeb入门项目结构不太了解.或者即使创建成功也能勉强使用也不知其所以然.针对于此,写该篇博客予以总 ...
最新文章
- P2转P3'dict' object has no attribute 'has_key'
- JavaScript之改变样式
- 中国古代道家思想与网页重构的思考
- 程序员的数学 3 线性代数pdf
- Robotics 机器人运动学 DH参数建模
- 台达变频器485通讯接线图_台达变频器RS485通讯设置
- “Unable to register this add-in because its DllRegisterServer returns an error”的解决办法
- Astah Pro 快捷键
- PHPstudy使用教程
- 安装PyTorch详细过程
- 业余草尚硅谷Java视频教程_SpringBoot视频教程免费下载
- collapse mode 严重_明早10点大讲堂 | 一个简单的方法解决生成对抗网络mode collapse问题...
- NoMachine出现 The session negotiation failed的解决方案及踩坑总结
- cesium获取模型高度_Cesium专栏-空间分析之剖面分析(附源码下载)
- 自学前端开发,现在手握大厂offer,我的故事还在继续
- java类加密_Java中常用加密类型
- c语言堆、栈、数据段、代码段、bss段的疑惑
- 计算机网络——(3)网络体系结构和协议
- 联想YOGA14s(2021) i5-11300H MX450双系统安装Ubuntu20.04全过程
- 河南大学计算机类保研率,郑州大学、河南大学、河南农业大学2021届保研率
热门文章
- Origin 2021/2022绘图软件 出现0xc000007b错误的解决方法
- 题解 | The Biggest Water Problem
- 激光雷达动态障碍物滤除-调研与展望
- TextClock设置24小时制和12小时制
- c/c++函数 -strtol strtoll strtoul strtoull解读
- centos 7 安装音频视频解码器
- C#操作word合并单元格
- abap 转换成字符串_SAP ABAP转换特殊字符乱码
- 13 使用Vue + FormData + axios实现图片上传功能实战
- 646. 最长数对链