前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C51 单片机开发震动提示的功能

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

作者头像
码农UP2U
发布2024-04-30 17:26:23
670
发布2024-04-30 17:26:23
举报
文章被收录于专栏:码农UP2U码农UP2U

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

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

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

0x01:功能需求与规划

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

功能大体是这样的:

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

0x02:接线图

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

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

0x03:代码实现

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

代码语言:javascript
复制
#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;
            }
        }
    }
}

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农UP2U 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01:功能需求与规划
  • 0x02:接线图
  • 0x03:代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档