首页 文章详情

C51 单片机开发震动提示的功能

码农UP2U | 138 2024-04-29 15:13 0 0 0
UniSMS (合一短信)

公众号文章同步阅读网址: www.netor0x86.com

闲话:前几天去医院,医院人很少,我挂号的那个大夫桌子上放着一本很厚的书,她在给周围的两三个年轻的大夫讲着书上的内容。知识除了自我学习探索、学校的教授,可能就是前辈的指导了!在学校和工作中,你是否还记得那些曾经教你知识的人呢?感谢!!



本篇文章来完成一个简单的例子,完成一个震动提示的功能,把之前的震动传感器、继电器、433M 模块都使用起来。算是综合的一个案例。


0x01:功能需求与规划

本篇文章将前面的内容进行一个整合,把震动传感器、继电器 和 433M 模块都整合到一起来完成一个功能。

功能大体是这样的:

  • 在 433M 模块的发射模块按下 A 时,设定为开启提示模式;喇叭长响一声,提醒进入提示模式;
  • 在 433M 模块的发射模块按下 B 时,设定为关闭提示模式;喇叭短响一声,提示退出提示模式;
  • 如果在提示模式状态下,发生了震动,那么喇叭会响起;如果不在提示模式下,发生震动,那么喇叭是不会响的。

0x02:接线图

下面给出一个接线图,来辅助我们进行编程,如下图:

94e6e2e47bdc0286289636da84205a66.webp

上面给出了一个简单的接线图,我们就按这个接线图来接线,写代码时也用这个图来定义每个针脚的作用。


0x03:代码实现

按照上面的描述和画的接线图,来实现一下代码,代码如下:

          #include <intrins.h>
#include "reg52.h"

#define WARNING_ON  1
#define WARNING_OFF 0

sbit switcher = P1 ^ 1;
sbit D0_ON    = P1 ^ 2;
sbit D1_OFF   = P1 ^ 3;
sbit vibrate  = P3 ^ 3;

void Delay2000ms()  //@11.0592MHz
{
  // 省略
}

void Delay500ms()  //@11.0592MHz
{
  // 省略
}

void main()
{   
    int mark = WARNING_OFF;
    
    while (1)
    {
        if (D0_ON == 1)
        {
            switcher = 0;
            Delay2000ms();
            switcher = 1;
            mark = WARNING_ON;
        }
        

        if (D1_OFF == 1)
        {
            switcher = 0;
            Delay500ms();
            switcher = 1;
            mark = WARNING_OFF;
        }
        
        if (mark == WARNING_ON)
        {
            if (vibrate == 0)
            {
                switcher = 0;
                Delay2000ms();
                Delay2000ms();
            }
            else
            {
                switcher = 1;
            }
        }
    }
}


上面是完整的代码,就是前面各种代码的整合,不再进行说明!演示情况如下:



往期文章列表

  1. C51 单片机开发环境的安装

  2. C51 单片机开发用 Keil 创建工程

  3. C51 单片机开发将 Keil 生成的文件写入单片机

  4. C51 单片机开发的理解

  5. C51 单片机开发 SFR 及 SBIT 的作用

  6. C51 单片机开发 I/O 口输入输出

  7. C51 单片机开发点亮一个 LED

  8. C51单片机开发让 LED 闪起来

  9. C51 单片机开发按键让灯亮起来

  10. C51 单片机开发两个按键控制 LED 的灯亮和灯灭

  11. C51 单片机开发按键软件消除的抖动

  12. C51 单片机开发一个按键控制 LED 的亮与灭

  13. C51 单片机开发记录状态位控制 LED 的亮与灭

  14. C51 单片机开发震动传感器介绍

  15. C51 单片机开发振动传感器控制继电器

  16. C51 单片机开发震动让喇叭响起来

  17. C51 单片机开发 433M 控制继电器


我是一个程序员,了解 C、PHP、Java、ASM、Python,有 信安、CISP 证书,写小白也能看得懂的文章,感谢关注!!!

我的网站:https://www.netor0x86.com


我录制的视频课程:

1. 入门级栈溢出分析

2. WEB端获取MAC地址真实项目案例

3. PHP扩展模块开发之DLL编写与调用

4. C语言零基础入门教程

5. PE 文件结构初识与二进制手写可执行程序


a3cd8c94caf256ec8d6f08ef4e1d27c6.webp


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter