当前位置: 首页 > news >正文

学习STC51单片机08(芯片为STC89C52RC)

硬件3:433M无线射频信号控制警报器

这边是接收模块

我将GND连接板子上面的GND  5v连接5v

然后D0连接P1.2口  D1连接P1.3口,这边是说D0 D1 代表着按键A和B

那么我们设置按A开启   按B关闭,其实也就是给继电器信号,按A的时候让继电器工作,按B的时候停止工作

代码如下

这边我们要看说明书  因为这个模块接收到我们按键是输出高电平的,所以是我们设置D0_ON ==1;  

Tips:一般市面上常见的继电器模块,很多是低电平触发(低电平有效),但也有高电平触发以及高低电平触发

我们这边的是低电平触发的继电器,所以给继电器传一个0(代表低电平触发)继电器就工作了com - NO连接,电池与警报器串联,就会叫了

当我们按B按键的时候D1_OFF == 1那么 我们本意是想B按键按下是关闭警报器的  所以就设置传一个1的信号给继电器(1代表高电平),那么高电平的传进去,继电器内部的控制电路就发生改变,等于是切断了电源,那么电磁感应就没有了,那么铁片复位,铁片是由一个弹簧带动的,在有电磁感应的时候弹簧被拉长,没有电磁感应的时候弹簧恢复,那么铁片就会回到没有工作的位置了也就是com-NC

项目:电动车简易报警器

学习了以上的这些东西,都在为这个项目做铺垫,现在我们开始

电动车简易报警器信号电路设计

主要实现功能代码在这

整段代码是这样的

#include "reg52.h"

#include <intrins.h>

sbit switcher = P1^0;

sbit D0_ON    = P1^1;

sbit D1_OFF   = P1^2;

sbit vibrate  = P1^3;

#define J_ON  1

#define J_OFF 0

void Delay1000ms() //@11.0592MHz

{

unsigned char data i, j, k;

_nop_();

i = 8;

j = 1;

k = 243;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}

void Delay200ms() //@11.0592MHz

{

unsigned char data i, j, k;

_nop_();

i = 2;

j = 103;

k = 147;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}

void main()

{

int mark = J_OFF;

while(1){

if(D0_ON == 1){

switcher = 0;

Delay1000ms();

switcher = 1;

mark = J_ON;

}

if(D1_OFF == 1){

switcher = 0;

Delay200ms();

switcher = 1;

mark = J_OFF;

}

if(mark == J_ON){

if(vibrate == 0){

switcher = 0;

Delay200ms();

}else{

switcher = 1;

}

}

}

}

什么原理呢? 我们这边借助一下记录状态位来控制A按键按下表示J_ON 打开警报,B按键按下表示J_OFF 关闭警报,代码逻辑比较简单的,主要是记录状态位这个要牢牢记住这个思想

后面我发现这样写的代码当我开启警报后  我去震动传感器,传来的警报是断断续续的,所以我们这边给个时间

这样写的话看不出什么问题,但是我们知道现实生活中,警报声会比较长,因此我们多加几个

        这样我们会发现传感器感受震动的时候这个声音在持续的响,我们嫌弃太吵了想要按B键取消警报,但是没有用,因为此时单片机还在数数。。。哈哈哈,以为我们还没有学习中断,单片机在数数期间他不会管任何其他事情的。Ok啊这个程序有BUG以后学习了中断再回来修改程序!!!

展示效果

相关文章:

  • 五、central cache的设计
  • unity XCharts插件生成曲线图在UICanvas中
  • TrollStore(巨魔商店)的由来介绍
  • 山东大学计算机图形学期末复习完结篇上——24历年题
  • CAU数据库class3 关系型数据库基础
  • 2001-2023年上市公司管理讨论与分析文本数据(MDA文本数据)
  • 【算法】定长滑动窗口5.20
  • 十五、面向对象底层逻辑-BeanDefinitionRegistryPostProcessor接口设计
  • 瀚高安全版4.5.8/4.5.9字符串默认按字节存储导致数据无法写入(APP)
  • Python 包管理工具uv依赖分组概念解析
  • [ 计算机网络 ] 深入理解OSI七层模型
  • 数据库分库分表从理论到实战
  • 现代计算机图形学Games101入门笔记(十七)
  • 深度学习架构快速入门——卷积神经网络CNN、循环神经网络RNN、生成对抗网络GAN、Transformer以及编码器-解码器
  • [java八股文][Java虚拟机面试篇]垃圾回收
  • Runtime Suspend 专项训练
  • 记录一下flutter项目自己封窗的弹窗
  • Flutter - 集成三方库:数据库(sqflite)
  • AbMole| PEG300 (CAS号25322-68-3;目录号M9292)
  • 缺乏进度跟踪机制,如何掌握项目状态?
  • 王晋卿读《酒的精神》︱乏味时代的有味之思
  • 重庆对外经贸学院通报:一学生在体育课后不慎坠入化粪池,不幸遇难
  • 印尼总统20年来首次访泰:建立战略伙伴关系,加强打击网络诈骗等合作
  • 技术派|台军首次试射“海马斯”火箭炮,如何压制这种武器?
  • 外交部发言人就第78届世界卫生大会拒绝涉台提案发表谈话
  • 北方今年首场高温过程开启,西北华北黄淮多地最高或达40℃