摘要
随着时代的飞逝,人们对更加先进、更加环保、更加节约资源、更加可持续地满足自身需要,高科技的运用正变成当今时代发展的动力,其对电子行业有着重要影响。近年来,智能化技术被广泛运用到各种家庭设备上,如智能洗衣机、智能电饭锅、智慧电磁炉,它们均采用了机器人当作核心控制部件,从而使得它们更加安全、可靠、节约。采用单片机技术的智能家居产品,与传统的家居产品相比,拥有更加先进的技术,操作简易,安全可靠,而且还具备极大的节约能源的优势,从而大大改善了家居产品的整体品质。
通过采用热释电红外感应器和BISS0001信息处理电路,智慧灯可以实现对体内红外信号的快速感知,并且可以通过单片机实现精确控制,即使没有外界干扰,它仍然可以实现自主关闭,从而有效地减少能耗。
关键词: 单片机、灯光控制、BISS0001
目录
第1章 设计介绍
1.1 设计目标
1.2 设计功能
第2章 系统方案设计
第3章 硬件系统设计
3.1 单片机模块
3.2 时钟模块电路设计
3.3复位电路模块设计
3.4 红外热释电模块
3.5 LM393电压比较器
第4章 系统组成及电路设计
4.1 最小系统电路如下:
4.2 红外热释电传感器电路
4.3继电器电路
第5章 软件程序设计
5.1 主程序流程图
第6章 系统调试
6.1 硬件调试
6.2 系统软件测试
项目总结
参考文献
致谢
附录
第1章 设计介绍
现在,由于社会的快速发展,人们越来越关注周围的安全。特别是在住宅中,他们必须密切关注周围的陌生人。为此,许多住宅已经配备了先进的智能监控设备,以确保住宅内的安全。这样,住宅的整体安全水平就会显著提升,为住户的生命和财产提供巨大的安全。由于科学的开发,红外线作为一种无法直接接触的物质,具备极高的隐秘性、保密性,已经成为各种安全设备的重要组成部分。尤其是在电子防盗、人身检查、智能家居建设等方面,被动式热释电红外探测器更加受到消费者的青睐,它的优势包括价格便宜、功率高、控制简便、使用寿命长。当前,国产防盗报警器大多依赖于先进的超音频、自适应红外发射/接收和微波技术,但我们的新型报警器却拥有更先进的能力,它们采用美国最新的热释电红外传感器,能够实现更高精度的告警能力。通过采用热释电红外传感器,我们不仅能够通过无需接触的方法来探测到人类身上的红外线,而且还能够通过感应器来识别活跃的生命和其他无机物。此外,该感应器不仅适合作为安全保护设备,而且在各个行业都有广泛的应用。
通过使用咪头,我们可以对周围的环境进行监控。它可以将电信号转换为可听的信号,与传统的喇叭器件形成对比。这两个器件构成了一个完整的声学系统,它们分别作为两个不同的部分,分别作为电信号的传递器。
名称:基于STC89C51的红外光控灯
本研究旨在R&D一种新型的智能灯,它采用BISS0001和单片机构建的红外传感器,可根据周围的环境信息,实现对有人的自动报警,而不需要手工操纵,同时可实现实现实时的熄火,从而大大减少能耗。具体要求如下:
红外光控灯系统通常包括以下功能:
1.灯具控制:根据环境亮度,自动控制灯的开关。
2.时序控制:在特定的时间段内,自动控制灯的开关。例如,在夜晚或天亮时打开或关闭路灯。
3.节能功能:使用红外传感器检测人体活动,当没有人经过时,将灯关闭以节省能源。
4.当红外传感器检测到有人闯入监控范围时,系统会自动激活灯光,并通过报警装置发出警报,以提醒周围的人注意安全。
5.智能控制:通过集成人工智能技术,可以实现更加智能化的控制
这个设计需要结合硬件与软件来完成。为了达到这个目标,我们需要对单片处理器(89S52)、按键、LED显示器以及它们的串行接口技术进行全面的研究。我们需要掌握这些技术,例如如何利用它们来提高我们的性能。我们还需要掌握非编码键盘和LED的动态显示,以及如何通过这些技术来降低器件的售价、提高生产效率,以及如何提高我们的软件的使用体验。在S52的软件环境中,我们需要熟悉S52的编程方式,掌握基本的编码技术,精心设置程序,以保证它的简单、容易理解、可移植、编译速度快、稳固可靠。在利用计算机处理复杂的任务时,我们需要首先仔细研究问题的需求,找出合适的算法、步骤,再根据需要挑选合适的指令,最终将它们有条不紊地组织在一起,以达到最佳的结果。经过精心设计的AP可以有效地帮助我们解决复杂的问题,并且可以满足我们的需求。为此,我们采取了多种方法,包括利用模拟软件和T写入技术,对编码的程序进行校验,然后将校验结果存储在AT89S52上,以便在未来的硬件环境下正常运作。
STC89C52是一款性能卓越、存储容量为8K的微控制器,具备高性能、复位功能、计时器、中断架构和双工串口等特点,支持空闲状态自动关闭CPU并保持其他功能正常工作状态,具备掉电保护和数据储存功能。最高运作频率35Mhz,6T/12T可选。
STC有限公司近期发布的一款全新的51核心的机器人,它拥有Flash程序存储器、SRAM、UART、SPI、PWM以及其他多种功能,为用户提供更加先进的服务。(一)STC89C51主要功能、性能参数如下:
(1)采用51内核的系统,其中,增强版拥有6个时钟,而普及版则拥有12个时钟;
(2)该设备的工作频段可达0~40MHZ,与传统的8051设备的0~80MHZ的频段非常接近;
(3)STC89C51RC对应Flash空间:4KB;
(4)内部存储器(RAM):512B;
(5)定时器\计数器:3个16位;
(6)通用异步通信口(UART)1个;
(7)中断源:8个;
(8)拥有可靠的ISP和\IAP,可以在系统和应用中实现可靠的调度,而不必依赖于特定的模拟软件;
(9)通用I\O口:32\36个;
(10)工作电压:3.8~5.5V;
(11)外形封装:40脚PDIP、44脚PLCC和PQFP等。
(二)STC89C51单片机的引脚说明:
VCC:供电电压。
GND:接地。
P0口是一种双向I/O口,具有8位漏级开路,并且具有8TTL的门电压,因此,在P1口的第一个入口1时,P0口就会产生高阻入口。此外,p0口还具有多种应用,比如作为外接程序的数据存储器,其第八位位置也是一种重要的参考。FIASH编写时,P0端口是起始端,它的功能是将数据转换成可执行的格式。然而,如果需要对FIASH进行检查,就需要将P0端口的值提升到一定的水平。
P1口:一种8位的双向I/O口,提供一种内置的拉阻力,它的管脚在1位处会被拉升至较高的电压,从而产生4TTL的电流。当P1口管脚在外界拉降至较低电压时,它会产生电流,而此现象正是因为它的拉升电压所致。FLASH编程中,P1口被用于第八位的信息传输,以便进行检查。
P2口是一种具有8个位置的I/O口,它的内部结构有一组上升的阻力,使得它能够接受4个TTL门的电流。在““1””的位置,它的管脚会被内层的上升阻力抬起,从而成为一组输入。在这个位置,它的管脚会被外部的力量降低,从而产生一组输出。P2口能够被设计为一种能够被多个程序存储器和16位地址寄存器使用的存储设备,因为它具有内置的上拉机制,能够将寄存器的位置设置为8位。此外,P2口还能够根据程序存储器的位置,将寄存器的位置设置为“1”,从而实现存储设备的多种存储功能。P2口能够通过高八位的地址传输器来实现FLASH编程及其相关的检测功能。
P3口管脚拥有8个具有内置上升电路的单向I/O口,它能够同时传送4个TTL信号,从而实现高效的数据,在P3口中,“1”的电平会被内部调节至高电平,以此来提供电力。然而,随着外界电平的降低,P3口会产生一个电流(ILL),因此,在调节电平时,需要考虑到电平的变化。
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口可以同时发出闪烁信号并进行编程校验,以确保系统的正常运行。
I/O口可以被分为两类:一个用以接收源自外界的信息,一个用以接收源自本地的信息。在接收信号的情况下,i/o口会将源自本地的信号转发给本地的信息,然后通过一些计算机程序进行转发,最终将转发信号发送至本地的信息。当端口被设定为1,CPU便会按照相关的指令,向输入缓冲器CPU发送端口和端口引脚的信息,从而使得外界的数据被准确地传送至内部的总线。此过程无须人工介入,而且也无须设定端口的值,因此,当端口被设定为1,端口锁定器的状态也会被设定,从而使得从场效应管栅极传递的数据也设定为1,从而避免了端口的设定值被设定为1,从而使得从外界的数据被准确地传送至内部的总线。当场效应管的电流较小时,它的电路将受限,从而降低其电路的性能。此时,即便将1的电流传递给它,它的电路仍然受限,从而无法将其转换成1。但如果我们能够首先进行1的设置,那么它的电路将能够将电流传递给三态缓存,从而达到正常的电路。此时,我们需要进行额外的预处理,从而将I/O口设计成具有双向传送功能的口。89C51的P0/P1/P2/P3口均采用了单向传输,以满足用户的需求。
RST:用于重置设备的输出。在重置过程中,应确保RST接口处的两个机械循环的电压都处于较高水平。
ALE/PROG是一种可靠的地址锁定技术,它可以将FLASH中的数据转换成一种可被控制的格式,并且可以根据需要调整其输出的信号强度。通常,ALE端会按照一定的频段发出一条正脉冲信息,这个信息的频谱大约是1/6。由于ALE具备特殊功能,它既能够被用来控制外部输入,也能够被用来实现特殊的时间控制。但需要特别提醒的是,一旦被设为外部数据存储,就会中断一条ALE脉冲信号。为了防止ALE被激活,应该把SFR8EH地址设为0。这样,ALE就会被激活,直到MOVX和MOVC指令被激活。此处,由于引脚的增加,如果ALE处于外部的禁用条件,则此处的定位将失败。
/PSEN是一种特殊的电子控制单元,它可以被用来控制电子设备的运行状态。当电子设备被控制时,它会发送两次/PSEN,以确保电子设备的正常运行。然而,当电子设备被控制到其他地方,它就无法发送/PSEN了。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1是一种反向振荡放大器,它通过接收外界信号来驱动其内置的时钟系统。
XTAL2:来自反向振荡器的输出。
89C51单片机可以采用两种不同的时间传输模式:一种是内置的,另一种则可以采用外置的。其中,内置的模拟模型可以参考图3,它由一个XTAL1(18)和XTAL2)的元件组合而成,这些元件之间形成一个自激的振荡,从而使得该单片机能够发出一个精确的时间脉冲。电容器C1和C2的功能主要是维持振动的平衡,其容量介于5pf到5~30pF之间,其中30pF最佳。晶振CYS的振动频率可以根据需要调整,其取值范围介于1.2~12MHz到1.2~12MHz之间,其中最佳值分别为12MHz和6MHz。
89C51单片机的RST接口被激活后,将会进入高电平状况,这种状况会维持2个机器周期,一旦该接口一直处在高电平状况,则会进入循环恢复状况。
电路复位通常有两种选择:自动重置或者按键重置。
在这种情况下,使用Vcc技术,我们能够在短的时间内完成上电的重置。这种方法的原理在于,我们使用了一个内置的电容器,它能够在短的时间内完成充放电。
遥控器可以采取两种不同的模式:一种是直流模式,另一种则采取脉冲模式。根据图4,采用12MHZ的时钟频率,将C设置为10uF,将R设置为10kΩ,以实现快速的按键复位功能。
3.4 红外热释电模块
HC-SR501是一款拥有先进的红外科技的智能型自动控制系统,它采用联邦德国进口的LHI778探测仪,拥有极佳的敏感度和稳定的可靠度,而且拥有极低的电压,因此被广泛地应用到多种自动化的电气设备,特别是为干电池提供充足的能量。
电气参数
表1 HC-SR501的电气参数 | |
产品名称 | 参数表 |
工作电压范围 | 直流电压4.5-20V |
静态电流 | <50uA |
电平输出 | 高3.3V低0V |
触发方式 | L不可重复触发/H重复触发(默认重复触发) |
延时时间 | 5-200S(可调)可制作范围零点几秒-几十分钟 |
封锁时间 | 2.5S(默认)可制作范用零点几秒-几十秒 |
电路板外形尺寸 | 32mm*24mm |
感应角度 | <100 度锥角 |
工作温度 | -15-+70 度 |
感应透镜尺寸 | 直径:23mm(默认) |
功能特点:
1、当人们进入感应区域时,系统会发出高电平信号;而当人们离开感应区域时,系统会自动关闭高电平信号,并发出低电平信号。
2、通过选择光敏控制,可以在白天或光照较强的情况下保持系统的稳定性,而无需在出厂时设定。
3、夏季,随着环境温度的上涨,如果探测距离缩小,则需要进行温度补偿,以确保设备的正常运行。
4、两种触发方式:(可跳线选择)
a、采用无限次触发模式:当检测到一个较高的电平值,在一定的延迟期限内,系统会立刻调整电平值,使其降至较低的水平;
b、可重复触发方式:当感应器检测到人体的活动时,它会自动调整电平,以便在指定的时间段内,将高电平转换为低电平,直至人离开。这种方式可以确保系统的稳定性,并且能够及时响应用户的反馈。
5、当高电平变 低电平,并且默认情况下,感应模块会被关闭,这个关闭的时长为2.5S。这个关闭的期限是,在这个期限里,感应器将无法收到外部的传递的信息。这项技术允许与“封锁时间”之间进行定期的交替运行,从而为检测到的不良物质提供了一个灵活的空间,并且还具备了抵抗在不断变化的负荷环境下所带来的噪音的特性。
6、该设备的输入电压可达DC4.5V-20V,具有较大的灵活性。
7、微功耗:其静态电流低至50微安,使其成为最佳的选择,尤其是在使用干电池作为源时,更是能够满足其要求。此外,它还能够提供 8级的高精度信号。
3.5 LM393电压比较器
电压比较器是一个用来测量电路电压的集成电路,通过对集成电路进行测试,可以得到电路电压的波形。这个电路通过测试电路电压的波形来确保集成电路的稳定性,并且可以用来测试电路的电流。电压比较器通过测试电路电流的波形来确保集成电路的稳定性,并且可以用来测试电路的电流。通过使用比较器,我们能够构建非正弦波形变换电路,并将其广泛地运用到仿真和数字信号处理中。
内部框图如下图;
LM393主要特点如下:
●具有广泛的供电能力,无论是单相还是多相,都能够正常运行。其中,单相供电能力为2~36V,多相供电能力为±1~±18V;
●消耗电流小,Icc=0.8mA;
●输入失调电压小,VIO=±2mV;
●共模输入电压范围宽,Vic=0~Vcc-1.5V;
●输出与TTL,DTL,MOS,CMOS 等兼容;
●输出可以用开路集电极连接“或”门;
表2 LM393各引脚功能表 | ||
引出端序号 | 符号 | 功能 |
1 | OUT A | 输出 A |
2 | IN A- | 反相输入 A |
3 | IN A+ | 同相输入 A |
4 | GND | 接地端 |
5 | IN B+ | 同相输入 B |
6 | IN B- | 反相输入 B |
7 | OUT B | 输出 B |
8 | Vcc | 电源电压 |
LM393偏置网络的特性使得它的静态电流与电源电压之间的差异可以被忽略不计.
通常电源不需要加旁路电容。
差分输入电压应当足够高,以确保Vcc的正常运行.同时,保护部分也应当有效地阻止输入电压超出-0.3V.
LM393采用了一种开路的NPN输出晶体管,它的集阴极与辐射极之间的连通性使得它具有多集阴极输入输出和ORing功能的特性.
这种输出方式的特点是,它的负载电阻可以连接到 Vcc端的任意电压,并且它的输入是一个简易的地面SPS断路,即使没有使用它,它的缺口也会由于驱动力或者器件的β值来控制.一旦超过了最高的16mA的电流,输入晶片就会断裂,并迅速地提高输入的饱和电压,这个阈值由输入晶片的γSAT来控制。当电流不足以满足负载要求 ,低失衡电压(约1.0mV)可以将电流限制在零水平。为此,我们采取了一种新的电路,将声波传感器与光学传感器结合起来。
4. 系统组成及电路设计
如果要使单片机运行良好,就必须对它进行充分的设计,包括安装合适的外壳、电源、振荡和时序传输。此外,还应该设置一个复位功能,以确保它在初始条件下仍然处于运行状态。通过引入蜂鸣器、LED和八段数码管等外部电路,可以大大增强单片机的可拓展性,同时,它们还可以作为单片机的输入输出接口,支持快速、高效地传输数据。
4.2 红外热释电传感器电路
如果传感器未能接收到来自人类的红外光,那么由于电容的两端会形成具有不同极性和数值的正、负电荷,因此这些正、负电荷会彼此抵消,导致整个系统缺乏电流,从而使得传感器失去了功能。
当人体处于静止状态时,两个电容上发出的红外线光能量完全一致,形成一个完美的平衡,而两个电容之间的光电流也完全相反,这样,即使是在这种情况下,传感器也不会产生任何信号。
随着人们的行走,两个电容受到的红外线辐射的强度会发生变化,从而导致两个电容之间的光电流无法完全交换,从而使得传感器产生了一个可以被接收的信号。
1.当感应模块接上电源,它将开启一段大约一分钟的预处理过程,这段过程中,它将不断地发射0-3次信号,一分钟之后,它将处于静止不动的状态。
2.为了确保测量结果的准确性,应该尽量避免将光线或其他外部因素直接照射到模块表面,以防止引入干扰信号并导致误操作;同时,应该尽量避免使用流动的风,因为它们也会对测量结果造成干扰。
3.使用双元探头的传感器系统,其探头的视窗呈现出一个长方状,A元B元分别设置在探头的两侧,在探头的前后,随着探头的移动,红外光的传播速度和距离也会发生变化,而这种差值会影响探头的性能,如果探头的前后移动,a元探头会发现差值,而b元探头则无法发现差值,这样就会导致探头的性能变差,无法发挥出它的功能。因此,在安装探头的时候,要确保探头的前后移动的方向和探头的前后移动的方向保持一致,这样才能保证探头的性能和功能的高效运转。通过引入圆形透镜,我们可以让探头的四个部分同步检测到人体的动作,从而提高检测的精确性。此外,我们还可以通过扩展检测的视野,让检测的范围更广,更精确,更有效。
电磁继电器通常用于电气设备中,作为一种电气元器件,其作用在于连接输入回路与受控对象。。
“自动开关”,也称输出回路,一种被广泛使用的自动控制技术,可以以极少.极少的电流.极少的极少的电压来完成极多.极多的极限操纵,因此,“自动开关”可以被广泛地用来进行自动调整、安全防范和变更电路。
5.1 主程序流程图
Stc89c52主程序流程图如下所示:图12
本系统基于单片机,采用红外光控技术,实现了通过声音和光控制灯的功能。主要包括硬件设计和软件设计两个部分。
硬件设计部分:
本系统的硬件设计主要包括红外接收模块、声音控制模块、光控制模块、单片机控制模块和灯光控制模块。
红外接收模块:通过红外遥控器发送信号,红外接收模块接收信号并将信号转换为电信号,传递给单片机。
声音控制模块:通过麦克风检测声音信号,经过滤波、放大等处理后,传递给单片机。
光控制模块:通过光敏电阻检测光照强度,将检测到的光照强度值传递给单片机。
单片机控制模块:通过对红外信号、声音信号和光照强度值的处理,控制灯的开关、亮度、颜色等参数。
灯光控制模块:根据单片机控制模块的指令,控制灯的开关、亮度、颜色等参数。
软件设计部分:
本系统的软件设计主要包括程序设计和算法设计两个部分。
程序设计:通过编写程序,实现对红外信号、声音信号和光照强度值的处理,进而控制灯的开关、亮度、颜色等参数。
算法设计:通过算法实现对红外信号、声音信号和光照强度值的处理,进而控制灯的开关、亮度、颜色等参数。例如,通过对声音信号进行分析,判断声音的大小和类型,进而控制灯的亮度和颜色。总体来说,本系统通过红外光控技术实现了通过声音和光控制灯的功能,具有较高的实用性和可扩展性。
当进行基于单片机的红外光控灯系统硬件调试时,我们需要对每个硬件组件进行检查和优化,以确保整个系统能够正常运行。以下是可能的硬件调试步骤:
红外线接收模块调试:如果红外线接收模块无法正常解码和响应传输的信号,则需要检查红外线接收头是否正确连接、是否存在干扰等问题。可以尝试更换红外线接收头或者增加滤波电路来解决干扰问题。
单片机控制模块调试:如果单片机控制模块无法启动、操作不正确等问题,则需要检查芯片是否损坏、引脚连接是否正确等问题。可以使用编程器重新烧录程序或者更换芯片来解决问题。
继电器驱动模块调试:如果继电器驱动模块无法正常控制灯泡的开关,则需要检查继电器是否损坏、驱动电路是否正确设计等问题。可以通过更换继电器或者重新设计驱动电路来解决问题。
LED指示灯调试:如果LED指示灯亮度不足、无法正常显示等问题,则需要检查指示灯是否损坏、驱动电路是否正确设计等问题。可以通过更换LED或者重新设计驱动电路来解决问题。
总体而言,基于单片机的红外光控灯系统硬件调试需要仔细检查每个硬件组件,并解决可能存在的问题。在解决问题时,可以采用逐渐排除法,逐步缩小问题范围,最终找到并解决问题。
当进行基于单片机的红外光控灯系统软件调试时,我们需要对程序进行检查和优化,以确保系统能够正常运行。以下是可能的软件调试步骤:
首先,我们需要对程序进行编译,然后将其通过仿真器或下载器烧录到单片机中,最后,我们可以在单片机上运行这个程序,以便进行调试。当发现程序无法启动、崩溃等问题时,可以通过调试工具进行逐步调试,查找程序中的错误。
红外线解码调试:如果在使用红外线遥控器发送控制信号时,系统没有正确响应,则需要检查程序中的红外线解码部分。可以使用示波器等工具检查接收到的红外线信号是否与预期相符,同时检查解码算法是否正确实现。
控制逻辑调试:如果系统无法按照预期控制灯泡的开关,则需要检查程序中的控制逻辑。可以通过模拟不同情况下的输入信号并观察输出结果,以确定程序中的逻辑错误。
系统稳定性调试:如果系统在长时间运行后出现异常或者崩溃,可能是由于内存泄漏或其他错误引起的。可以通过调试工具进行程序运行状态监测,检查并解决问题。
总体而言,基于单片机的红外光控灯系统软件调试需要仔细检查每个程序模块,并解决可能存在的问题。在解决问题时,可以采用逐渐排除法,逐步缩小问题范围,最终找到并解决问题。
项目总结
基于单片机的红外光控灯系统是一种智能化的照明控制系统,旨在实现远程控制和自动感应控制,提高灯具的使用效率和舒适性,并节约能源。该系统主要由红外接收模块、单片机控制模块、继电器驱动模块、LED指示灯等硬件组件构成。我们使用STC89C52单片机来控制系统,并配备了红外接收头、四位七段数码管、LED指示灯和继电器模块来实现各种功能。程序部分使用了C语言,可以实现红外解码、控制逻辑和自动感应控制。 软硬件相结合,我们可以通过遥控器发送控制信号,或者根据环境光线自动调整灯泡亮度;同时,系统还有提示音、状态显示等附加功能。该系统低成本、易实现,已经被广泛应用在家庭、办公室等场所。这个项目为智能照明领域的技术研发提供了一个典型示例,也为学生们提供了一次锻炼硬件设计、软件开发、调试调优等方面综合能力的机会。
- 赵国强,智能控制灯系统,科学启蒙,2007, 第21期
- 赵继文,传感器与应用电路设计,北京,北京科学出版社,2002.3.6
- 毕淑娥,电工与电子技术基础,哈尔滨,哈尔滨工业大学出版社,2008.6
- 李全利,单片机原理及应用,北京,清华大学出版社,2006.2
- 金发庆,传感器技术与应用,北京 : 机械工业出版社, 2004.8,281-290
- 王港元,电子技能基础,成都,成都科技大学出版社,1999
- 李朝青,单片机原理及接口技术,北京,北京航空航天大学出版社,2004
经历了一个艰辛的时期,最后的毕业设计得以圆满实现,标志着我的大学时光正式告一段落。在此期间,我从中获得的知识、经验以及感悟无穷,全部归功于所有的老师、同伴以及家人的热情帮助。
在这篇论文的撰写过程中,我的指导教授付出了巨大的努力,他们仔细审查并一一解答所有的细节,并且不断地鼓励我继续努力。对于那些对我的工作非常重视并且一直对我的学业有所帮助的教授们,我深表歉意。
附录:
原理图和PCB图
源程序代码
#include <REGX52.H>
sbit Light = P1^1;
sbit JDQ = P2^0;
sbit RSD = P1^6;
sbit Sound = P2^2; //声明IO
unsigned char Trig_Time = 0; //触发灯控时间
void Timer0_Int() //定时器初始化,使用定时器 0 ,定时中断周期是 50ms
{
TMOD=0x01;
TH0=0x4C;
TL0=0x00;
ET0=1;
TR0=1;
EA=1;
}
void Control() //控制函数
{
if(Light==1) //光检测为高电平说明此时是光暗
{
if(RSD==1||Sound==0) Trig_Time = 60; //光暗情况下,检测到人,或者声音,就刷新灯亮时间,3S , 20是一秒
}
if(Trig_Time!=0) JDQ = 0; //只要灯亮时间不为 0 ,那就一直触发灯亮
else JDQ=1;
}
void main() //主函数
{
Timer0_Int(); //定时器初始化函数
while(1)
{
Control(); //调用控制
}
}
void Timer0() interrupt 1 //定时器 0 中断回调
{
TH0=0x4C;
TL0=0x00; //重新装载初值 50ms
if(Trig_Time!=0) Trig_Time--; //只要不为0 ,就自减
}