【51单片机】智能百叶窗项目

news2025/5/18 7:10:36

文章目录

      • 功能演示:
      • 前置要求:
      • 主要功能:
      • 主要模块:
      • 主函数代码:

具体的仿真程序和代码程序已经免费放置在资源中,如有需要,可以下载进行操作。

功能演示:

前置要求:

编译软件:Keil C51 uvision5.27

仿真软件:Proteus 8.13

主要器件:

  • 数码管:1个
  • 光敏电阻:1个
  • TLC2543ADC芯片:1个
  • 步进电机(六线四相):1个
  • LED灯:1个
  • 按钮:3个
  • 开关:2个

主要功能:

实现智能百叶窗的控制,具体功能:数码管显示测量结果光强,设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态,自动状态时设置一个发光二极管点亮。创新:设置两个极限位置保护行程开关,用于保护百叶窗叶片。当压下正转行程开关时,电机停止正转,但还可以反转;当反转到极限位置压下行程开关时,电机停止反转,但还可以正转。

主要模块:

  1. 模数转换模块:

    光敏电阻传感器可以用于测量光强,然后使用TLC2543 ADC将获取的光强模拟量转换为数字量,便于之后操作。

  2. 按键扫描模块

    三个按键用于手动/自动切换、手动正转和手动反转,使用户可以手动控制百叶窗。

    使用LED来显示手动/自动状态,灯灭为手动状态,灯亮为自动状态。

    按下正转行程开关时,无法正转,但反转可以进行;

    按下反转行程开关时,无法反转,但正转可以进行。

  3. 电机驱动模块

    自动状态时,通过光强大小自动控制电机转向。

    光强越大,电机正转以完成遮阳效果。正转时,百叶窗会一直下放,直到完全遮住。

    光强越小,电机反转以完成照光效果。反转时,百叶窗会一直上升,直到完全展开。

    手动状态时,则通过正反转按键实现控制电机转向。

  4. 光强显示模块

    将转换后的数字量显示在四位数码管上,这样可以实时监测周围光照情况。

在这里插入图片描述

主函数代码:

#include "reg51.h"
#include "Delay.h"
#include "Motor.h"
#include "SegShow.h"
#include "TLC2543ADC.h"
#include "KeyScan.h"

void Init(void);

// 最终光强数据
unsigned int value = 0;

// 记录百叶窗的位置,初始时完全折叠
unsigned int book = 0;

// 用于标志 手动/自动状态
unsigned int flag = 1;

void main(void)
{
    Init();
    while (1)
    {
        KeyScan();
    }
}

void Int1() interrupt 2
{
    flag = ~flag;
}

// 定时器0中断服务程序
void Timer0_ISR() interrupt 1 {
    // 每次定时器中断发生时,延时计数器递减
    TH0 = (65536 - 50000) / 256;  // 设置定时器0初值
    TL0 = (65536 - 50000) % 256;  // 设置定时器0初值

	value = TLC2543_Getdata(0x10);
	SEG_SHOW(value);
}

void Init(void)
{
    /* 初始化中断 */
    EA = 1;
    EX1 = 1;
    IT1 = 1;

    /* 初始化为手动模式(灯灭)*/
    led = 0;

	/* 初始化定时器0 */
    TMOD = 0x01; // 设置定时器0为模式1
    TH0 = (65536 - 50000) / 256;  // 设置定时器0初值
    TL0 = (65536 - 50000) % 256;  // 设置定时器0初值
    ET0 = 1;     // 允许定时器0中断
    EA = 1;      // 允许总中断
    TR0 = 1;     // 启动定时器0
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1798412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

气膜建筑的照明设计:智能与高效的完美结合—轻空间

气膜建筑作为一种新型的建筑形式,因其独特的结构和材料,带来了多样化的功能和应用场景。在气膜建筑的设计中,照明设计是一个重要的环节,直接关系到建筑内部的使用体验和能源利用效率。本文将详细探讨气膜建筑的照明设计如何实现智…

QFI 2024年第二季度創羽計畫再次啟動,臺灣分部學員迎來最後的絕佳機會並獲得專案補助資格

Quantum Financial Insights (QFI) 在2024年第二季度的綜合表現不凡,無論是在社群用戶、交易量、綜合獲益值還是股價等方面,都展現出非常出色的優異表現,持續受到各國金融界、財團法人及國內外媒體的密切關注。QFI於正式宣佈,將贈予臺灣分部20個創羽案名額,這是該計畫原先已經結…

快速入门链路追踪sleuth整合zipkin(代码演示)

1、演示项目背景 2、pom.xml 3、启动项目 4、测试 5、保存数据到数据库 6、通过mq保存数据到mysql 7、通过mq保存数据到es 1、演示项目背景 下载zipkin,建议使用2.x版本的,3.x版本的要求jdk高版本。如果自己是1.8,就下载2.x的 下载地…

Win11 ubuntu子系统安装WslRegisterDistribution failed with error: 0x800701bc

执行完这两部,然后再打开ubuntu即可。链接

GitHub生成SSH密钥,使用SSH进行连接

目录 一、生成新的SSH密钥 二、添加新的SSH密钥 三、测试SSH连接 四、SSH密钥密码 五、创建新仓库并推送到github 说明 使用 SSH URL 将 git clone、git fetch、git pull 或 git push 执行到远程存储库时, 须在计算机上生成 SSH 密钥对,并将公钥添加到…

YOLOv10:实时端到端目标检测的新突破

目标检测作为计算机视觉领域的一个核心问题,其关键在于能够在图像中准确识别并定位对象。随着深度学习技术的发展,基于深度神经网络的目标检测方法不断涌现,其中YOLO(You Only Look Once)系列算法以其优异的实时性和准…

共筑安全防线 展望数字未来︱智汇云舟亮相广西网络安全与信息化高峰论坛

“没有网络安全,就没有国家安全”。自网络安全法颁布以来,国家及地方各级政府、企事业单位和社会各界高度重视并积极参与其中,信息系统的建设离不开网络安全体系的保障支撑,尤其在以数字孪生技术实现的综合业务管理平台设计中&…

GAT1399协议分析(10)--视频定义及解析

一、官方定义 二、字段解析 VideoID 类型BasicObjectID 解析参考GAT1399协议分析(8)--ImageInfo字段详解-CSDN博客 InfoKind 采集类型

工具:Linux如何挂载NTFS移动硬盘

从windows平台迁移数据至Linux平台,有时候会用到NTFS文件系统的硬盘,但Linux的file system一般又无法直接兼容NTFS系统。这个就需要用到ntfs-3g插件。 NTFS-3G是一个开源项目, NTFS-3G是为Linux, Android, Mac OS X, FreeBSD, NetBSD, OpenSo…

据阿谱尔调研显示,中国浮法玻璃产量大约占全球总产量的1/3以上

浮法玻璃是一种通过浸入熔融金属表面形成的玻璃板,其制造过程被称为浮法工艺。这一工艺的核心在于将熔化后的玻璃液顺利浮在低熔点的金属(通常是锡)表面上,使得玻璃板具有均匀的厚度和平整的表面。其化学成分主要由二氧化硅、氧化…

信创国产化 | 聚铭网络携手银河麒麟完成产品兼容性互认证

在我国信创国产化战略深入推进的大背景下,聚铭网络与麒麟软件积极响应国家号召,共同致力于软件和操作系统的国产化发展。近日,双方宣布已完成产品兼容性互认证工作,这一成果标志着两家公司在信创国产化道路上迈出了坚实的一步。 …

智能引领医疗新纪元:RFID技术在医疗器械管理中的高端应用

智能引领医疗新纪元:RFID技术在医疗器械管理中的高端应用 随着医疗技术的快速发展,医疗器械在医疗行业中扮演着至关重要的角色。然而,如何有效地管理这些医疗器械,确保其安全、准确、及时地服务于患者,一直是医疗机构…

DSP问题:TMS320F280049延时和实际不符

1、问题现象 我之前写的一篇点灯文章,发现LED等闪烁频率和设想不一致,延时100ms,实际延时要更长。 2、问题原因 电路中使用的晶振是10MHz,实际代码中配置的是20MHz的晶振。 3、解决方案 修改代码中的晶振配置为10MHz即可。…

俯视角2D游戏_02 子弹对象池

[!NOTE] 对象池 应用场合:这种做法常用于子弹这种会大量产生的对象 ,目的是减少性能的损耗 基本思路:产生的对象是有限的,并且加入到"对象池"的数组中不进行销毁,当需要使用时,再从对象池中提取对象循环利用&#xff0c…

1961. 检查字符串是否为数组前缀 - 力扣

1. 题目 给你一个字符串 s 和一个字符串数组 words ,请你判断 s 是否为 words 的 前缀字符串 。 字符串 s 要成为 words 的 前缀字符串 ,需要满足:s 可以由 words 中的前 k(k 为 正数 )个字符串按顺序相连得到&#xf…

Lab_ Exploiting a mass assignment vulnerability_实验室:利用大规模分配漏洞

使用 wiener:peter 登录 点击轻量级“l33t”皮夹克产品并将其添加到购物篮中。 去到购物车,点击下单,提示Not enough store credit for this purchase(没有足够的商店信用用于此次购买) 在Burp的HTTP历史记录中发现了API的请求…

Vivado 比特流编译时间获取以及FPGA电压温度获取(实用)

Vivado 比特流编译时间获取以及FPGA电压温度获取 语言 :Verilg HDL 、VHDL EDA工具:ISE、Vivado Vivado 比特流编译时间获取以及FPGA电压温度获取一、引言二、 获取FPGA 当前程序的编译时间verilog中直接调用下面源语2. FPGA电压温度获取(1&a…

解决CentOS 7无法识别ntfs的问题

解决CentOS 7无法识别ntfs的问题 方式一: Centos默认不支持ntfs文件格式,直接在Centos7上插U盘或移动硬盘无法识别,安装 ntfs-3g即可: # yum install epel-release -y # yum install ntfs-3g -y[rootbogon ~]# rpm -qa | grep nt…

外贸干货|如何提高商机转化率?

常常听到外贸业务员抱怨“询盘质量不高”、“有询盘没转化”、“有些客户只是来比价格的”……想必大家都不陌生! 但难道只有询盘问题、客户问题吗?我们自身的处理真的没问题吗?我想只有更多的自省自查我们可以控制的问题,优化我们…

尚云SunClouds打造以云算力为核心的混合云平台!

在数字经济迅猛发展的今天,算力已跃升为新基础能源,人工智能成为引领产业革新的核心工具。5月24日,尚云依托尚航科技全国智算中心的资源网络,打造了以云算力为核心的新一代混合云平台,尚云SunClouds品牌焕新上线&#…