当前位置: 首页 > 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 部分参考设计如下: 摘 要 本项目的智能教室灯光控制系统通过合理的软硬件设计,有效地提升了教室…...

DIP的实际举例

SOLID原则。 依赖倒置原则(DIP)的核心是高层模块不应该依赖于低层模块,二者都应该依赖于抽象(接口或抽象类) 例如,随着业务的发展,订单总金额的计算规则可能需要根据不同的客户类型或促销活动…...

DeepSeek引领目标检测新趋势:如何通过知识蒸馏优化模型性能

目录 一、知识蒸馏是什么? 二、知识蒸馏在目标检测中的重要性 提升实时性 跨任务迁移学习 三、如何使用知识蒸馏优化目标检测? 训练教师模型 生成软标签 训练学生模型 调节温度参数 多教师蒸馏(可选) 四、案例分享 定…...

vue2.x 中父组件通过props向子组件传递数据详细解读

1. 父组件向子组件传递数据的步骤 在子组件中定义 props: 子组件通过 props 选项声明它期望接收的数据。props 可以是数组形式(简单声明)或对象形式(支持类型检查和默认值)。 在父组件中使用子组件时绑定 props&#x…...

安装PHPStudy 并搭建DVWA靶场

目录 一、PHPStudy 简介 二、DVWA 简介 三、安装 PHPStudy 四:安装 DVWA 一、PHPStudy 简介 phpstudy傻瓜式的一键启动,支持WAMP、WNMP、LAMP、LNMP,一键切换环境(nginxapahce),一键切换PHP版本(5.1-7…...

RoCBert:具有多模态对比预训练的健壮中文BERT

摘要 大规模预训练语言模型在自然语言处理(NLP)任务上取得了最新的最优结果(SOTA)。然而,这些模型容易受到对抗攻击的影响,尤其是对于表意文字语言(如中文)。 在本研究中&#xff0…...

【C】堆的应用1 -- 堆排序

之前学习了堆,堆的一棵以顺序结构存储的完全二叉树,堆本身又氛围大根堆和小根堆,假设以大根堆为例,由于堆顶部元素是一棵二叉树里面最大的元素,所以如果每次都取堆顶的元素,那么取出的元素就是一个降序排列…...

BGP配置华为——路径优选验证

实验拓扑 实验要求 实现通过修改AS-Path属性来影响路径选择实现通过修改Local_Preference属性来影响路径选择实现通过修改MED属性来影响路径选择实现通过修改preferred-value属性来影响路径选择 实验配置与效果 1.改名与IP配置 2.as300配置OSPF R3已经学到R2和R4的路由 3.…...

【原创】Windows11安装WSL“无法解析服务器的名称或地址”问题解决方法

原因分析 出现这个问题一开始以为WSL设置了某个服务器,但是通过运行 nslookup www.microsoft.com 出现下面的提示 PS C:\Windows\system32> nslookup www.microsoft.com 服务器: UnKnown Address: 2408:8000:XXXX:2b00:8:8:8:8非权威应答: 名称: e13678…...

【CS285】高斯策略对数概率公式的学习笔记

公式介绍 在【CS285】中提到了高斯策略对数概率公式的公式如下: log ⁡ π θ ( a t ∣ s t ) − 1 2 ∥ f ( s t ) − a t ∥ Σ 2 const \log \pi_{\theta}(\mathbf{a}_t | \mathbf{s}_t) -\frac{1}{2} \left\| f(\mathbf{s}_t) - \mathbf{a}_t \right\|_{\S…...

R与RStudio简介及安装

目录 一、R与RStudio关系 二、R简介 2.1. 发展历史 2.2. R语言特点 三、安装指南 3.1 R安装指南 3.2 R studio安装指南 一、R与RStudio关系 R是统计领域广泛使用的工具,属于GNU系统的一个自由、免费、源代码开放的软件,是 用于统计计算和统计绘图…...

TTL和CMOS的区别【数电速通】

CMOS电平:电压范围在3~15V;常见电压在12V。 TTL电平:电压范围在0~5V,常见都是5V CMOS的特点:电平由电源VDD​ 决定,而不是外部电源电平。 COMS电路的使用注意事项 我们在使用CMOS…...

Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机

Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机 前言一、使用命令行(nmcli 命令)配置网络,配置主机名第一步第二步修改主机名称 二、使用图形化界面(nmtui 命令)配…...

Threejs教程一【三要素】

场景 场景是一个容器,用于容纳所有的物体、光源、相机等元素。 // 创建场景 const scene new THREE.Scene(); //修改背景颜色,颜色支持十六进制、rgb、hsl、贴图等 scene.background new THREE.Color(0x000000);相机 相机决定了渲染的结果&#xff…...

3-1 WPS JS宏工作簿的新建与保存(批量新建工作簿)学习笔记

************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…...

明日方舟一键端+单机+联网+安装教程+客户端apk

为了学习和研究软件内含的设计思想和原理,本人花心血和汗水带来了搭建教程!!! 教程不适于服架设,严禁服架设!!!请牢记!!! 教程仅限学习使用&…...

Redis基操

redis 存储在内存中 key-value存储 主要存储热点数据(短时间大量的访客去访问) 启动命令 redis-server.exe redis.windows.conf 客户端链接redis服务器 redis-cli.exe redis-cli.exe -h localhost -p 6379 redis-cli.exe -h localhost -p 6379 -a 123456 退出 exit 命令不区分…...

学习笔记03——《深入理解Java虚拟机(第三版)》类加载机制知识总结与面试核心要点

《深入理解Java虚拟机(第三版)》类加载机制知识总结与面试核心要点 一、章节核心脉络 核心命题:JVM如何将.class文件加载到内存并转换为运行时数据结构? 核心流程:加载 → 验证 → 准备 → 解析 → 初始化 → 使用 →…...

w227springboot旅游管理系统设计与实现

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…...

漏洞文字版表述一句话版本(漏洞危害以及修复建议),通常用于漏洞通报中简洁干练【持续更新中】

漏洞文字版表述一句话版本(漏洞危害以及修复建议) SQL注入漏洞 危害描述: SQL注入漏洞允许攻击者通过构造恶意的SQL语句,绕过应用程序的安全检查,直接访问或操作数据库。这可能导致数据泄露、数据篡改、甚至数据库被删除等严重后果&#xf…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

P10909 [蓝桥杯 2024 国 B] 立定跳远

# P10909 [蓝桥杯 2024 国 B] 立定跳远 ## 题目描述 在运动会上&#xff0c;小明从数轴的原点开始向正方向立定跳远。项目设置了 $n$ 个检查点 $a_1, a_2, \cdots , a_n$ 且 $a_i \ge a_{i−1} > 0$。小明必须先后跳跃到每个检查点上且只能跳跃到检查点上。同时&#xff0…...