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

基于AT89C51单片机的教室智能照明控制系统

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/90419908?spm=1001.2014.3001.5501
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

C+16
部分参考设计如下:

摘 要

本项目的智能教室灯光控制系统通过合理的软硬件设计,有效地提升了教室的能效和管理便利性。系统核心通过AT89S51单片机与热释红外传感器、光敏三极管电路相结合,能够智能判断教室内的人员存在与环境光强度,并据此自动调整灯光的开关状态。当教室内有人员存在且环境光较暗时,系统会自动开灯;而当人员离开或环境光充足时,灯光会自动关闭,从而有效避免了不必要的电力消耗。通过这一方式,能够显著节省能源,减少对环境的影响。

此外,系统的报警功能可以在传感器故障或者系统异常时及时提醒管理人员,确保系统的长期稳定运行。同时,系统通过“看门狗”机制增强了抗干扰能力,在复杂的电磁环境下也能够正常工作。

系统的软件部分采用C语言编写,设计采用模块化结构,使得系统易于维护和扩展。程序能够灵活应对不同教室的需求,具备较强的适应性和可操作性。系统的低功耗、简便的操作和高可靠性,使其在学校教室中的应用非常适合,既能减少电费支出,又有助于推动绿色环保理念的实施。

关键词:单片机 智能控制器 热释红外传感器

引言

随着经济的快速增长,能源不足的问题日益严峻,成为制约国家经济发展的瓶颈之一。特别是电力能源,作为工业和日常生活中不可或缺的部分,变得尤为紧张。随着低碳生活理念的推崇,节能已成为全球共识,高校更应在此方面发挥示范作用。然而,在许多校园内,经常出现教室灯光长时间亮着而教室空无一人的情况,这不仅浪费了大量能源,也影响了学校形象。本课题研究的智能教室灯光控制系统,旨在通过有效的能源管理来解决这一问题。

1. 系统硬件结构

该系统由多个模块构成,包括中央控制模块、光敏传感器电路、2×4键盘电路、时钟电路、继电器驱动电路、以及液晶显示电路。光敏传感器用于判断教室内外的光照强度,时钟电路提供时间数据,而这两者则为中央控制单片机提供必要的输入数据,单片机基于这些信息来做出决策,最终控制灯光并显示信息。

1.1 中央控制模块

中央控制模块负责处理来自光照传感器和时钟的输入数据,并根据这些数据判断是否需要开灯或关灯。此外,控制器还负责显示当前时间、设定的作息时间等信息,并允许通过键盘进行相关设置。选用的单片机为STC12C4052AD型,它是一款高性能、低电压工作的单片机,具有4KB的Flash存储、256字节的SRAM、多个定时器及A/D转换器,支持在线编程及看门狗功能。

1.2 液晶显示电路

为了提供良好的人机交互,系统中选用了1602液晶显示屏,显示用户设定的作息时间、当前时间以及系统状态等信息。液晶显示模块采用的是日立公司生产的HD44780型显示控制器,支持字符显示、字符闪烁及移动等功能,能够与单片机通过并行数据总线进行通信。

1.3 其他电路

系统配备了2×4按键阵列,用于设置作息时间及当前时间等参数。光敏传感器电路采集教室内外的光照强度数据,且其光照强度的门限值可以通过可调电阻进行调整。指示灯电路则显示系统当前工作状态,例如灯光是否处于自动模式或强制模式。

2. 系统工作原理

该系统通过采集光照强度并结合学校作息时间,实现教室灯光的智能控制,达到节约能源的目的。系统具有自动控制模式和强制控制模式两种工作方式。

2.1 自动控制模式

当系统复位时,默认进入自动控制模式。在此模式下,如果教室内光线较暗,光敏传感器将信号传送至单片机,单片机根据预设条件判断是否开启灯光。同时,系统依据学校作息时间,确保灯光仅在需要时开启,非活动时间段自动关闭,显著节省电能。如果外部光线强烈但因特殊需求如窗帘关闭导致室内光线不足,系统会启动第二个光敏传感器进行补充判断。

2.2 强制模式

在强制模式下,用户可以通过按下强制按钮手动控制灯光的开关,并可以随时切换回自动控制模式。此模式主要用于特殊场合,如需要在教室中使用投影仪时,为了获得最佳观看效果,用户可以手动关闭灯光。

3. 软件设计

系统的核心控制由STC12C4052AD单片机完成,其主要任务是接收、处理并输出相关数据,确保系统的正常运行。软件设计采用模块化方法,系统主要包括初始化模块、键盘输入模块、数据处理中断模块、数据显示模块以及定时控制模块。
初始化模块负责配置I/O端口、定时器和中断服务程序。键盘输入模块负责接收用户设定的时间、作息信息及查询请求。数据显示模块则用于实时显示系统的当前时间、设定时间、以及用户查询的数据。

4. 调试与总结

系统设计完成后,我们进行了全面的验证与调试,确保在不同光照条件下,系统能按照预定规则正确地控制灯光开关,且能根据学校作息时间自动调整。调试结果表明,系统运行稳定且效果良好。该系统不仅适用于教室灯光控制,也可以在会议室、办公室等场所进行适当调整后广泛应用,具有较强的可移植性和市场前景。

第一章 方案分析

1.1控制器简介

本设计的智能灯光控制系统能够高效地调节教室内的灯光。该系统的输入主要来源于两个因素:一个是检测人体是否存在的信号,另一个是教室内的环境光强度。当环境光强度足够时,灯光不会开启;如果光强度低于设定的阀值且检测到有人存在,灯光则会自动开启。通过实验证明,这种控制方案能够实现对教室灯光的智能调节。
通常,教室内的灯光控制器应安装在远离灯光直射的区域,确保其正常工作。而人体传感器的安装位置则应选择合适的角度,使得传感器的两个热释电元件与人体活动的方向垂直,这样可以更准确、更敏感地捕捉到人体存在信号。此外,为了提高可靠性,传感器应避免直接暴露在风口处,以免外界气流干扰其正常工作。

1.2方案分析

该控制器的设计主要依据自然光强度和人体存在信号来作为输入,能够灵活地支持自动与手动控制模式。当环境光充足时,灯光不受人体存在的影响,始终保持关闭状态;而在光线不足的情况下,如果有人的存在且经过设定的时间延迟,系统将自动开启灯光,直到人离开后,延时一段时间后才关闭。除了这些自动功能外,用户还可以设定作息时间,例如在深夜12点后,若教室仍有人,系统会停止自动控制,转而由手动开关来控制灯光,以应对特殊情况下自动控制可能带来的不便。
本研究的教室灯光控制器由硬件和软件两部分组成。硬件部分为系统的基础平台,支持软件运行所需的各项功能。软件则负责采集和分析硬件端口的信号,并进行处理,最终实现控制器设计的目标功能。

第二章 硬件设计

2.1硬件构成及简介

系统控制单元是以AT89S51单片机主控模块为核心,其它外围电路主要包括:环境光采集电路、时钟模块、热释红外传感器模块、看门狗模块、按键电路、EEPROM存储模块、超时报警模块、数码管显示模块,其结构框图如图2-1所示。

图2-1 系统控制结构框图

环境光检测模块通过光敏三极管来感知光强。当光线照射时,光敏电阻的阻值减小;随着光照减弱,阻值逐渐增大,从而将光信号转换为电信号,实现光强度的监测。人体存在检测模块采用HP-208,这是一款基于红外线技术的智能传感器,专门用于探测人体的存在。硬件时钟模块选用DS1302,这是一款低功耗、具备电池充电功能的实时时钟芯片,内建RAM寄存器,能够暂时存储数据。该芯片接口简洁、成本低廉,并且使用方便,因此被广泛应用。数据存储与故障保护功能由X5045芯片提供。X5045是一款具有512字节存储容量的串行EEPROM,同时具备看门狗和电源监控功能,确保系统的稳定运行。

2.2主要硬件电路

考虑到本系统安装时受环境影响因素比较多,且教室控制设备中的人体存在传感器、光敏三极管等经常会因环境情形变化而不稳定,所以在设计过程中,电子元器件的选用、线路布置和设备的安放要充分考虑到抗干扰问题。

2.2.1系统主控电路

该系统的核心控制模块选用了AT89S51主控芯片,这是一款低功耗、基于8位CMOS技术的处理器,配备了8K的在线可编程Flash存储器,支持多次编程,便于在线更新程序。芯片内集成了128字节RAM和4KB的EEPROM,充分利用片内资源,避免了额外扩展RAM的需要,从而简化了电路设计。该芯片的关键特性见下表2.1:
表2.1 AT89S51主要特征
在这里插入图片描述

AT89S51引脚 外围器件引脚 说明
P0. 0-P0. 7 ULN2803 数码管段码驱动接口
P2. 0-P2. 7 PNP-9012基极 数码管段码驱动接口
P1. 0 X5045SI X5045串行输入端
P1. 1 X5045SCK X5045串行时钟端
P1. 2 X5045CS X5045片选端
P1. 3 X504550 X5045串行输出端
P1. 4 工作状态指示灯
P1. 5 DS1302CLK DS1302时钟线
P1.6 DS1302I/O DS1302数据线
P1. 7 DS1302RST DS1302复位线
P3. 0- P3. 1 数据采集输入端
P3. 3 人体存在传感器输出信号端
P3. 4 超时报警信号输入端
P3. 7 光敏三极管输入信号端
40(Vcc)20(GND)脚间的电压应有5V 。18、19脚分别与20脚间有1.7―2.5V电压。9(RST)脚与GND间电压基本为0。31脚 (EA)与20引脚(GND)间电压为5V 。

2.2.2系统供电电路

如图2-3所示,系统采用+5V电源供电方案,供电过程从220V交流电开始,首先通过一个9V输出的变压器将交流电压降至9V。接着,经过二极管全波整流后,使用电解电容C1和C2进行滤波,得到平滑的电压。然后,利用正输出稳压器LM7805将电压稳压为+5V。为了优化瞬态响应并缓解负载突变,输出端配置了电容C3和C4,最终为控制系统中的单片机及其他外围电路提供稳定的+5V直流电源。
.

图2-3 系统供电电路

2.2.3采集电路

系统的主要输入参数包括教室内的环境光强度和人体是否存在。因此,环境光强度和人体存在是系统数据采集的关键。常用的环境光强度传感器包括光敏二极管和光敏三极管。考虑到抗干扰需求,本系统选择了灵敏度较高的光敏三极管。此外,人体存在传感器要求具备高灵敏度和较强的可靠性。
一、环境光强度采集电路
光电传感器将光能转换为电信号。所选的光敏三极管除了具备光敏二极管的基本功能,还具有对电信号的放大作用。在无光照情况下,三极管的穿透电流非常小,表现为暗电流。当有光照时,光敏三极管的基电流Ib增大,进而产生与光照强度成正比的光电流Ie,负载电阻上的电压随光强变化。光敏三极管具有高灵敏度、小体积、低电压工作、低电流消耗、均匀稳定的发光、快速响应和长寿命等优点。
环境光采集电路的工作原理如图2-4所示。当环境光强度高于某一阈值时,光敏三极管D6呈现低阻态(≤1KΩ),使得三极管Q12的基极电压升高,Q12饱和并导通,集电极输出低电平。若环境光强度低于阈值,光敏三极管D6呈现高阻态(≥100KΩ),Q12进入截止状态,集电极输出高电平。通过调节R26的阻值,可以使三极管Q12在合适的光照强度下导通。
在这里插入图片描述

图2-4环境光电路

二、人体存在信号采集电路

人体存在传感器采用HP-208-N-L模块,这是一种基于红外技术的自动控制传感器,输出为低电平信号。其高灵敏度和强可靠性使其广泛应用于各种自动感应电器设备中。该传感器的引脚定义如下:1号引脚为电源输入端(VCC),2号引脚为输出端(OUT),3号引脚为接地端(GND)。
HP-08-N-L的主要特点:

  • 全自动感应:当人体进入感应范围时,传感器输出低电平;当人体离开感应范围后,传感器会延时关闭低电平并输出待机时的高电平。
  • 两种触发模式
    1. 不可重复触发:即感应后输出低电平,延时时间结束后,自动切换为高电平。
    2. 可重复触发:当感应输出低电平后,如果在延时期间内仍然有活动,输出会持续为低电平,直到活动停止并经过延时时间,输出切换为高电平。每次活动会重新开始延时计时。
  • 感应封锁时间:在每次感应输出后,待延时结束后,可以设置一个封锁期,在此期间传感器不再接受任何新的感应信号。此功能可确保“感应输出”和“封锁时间”交替工作,减少负载切换时产生的干扰。此封锁时间可设定在几秒至几十秒之间
  • 低功耗设计:静态电流小于50微安,非常适合用于干电池供电的电器产品。
  • 输出信号:高电平信号输出,便于与各种电路对接。
    技术规格
  • 工作电压:DC4.5V至DC24V
  • 输出低电平:0V,待机时输出高电平为3.3V
  • 延时时间:从零点几秒到十几分钟
  • 封锁时间:从零点几秒到几十秒
  • 触发方式:不可重复(L),可重复(H)
  • 感应范围:最大7米,且感应角度小于140度
  • 工作温度范围:-20°C至+70°C
    2.2.4系统时钟电路
    考虑到教室灯光的使用特点,时间因素对系统的控制至关重要。因此,本研究在设计中加入了硬件时钟电路,以确保系统能够智能化地运作。
    为了在停电时为时钟电路提供电源,并且尽量减少对单片机资源的占用,本系统选择了实时时钟芯片DS1302。此芯片能够作为数据的临时存储寄存器,并且具有充电功能,以为掉电时提供保护电源。该芯片支持串行通信,可选择开启或关闭充电功能,适用于系统的需求。它能够准确计时年、月、日、时、分、秒,并具备闰年补偿功能,工作电压范围为2.5V至5.5V。DS1302通过三根引脚与单片机通信,具备体积小、使用简便、时钟精度高等优点,完全符合系统设计要求,其引脚配置如图2-6所示。

图2-6 DS1302的引脚图
该芯片的各引脚功能如下:

  • Vcc1:主电源输入;
  • Vcc2:备份电源输入。当Vcc2的电压比Vcc1高0.2V时,供电来源为Vcc2;当Vcc2的电压低于Vcc1时,则由Vcc1供电。
  • SCLK:串行时钟输入,用于控制数据的传输。
  • I/O:在三线模式下为双向数据传输线。
  • CE:输入控制信号,在读取或写入数据时必须为高电平。
    DS1302与单片机的连接电路如图2-7所示。在该连接中,Vcc2连接到外部3.6V充电型锂电池,作为备用电源;Vcc1则连接到主电源模块,提供稳定的+5V电压。在正常工作时,Vcc1电压大于Vcc2,因此由Vcc1供电;而当主电源断开时,系统将切换到由Vcc2供电,确保时钟功能持续运行。外部晶振X1和X2工作频率为32.768kHz,用于提供时钟源信号。RST引脚用于复位或片选,通过将其输入高电平来启动数据传输,它与单片机的复位信号相连。SCLK时钟信号接单片机的P1.5引脚,以便控制时钟操作。
    2.2.5系统看门狗电路
    在单片机工作过程中,不可避免的会由于外界的干扰而产生程序跑飞、死机甚至造成整机瘫痪等情况。为了能够及时恢复单片机的工作,只能采用重新复位的方法,因此还应该在硬件设计中使用看门狗电路,这样在单片机发生死机的情况下,看门狗将产生一个复位信号给单片机,使单片机复位,重新执行程序。由于系统同时需要看门狗和EEPROM,所以本设计中使用芯片X5045。
    X5045具有三种常用的功能:看门狗定时器、复位控制和EEPROM。这三种功能是集成在单个8引脚封装的CMOS器件内,将电源监控和看门狗功能以及高速三线非易失性存储器组合在一起,从而在很大程度上降低了系统成本并减少了对电路板空间的要求,X5045的引脚排列如图2-11。

图2-11 X5045的引脚图
看门狗定时器的预置时间是通过X5045的状态寄存器的相应位来设定的。如表2.2状态寄存器所示,X5045状态寄存器共有6位。其中WD1.WD0和看门狗电路有关,其余位和EEPROM的工作设置有关。
表2.2 状态寄存器

WD1=0,WD0=0,预置时间为1.4S,
WD1=0,WD0=1,预置时间为0.6S,
WD1=1,WD0=0,预置时间为0.2S,
WD1=1,WD0=1,禁止看门狗工作。
看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。
系统看门狗电路由系统数据存储及故障保护部分组成,X5045是一种串行通信512字节的EEPROM,同时兼有看门狗和电源监控功能,X5045有三种可编程看门狗周期,上电和VCC低于检测门限时,输出复位信号,X5045输出复位高电平有效,为了复位更加可靠,其复位输出端外接一个10K的上拉电阻,并与AT89S51的复位端相连。看门狗能在电源上电、掉电期间产生一个复位信号。该芯片还带有一个1.4秒的看门狗定时器可用来监控单片机的工作。如果在1.4秒内未检测到其工作,出现故障,内部定时器将使看门狗WD1处于低电平状态,为系统提供保护,避免死机、程序跑飞或进入死循环等意外的发生。

第三章 控制模块

3.1主程序模块

监控程序分为多个模块,其中主要包括监控主程序和命令处理子程序。监控主程序的核心任务是调用各个子程序。一个主程序通常会调用多个子程序,尤其对于资源有限的51系列单片机,主程序常常被设计为一个无限循环,重复调用这些子程序。子程序可以分为中断子程序和功能子程序,它们之间可互相嵌套,甚至中断子程序也可以调用功能子程序。在应用程序设计时,通常将各个功能模块作为子程序实现,主程序负责依次调用这些子程序。
监控主程序是控制系统的核心,所有外围模块的操作通常都需要通过主程序进行管理。监控主程序的主要任务是接收并解析来自键盘的指令,随后将控制权转移至相应的子程序入口,发挥引导作用。
该系统的监控主程序模块包括以下几个部分:外围设备的初始化与自检、看门狗的启动、多任务操作模块的调用(包括信号采集、时钟管理、按键处理和显示驱动模块),以及实时中断处理等。除去初始化和自检的部分,监控主程序一般会进入一个无限循环,在这个循环中,系统的各项功能会根据需要有选择地反复执行。

3.1.1自检初始化

初始化与自检过程是确保控制系统正常运行的关键步骤。系统通电复位后,首先进入初始化程序,进行各项硬件检测和参数设置。初始化过程主要针对控制寄存器(如中断控制器)、数据区以及外部设备(如时钟芯片DS1302等)进行参数的定义和配置。系统中的自检初始化主要包括对接口芯片的检测、内部参数设定和寄存器复位。
接口芯片的检测涉及确认每个芯片是否已经准备就绪,并检查是否存在硬件故障。例如,检查LED显示是否正常,是否正确显示系统开机界面;检查时钟芯片DS1302是否处于初次使用时的启动状态,或在备用电源供电下是否处于振荡保持状态,以验证时间控制表的有效性;检查人体感应传感器是否正常输出信号;检查光信号采集电路是否有效工作等。如果时钟芯片处于初始化状态,则需要对其进行配置并启动实时时钟。
系统内部寄存器的初始化主要是为数据缓冲区内的用户定义数据进行赋值,并复位一些特殊功能寄存器(如SFR)。在单片机复位时,程序计数器PC会指向程序存储器的入口地址000H,程序状态字寄存器PSW清零,内部存储器工作寄存器选择默认,用户标志位F0为0,堆栈指针SP为07H,其他寄存器如定时器、中断允许寄存器IE和累加器ACC均为00H。

3.1.2定时中断

定时中断通过单片机内部定时器的计数机制触发,当达到预定时间或计数溢出时,产生中断请求。定时器计数器可以基于内部时钟或外部输入脉冲(如T0、T1引脚接收的信号)进行计数。当计数器溢出时,会触发中断请求,并设置定时器溢出标志位,向CPU发起中断信号。
该类型的中断为周期性中断,固定时间间隔内触发一次。本系统中的定时中断用于实现多任务操作,系统响应中断后,无需进行复杂的现场保护,直接进行任务时间划分,确保相关任务进入就绪状态,从而启动相应的操作任务。定时中断处理程序的基本框图展示了这一过程:
在这里插入图片描述

图3-1 定时中断处理程序框图
本系统还采用了外部中断,此外部中断主要用来判断是否有外来信号输入,若有,就采集下来并加以处理;若无,则返回到主循环。

3.2数据采集模块

本控制系统中的数据采集对象为环境光信号及人体存在信号,在程序设计中对这两个数据的采集放置在多任务模块中实施定时采集。

3.2.1传感器的优缺点

人体存在传感器具有本身不发出任何类型的辐射,器件功耗很小,隐蔽性好,价格低廉的优点。而缺点是容易受各种热源、光源干扰。由于红外穿透力差,因此人体的红外辐射容易被遮挡,不易被探头接收;易受射频辐射的干扰;当环境温度和人体温度接近时,探测和灵敏度就会明显下降,甚至造成短时失灵。试验也证明了这点,如果人体存在却一定时间内没有活动,人体传感器则认为没有人体存在。为避免这种现象的出现,本系统软件程序中设计为有人体存在状态后间隔1分钟或更长的时间来对人体存在参数信号的采集。

3.2.2数据采集软件的实现

本系统考虑到环境光足够亮时,无论是否有人体存在都不开灯;而环境光不够亮时,有人体存在才开灯,无人体存在则不开灯。本系统逻辑定义为:环境光亮时为逻辑“0"(符合光采集电路输出信号状态),暗时为“1",人体存在为“1",人体不存在为“0",开灯为“1”,关灯为“0",那么环境光与人体存在可以用以下的逻辑关系表来表示,如表所示3.1:
表3.1 环境光与人体存在逻辑关系
环境光参数 人体存在参数 教室灯状态
0 0 0
1 0 0
0 1 0
1 1 1
上表数据表明可将环境光参数与人体存在参数进行与操作,又由于继电器是低电平驱动,所以要将采集处理后的信号进行非操作,才可以驱动继电器工作,即可得到教室灯的状态。

3.3时钟模块

在系统启动自检初始化时,首先会对时钟芯片DS1302的运行状态进行判断,当检测到DS1302处于启动状态时才对其进行初始化,启动时钟。实时时钟芯片DS1302的初始化及其读写程序设计的关键是要遵循其时序要求。

3.3.1数据输入输出

在对DS1302进行各种操作之前,必须先对其初始化,即需要把复位输入RST端置为高电平,如果RST输入为低电平,那么所有的数据传送中止,且I/O引脚变为高阻抗状态。在数据读/写完后,RST端应置成低电平,以防止外部干扰对DS1302内部时钟的影响。
同时,为了防止复位输入端受到外部的干扰,要求上电时,在主电源引脚Vcc2≥2.5V之前,RST必须为逻辑0。无论是读操作还是写操作,都必须在开头的8个时钟周期内把提供地址和命令信息的8位数据装入到DS1302的移位寄存器中。地址/命令信息用于指明40个寄存器中的哪个进行何种操作。数据在SCLK的上升沿串行输入,在开始的8个时钟周期把命令字装入移位寄存器之后,若跟随的是写命令字节,则在下8个SCLK周期的上升沿输入数据字节,若跟随在读命令字节的8个SCLK周期之后,在下8个SCLK周期的下降沿输出数据字节。程序流程如图3-3所示:

在这里插入图片描述

图3-3数据输入输出流程图

3.3.2时钟程序设计

3.4显示驱动模块

系统运行过程中的数据显示是人机交互对话的一个重要通道。通过的显示系统数据,我们才可以更好的了解系统运行的状态,从而方便对整个系统进行必要的操作。本系统中采用共阳极的数码管,其中采用ULN2803作为驱动数码管的段选的芯片,采用简单又便宜的9012三极管来驱动数码管的位选,节约成本,程序编写简单。
考虑到数码管驱动信号要求的电流较大,采用功率驱动器件ULN2803芯片。此芯片是八组NPN型达林顿功放三极管集成芯片,典型的输入电压是5V,集电极输出功率可达50V×0.6A。因此采用ULN2803共阳极数码管的段信号驱动器。而共阳极数码管的位信号驱动则采用8个晶体管9012来实现。又由于ULN2803为低电平驱动,所以数据送到单片机端口前,应在程序中先将数据取反。然后将数据送到ULN2803输入端相连接单片机的P0端口即可。
每次先送一位要显示的数据字节,然后再送该位数码管的地址字节,直到8位显示完全。
本系统在运行过程中需要显示查看的数据有时钟及显示数值。正常工作中8位显示器显示实时时钟,显示小时、分钟、秒,其中有两位用来显示“—”,用以分隔显示小时、分钟和秒,这样显示更加清晰。

第四章 调试运行

4.1调试方法及步骤

单片机系统的调试应包括硬件及软件两部分,主要是通过调试发现硬件及软件中存在的问题,查看其运行结果是否符合设计要求。
在对系统进行实际调试时,首先应对硬件进行静态调试,同时对系统软件进行初步调试,此后再对软件和硬件进行动态调试,最后才能使系统进入正常工作.
(1)静态调试:静态调试主要是排除明显的硬件故障。在将芯片、传感器等元件连接到电路板上时,要保证各处电源极性、电压正确,以防止因电源极性接反或电压过高损坏芯片或传感器。此外,插入芯片必须在断电的情况下进行,特别注意芯片的方向不要插反。
(2)软件调试:在软件调试时采用在计算机上利用模拟软件实现对单片机的硬件模拟、指令模拟及运行状态模拟,从而完成应用软件开发的全过程。调试过程中的运行状态、各寄存器状态、端口状态等都可以在指定的窗口区域显示出来,通过这些显示结果随时跟踪程序运行状态,以确定程序运行无错误。
(3)动态调试:控制系统的软件和硬件是密切相关的,由于软件模拟开发系统不能对硬件部分进行诊断,同时也不能实时在线仿真,所以用户程序还需跟硬件连接起来进行联调,同时对软件和硬件进行检查和诊断。整个单片机系统进行在线调试时,需借助仿真开发工具来对用户软件及硬件电路进行诊断、调试。
在应用系统各模块电路调试成功后,将程序加载到在线仿真器上,这时就能单步或连续地执行目标程序,同时也可以根据需要分段设置断点执行程序。而对于一些与硬件相关的用户程序,如接口驱动程序等,则需要配合硬件,进行在线调试,如果有逻辑错误,也要及时纠正修改。
程序调试完毕后,利用编程器将程序固化到单片机中,使整个系统运行起来。
各模块电路调试流程图如下示:

图4-1电源调试 图4-2单片机最小系统调试

图4-3按键电路调试 图4-4显示电路调试

图4-5采集电路调试

4.2问题分析

在本系统的调试过程中遇到的主要问题的分析与解决方案。
1.电源供电电路中集成稳压器温度过高。
分析解决:稳压器温度过高的原因之一是:变压器整流滤波后加到集成稳压器上的电压较高,使7805上的压降过大。此问题可通过选用输出电压低些的变压器,并在集成稳压器前串入两只二极管降压,同时增大散热片来解决。
2.人体存在传感器有人存在时输出高电平的电压偏低
分析解决:人体存在传感器输出高电平的电压偏低,单片机会产生误判,或采集不到正确的信号,于是在人体存在传感器的输出端加一个100KΩ的上拉电阻。
3.人存在的教室中,若人体超过十秒没有活动,人体传感器是不会有信号输出的,那么如何判定教室此时有人的问题。
分析解决 :此问题在系统软件设计时,可将采集有人体信号存在的状态适当延长保持二至五分钟,并加以后续处理。
4.单片机控制信号输出后,继电器没按预定设计产生动作。
分析解决:单片机输出控制信号,在控制继电器时,必须加三极管来驱动,否则信号电流过小将不能使继电器产生吸合动作,而且必须采用三极管的集电极来驱动继电器,最后再带动负载。继电器驱动电路中还需注意的是要与继电器线圈并联一个续流二极管,增加对驱动三极管的保护。
5.每次开机插上电源后,硬件时钟显示的时间都从所设初始值开始计时。
分析解决:硬件时钟显示的时间不正常。
解决办法:一方面是充电电池没有充电功能;另一方面是应对硬件时钟进行自检。

第五章 总结与展望

5.1总结

该灯光控制系统的核心为AT89S51单片机,通过驱动相关电路,完成对教室灯光的自动控制。系统使用一个二极管指示工作状态,实现自动开关灯的功能。硬件部分采用集成电路(如ULN2803、DS1302、X5045等),不仅简化了电路设计,还节省了单片机的I/O口资源,为后期扩展提供了可能。实验表明,硬件和软件设计具备良好的稳定性,同时提高了电能的利用效率。
在设计过程中,硬件元件选择了性价比高的组件,以降低成本,而软件设计则采用多任务方式,确保信号采集与处理的有效性,最终实现对灯光的控制。
此系统能够与现有的教室灯光设施兼容,且无需对原有电路进行大规模修改,从而降低了实现智能控制的成本。

5.2展望

由于教室的面积大小和灯光数量差异,系统中智能控制设备的配置也会有所不同,特别是人体传感器的数量,受教室面积的影响尤为显著。如果教室较大,人体传感器的辐射范围可能无法覆盖全部区域,导致信号采集不准确,从而影响设备的正常运行。为了提升系统的可靠性,建议使用多个传感器进行覆盖。
人体传感器通常只能在人体活动时采集信号,如果人处于静止状态,比如坐着阅读时,传感器则无法检测到信号。因此,设计时最好让人体传感器在运行过程中具有摆动功能,以增加其灵敏度。
在本系统中,人体传感器与环境光传感器紧密配合,相互关联。为了简化电路与软件程序,最好将两者集成在一个电路中。初步测试显示,系统具有良好的适用性,可以广泛应用于教室、办公室和楼道等场所。

致 谢

在这篇论文即将完成之际,我首先想向我的导师谭伟东老师表达最真挚的感激与崇高的敬意!在整个论文设计过程中,得到了谭老师的悉心指导和无微不至的关怀,使我能够顺利完成论文。谭老师的广博知识、严谨的学术态度、务实的工作作风以及敏锐的思维给我留下了深刻的印象,至今难以忘怀。在此,我再次向他表示衷心的感谢,感谢他为我创造的浓厚学术氛围以及在学习和生活中给予的无私帮助!
回首在学校的两年多时光,面对今天的成果,我深感欣慰与感激。由此,我要感谢所有曾经热心帮助过我的老师和同学们!
特别感谢我的师兄和师姐们在学习和生活中给予的无私帮助与支持!同时,也要感谢我的室友在我成长过程中给予的关心与支持!
在即将结束学业之际,我要由衷地感谢我的家人一直以来的全力支持!
最后,衷心感谢各位专家教授在百忙之中评阅我的论文并参与答辩!

参考文献

1.张毅刚.彭喜源,谭晓钧,曲春波.MCS-51单片机应用设计,哈尔滨工业大学出版社
2.周明珠.王炜,王福源,无触点开关在控制中的应用,现代电子技术.2002
3.俞海珍.李宪章,冯浩,热释电红外传感器及其应用,电子照明技术2006.7
4.赵海兰.,赵样.实时时钟电路DS1302的原理及应用.电子元器件应用,2005
5.胡又农等,可编程看门狗监控EEPROM-X5045及其在8051系统中的应用,电子技术应用.1998, No.7,18-19
6.瞿贵荣.热释电红外传感器的结构原理及特性,家庭电子爱好者,
7.樊贵卿,李庆武,靳建华,串行实时时钟芯片DS 1302程序设计中的问题与对策,电子技术应用2005.2
8.冀兰风.芯片X5045在智能化互感器检验仪中的应用,电子技术,1998
9.刘大茂.严飞.单片机应用系统监控主程序的设计方法.福州大学学报,1998

相关文章:

基于AT89C51单片机的教室智能照明控制系统

点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/90419908?spm1001.2014.3001.5501 C16 部分参考设计如下: 摘 要 本项目的智能教室灯光控制系统通过合理的软硬件设计,有效地提升了教室…...

JavaSE学习笔记25-反射(reflection)

反射 在Java中,反射(Reflection) 是一种强大的机制,允许程序在运行时检查和操作类、方法、字段等信息。通过反射,可以动态地创建对象、调用方法、访问字段,甚至修改私有成员。反射的核心类是 java.lang.re…...

ctf网络安全题库 ctf网络安全大赛答案

此题解仅为部分题解,包括: 【RE】:①Reverse_Checkin ②SimplePE ③EzGame 【Web】①f12 ②ezrunner 【Crypto】①MD5 ②password ③看我回旋踢 ④摩丝 【Misc】①爆爆爆爆 ②凯撒大帝的三个秘密 ③你才是职业选手 一、 Re ① Reverse Chec…...

旋转位置编码(ROPE)详解:从Transformer到现代前沿

旋转位置编码(ROPE)详解:从Transformer到现代前沿 标签:NLP, Transformer, 位置编码, ROPE, 深度学习, 机器学习 摘要:本文详细介绍了旋转位置编码(ROPE)在Transformer模型中的应用&#xff0…...

ROS2机器人开发--服务通信与参数通信

服务通信与参数通信 在 ROS 2 中,服务(Services)通信和参数(Parameters)通信是两种重要的通信机制。服务是基于请求和响应的双向通信机制。参数用于管理节点的设置,并且参数通信是基于服务通信实现的。 1 …...

安全运维,等保测试常见解决问题。

1. 未配置口令复杂度策略。 # 配置密码安全策略 # vi /etc/pam.d/system-auth # local_users_only 只允许本机用户。 # retry 3 最多重复尝试3次。 # minlen12 最小长度为12个字符。 # dcredit-1 至少需要1个数字字符。 # ucredit-1 至少需要1个大…...

【数据标准】数据标准化是数据治理的基础

导读:数据标准化是数据治理的基石,它通过统一数据格式、编码、命名与语义等,全方位提升数据质量,确保准确性、完整性与一致性,从源头上杜绝错误与冲突。这不仅打破部门及系统间的数据壁垒,极大促进数据共享…...

Java 18~20 新特性

文章目录 一、Java 18 新特性1.1、UTF-8 作为默认字符集(JEP 400)1.2、简易 Web 服务器(JEP 408)1.3、代码片段标签 snippet(JEP 413)1.4、使用方法句柄重新实现反射核心(JEP 416)1.…...

程序员学商务英语之At the Hotel

Dialogue-3 Room service-Cleaning the Room客房服务-打扫房间 A: Who will do the dishes after dinner tonight? 今晚饭后谁来洗碗? B: It’s your turn. 轮到你了。 Go do the room right now. clean the room去打扫房间。Doing the laundry is the last thi…...

探秘路由表:网络世界的导航地图

一、引言 在当今数字化时代,网络已经成为我们生活中不可或缺的一部分。无论是浏览网页、观看视频,还是进行在线办公、游戏娱乐,我们都在与网络进行着频繁的交互。而在这背后,网络中的数据传输就如同现实生活中的快递配送&#xf…...

UniApp SelectorQuery 讲解

一、SelectorQuery简介 在UniApp中,SelectorQuery是一个非常强大的工具,它允许开发者查询节点信息。通过这个API,我们可以获取到页面元素的尺寸、位置、滚动条位置等信息。这在处理动态布局、动画效果或是用户交互时尤为重要。 二、基本使用…...

三数之和:经典问题的多种优化策略

三数之和:经典问题的多种优化策略 大家好,我是Echo_Wish。今天我们来聊一个经典的算法问题——三数之和(3Sum)。它是许多面试和算法竞赛中常见的问题之一,也常常考察我们对算法优化的理解和技巧。我们不仅要解决问题&…...

Flash-00

下载网站:Flash CC 2015中文版下载-Adobe Flash CC 2015(动画制作软件)免费下载-当快软件园 1-什么是Flash? Flash是一款多媒体设计软件,二维交互式动画设计工具,常用于矢量动画制作 2-Flash的应用领域? 动画制作&a…...

FTP 实验(ENSP模拟器实现)

FTP 概述 FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行文件传输的标准协议。它允许用户在两台计算机之间上传和下载文件。 1、FTP采用客户端-服务器模型,客户端通过FTP客户端软件,连接到FTP服务…...

DeepSeek在初创企业、教育和数字营销领域应用思考

如今,像 DeepSeek 这样的人工智能工具正在改变企业的运营方式,优化流程并显著提高生产力。通过重复任务的自动化、大量数据的分析以及内容创建效率的提高,组织正在寻找新的竞争和卓越方式。本文介绍了 DeepSeek 如何用于提高三个关键领域的生…...

ubuntu新系统使用指南

1. 更新源 2. 配置rime 输入法 sudo apt install ibus-rimeibus-setup #打开配置界面添加雾凇拼音 cd ~/Documents/Tool/input_source/plumgit clone --depth 1 https://github.com/rime/plum plum #没有梯子就劝退cd plum/bash rime-install iDvel/rime-ice:others/recipe…...

HaProxy配置详解

一、haproxy基础配置 官方文档:HAProxy version 2.2.22 - Configuration Manual HAProxy 的配置文件haproxy.cfg由两大部分组成,分别是global和proxies部分。 global:全局配置段 进程及安全配置相关的参数性能调整相关参数Debug参数 pro…...

PCL 基于FPFH特征的SAC-IA算法

文章目录 一、简介二、PCL中的相关类型二、实现代码三、实现效果参考资料一、简介 该算法的大致过程如下所示: 通过这种随机采样并使用FPFH描述子进行匹配的方式,可以快速找到一个较好的转换矩阵,从而实现两个物体的初始配准。 二、PCL中的相关类型 类型为:pcl::SampleCons…...

Git操作整体流程

文章目录 1.Git创建个人仓库2、Git全局配置3、Git本地管理4. Git本地管理常用命令汇总5、使用Git命令将项目提交到远程码云管理6.使用IDEA进行管理7、Idea里面的终端8、关于提交总结 1.Git创建个人仓库 打开https://gitee.com/,登录个人账号,右上角加号…...

独立开发者之PLG 和 SLG 是什么

什么是 PLG 和 SLG PLG(产品驱动增长)是一种策略,通过产品本身吸引用户并推动客户获取、保留和扩展。例如,提供免费试用或免费模式,让用户直接体验产品价值,如 Slack 和 Dropbox 那样。SLG(销售…...

Python 基本语法的详细解释

目录 (1)注释 (2)缩进 (3)变量和数据类型 变量定义 数据类型 (4)输入和输出 输出:print() 函数 输入:input() 函数 (1)注释 注…...

腾讯SQL面试题变体实现:最长连续天数与允许1天中断的进阶解法

腾讯SQL面试题变体实现:最长连续天数与允许1天中断的进阶解法 作者:某七年数据开发工程师 | 2025年02月23日 关键词:滑动窗口、容错机制、连续区间优化 一、变体题型需求分析 在原题如何找出连续5天涨幅超过5%的股票基础上,需实现两个扩展场景: 最长连续天数:输出每只股…...

KubeKey一键安装部署k8s集群和KubeSphere详细教程

目录 一、KubeKey简介 二、k8s集群KubeSphere安装 集群规划 硬件要求 Kubernetes支持版本 操作系统要求 SSH免密登录 配置集群时钟 所有节点安装依赖 安装docker DNS要求 存储要求 下载 KubeKey 验证KubeKey 配置集群文件 安装集群 验证命令 登录页面 一、Ku…...

w803|联盛德|WM IoT SDK2.X测试|pinout|(2):w803开发板简介

概述 W803-Pico是一款基于联盛德W803芯片为主控的开发板,支持IEEE802.11 b/g/n Wi-Fi,以及BT/BLE4.2协议蓝牙。芯片内置高性能32位处理器,主频高达240MHz。内置2MB Flash以及288KB RAM。硬件采用DIP封装,PCB板载天线,…...

BGP分解实验·19——BGP选路原则之起源

当用不同的方式为BGP注入路由时,起源代码将标识路由的来源。 (在BGP表中,Network为“i”,重分布是“?”) 实验拓扑如下: R2上将来自IGP的路由10.3.3.3/32用network指令注入BGP;在R4上将来自I…...

使用ESP-IDF来驱动INMP441全向麦克风

之前的文章我们讲过了I2S。 I2S是什么通信协议?它如何传输音频数据?它和I2C是什么关系?_i2c接口和i2s-CSDN博客文章浏览阅读836次,点赞12次,收藏14次。这个可以参考ADC来理解,我们的ADC也是有左对齐和右对…...

C/C++跳动的爱心

系列文章 序号直达链接1C/C李峋同款跳动的爱心2C/C跳动的爱心3C/C经典爱心4C/C满屏飘字5C/C大雪纷飞6C/C炫酷烟花7C/C黑客帝国同款字母雨8C/C樱花树9C/C奥特曼10C/C精美圣诞树11C/C俄罗斯方块小游戏12C/C贪吃蛇小游戏13C/C孤单又灿烂的神14C/C闪烁的爱心15C/C哆啦A梦16C/C简单…...

blender笔记2

一、物体贴地 物体->变换->对齐物体 ->对齐弹窗(对齐模式:反方,相对于:场景原点,对齐:z)。 之后可以设置原点->原点--3d游标 二、面上有阴影 在编辑模式下操作过后,物体面有阴影。 数据-&g…...

关于在mac中配置Java系统环境变量

引言 在 macOS 上开发 Java 或 Flutter 应用时,正确配置环境变量是至关重要的。环境变量不仅能让系统找到开发工具的位置,还能简化命令行操作。本文将手把手教你从零开始安装 Java SDK,并详细配置环境变量,涵盖常见问题解决和优化…...

透彻理解:方差、协方差、相关系数、协方差矩阵及其应用

最近看了几篇跨领域特征对齐方面的经典文献,学者们搞了很多花样,如有的提出一阶统计特征对齐,有的提出二阶统计特征对齐,有的学者提出高阶统计特征对齐。 通俗而言,就是在统计特征层面对跨域特征进行对齐,…...

【SPIE出版,见刊快速,EI检索稳定,浙江水利水电学院主办】2025年物理学与量子计算国际学术会议(ICPQC 2025)

2025年物理学与量子计算国际学术会议(ICPQC 2025)将于2025年4月18-20日在中国杭州举行。本次会议旨在汇聚全球的研究人员、学者和业界专家,共同探讨物理学与量子计算领域的最新进展与前沿挑战。随着量子技术的快速发展,其在信息处…...

jmeter后端监视器的妙用和实现方法

JMeter 的后端监视器(Backend Listener)是一个强大的工具,可用于收集、存储和分析测试过程中的性能指标。它允许将测试数据发送到外部系统(如 InfluxDB、Graphite 等),并借助这些系统的可视化工具&#xff…...

Docker 的安全配置与优化(二)

Docker 安全优化策略 (一)多阶段构建优化镜像大小 多阶段构建是 Docker 17.05 版本引入的强大功能,它允许在一个 Dockerfile 中定义多个构建阶段,每个阶段都可以使用不同的基础镜像和依赖项,最终只将必要的文件和依赖…...

宝塔扩容——阿里云如何操作

一、创建快照 磁盘快照,将数据备份,防止丢失。 1.登录“阿里云”账号 2.点击“控制台”——“云服务器 ECS” 3.点击“基本信息”下,右下角“系统盘” 4.点击“创建快照” 二、磁盘扩容 1.点击“云盘扩容” 2. 选择自己要扩容的大小 …...

vscode settings(一):全局| 用户设置常用的设置项

参考资料 Visual Studio Code权威指南 by 韩骏 一. 全局设置与用户设置 1.1 Vscode支持两种不同范围的设置 用户设置(User Settings):这是一个全局范围的设置,会应用到所有的Visual Studio Code实例中。工作区设置(Workspace Settings):设…...

DeepSeek R1本地+私有云版医疗AI部署开发成功案例技术剖析

1. 引言 1.1 研究背景与意义 随着科技的飞速发展,人工智能(AI)在医疗领域的应用正逐渐成为推动医疗行业变革的重要力量。近年来,医疗 AI 取得了显著的进展,从疾病诊断、药物研发到医疗管理等各个环节,AI 技术都展现出了巨大的潜力。它能够处理和分析海量的医疗数据,为…...

CMOS图像传感器——偏振光图像传感器技术

最近,在索尼官网看到了其提到的偏光图像传感器技术Polarsens,感到好奇,查阅了相关资料,总结如下。。。。 一、偏振光 偏振实际上是光的一种基本属性,表述光电场振动的方向。振动方向和光波前进的方向构成的平面叫振动面。大多数的光源,比如太阳,发出非偏振光,这里我们…...

ROS2 中 TF 变换发布与订阅:实现 base_link 和 test_link 实时可视化显示

视频讲解 ROS2 中 TF 变换发布与订阅:实现 base 安装环境依赖 sudo apt-get install ros-humble-tf2-ros ros-humble-tf2-geometry-msgs ros-humble-tf-transformations 创建一个包名为tf_test_pkg的包 ros2 pkg create --build-type ament_python tf_test_pkg -…...

SQLMesh 系列教程9- 宏变量及内置宏变量

SQLMesh 的宏变量是一个强大的工具,能够显著提高 SQL 模型的动态化能力和可维护性。通过合理使用宏变量,可以实现动态时间范围、多环境配置、参数化查询等功能,从而简化数据模型的开发和维护流程。随着数据团队的规模扩大和业务复杂度的增加&…...

逻辑函数的神经网络实现

1.单层感知器实现基本逻辑函数 先给大家抛出一道例题 (一)种类 a.OR函数 目标:当至少一个输入为1时,输出1;否则输出0。 权重设置: 输入权重:所有 wi1(i1,2,...,m)。…...

链表-基础训练(二)链表 day14

两两交换链表中的节点 题目示意: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 原先我的思路是图像上的思路,但是我感觉还是很复杂…...

使用大语言模型对接OA系统,实现会议室预定功能

随着人工智能技术的不断进步,越来越多的企业开始借助 AI 助手来提高工作效率,尤其是在日常事务的自动化处理中。比如,在许多公司里,会议室的预定是一个常见且频繁的需求,通常需要员工手动检查空闲时间并做出选择。而通…...

hugging face---transformers包

一、前言 不同于计算机视觉的百花齐放,不同网络适用不同情况,NLP则由Transformer一统天下。transformer是2017年提出的一种基于自注意力机制的神经网络架构,transformers库是hugging face社区创造的一个py库,通过该库可以实现统一…...

1. 自定义组件基础

相关资源: 📎day10 图片素材.zip 1. 自定义组件基础 概念:在ArkUI中由框架直接提供的称为系统组件 -> Column,Button等,由开发者定义的称为自定义组件 作用:自定义组件可以对 UI和业务逻辑进行封装&…...

连接Sql Server时报错无法通过使用安全套接字层加密与 SQL Server 建立安全连接

文章目录 一. 前言二. 解决方案 方案1方案2 三. 总结 一. 前言 在《数据库原理》这门课的实验上,需要使用SQL Server,然后使用jdbc连接sql server突然报错为:SQLServerException: “Encrypt”属性设置为“true”且 “trustServerCertific…...

python使用httpx_sse调用sse流式接口对响应格式为application/json的错误信息的处理

目录 问题描述方案 问题描述 调用sse流式接口使用httpx_sse的方式 import httpxfrom httpx_sse import connect_sse# 省略无关代码try:with httpx.Client() as client:with connect_sse(client, "GET", url, paramsparam) as event_source:clear_textbox(response_t…...

R 语言科研绘图 --- 散点图-汇总

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

【语音科学计算器】当前汇率

JSON_MARKER_HORN{“base”:“USD”,“rates”:{“EUR”:0.9758,“JPY”:157.68,“GBP”:0.8190,“CNY”:7.3327,“HKD”:7.7872,“AUD”:1.6260,“CAD”:1.4422,“CHF”:0.9157,“SGD”:1.3714,“KRW”:1473.05,“NZD”:1.7992,“THB”:34.54,“MYR”:4.4930,“PHP”:57.32,“…...

python 进程池的基本使用

Python 进程池:Pool任务调度实现 在现代计算机系统重,处理器核心数量的增加为并行计算提供了强大的硬件基础。Python的 multiprocessing 模块中的进程池(Pool)机制,为开发者提供了 一个高效且易用的并行处理框架。 通…...

初识XML

初识XML <?xml version"1.0" encoding"utf-8" ?> <!--根标签只能有一个--> <!--第一行永远都是 <?xml version"1.0" encoding"utf-8" ?> 前面不允许出现任何其他东西&#xff0c;空格换行等均不行 --> &…...