基于STC89C52单片机的智能LED照明系统设计
关键词:
单片机LED
智能照明传感器
光电探测
摘要:
本文设计了一种基于STC89C52单片机最小系统的智能LED照明系统,并结合LED照明技术、红外传感技术、光电检测技术,实现了LED照明系统的智能化处理与控制。该系统可智能测试LED照明系统的设计,实现光强控制、红外检测和光强测量,反映LED灯的智能性和人性化,进而实现节能绿色照明。
1.引言
LED是第四代绿色照明光源,由于其低能耗、无污染、使用寿命长等优点,已广泛应用于社会生活的各个方面。随着科学技术的发展,人们对照明的需求不断提高。照明不仅可以提供一个舒适的环境亮度,而且营造优雅舒适的氛围。目前,在室内照明方面LED智能照明系统的应用还处于探索阶段。原因在于照明技术和应用成本。因此,开发一套切实可行的低成本照明管理系统,解决当前照明系统缺陷是迫切需要,也是当前照明控制领域的一个关键问题。
STC89xx系列是STC单片机有限公司生产的8位单片机,具有与工业标准 80C51系列单片机完全兼容的指令集。嵌入应用程序的64K字节闪存与系统内编程代码共享,系统内编程(ISP)和应用内编程(IAP)支持用户升级系统中的程序和数据。ISP允许用户下载新的代码,而不需要将微控制器从实际的最终产品中移除;IAP是指在应用程序运行时,设备可以在Flash存储器中写入数据。有1280字节或512字节的芯片内存,提供了广泛的应用需求。用户可以将设备配置为每个机器周期运行12个时钟,并获得相同的性能,就像他使用其他供应商提供的另一个标准80C51设备一样,或者每个机器周期运行6个时钟以获得两倍的性能。STC89xx系列保留了标准80C51的所有特性。此外STC89xx系列还有一个额外的I/O端口(P4)、定时器 2、8源、4优先级中断结构、片上晶体振荡器和一次性启用的看门狗定时器。
本文的目的是设计一种基于STC89C52单片机最小系统的智能LED照明系统,该系统结合了LED照明技术、红外传感技术、光电检测技术和智能控制技术等。该系统能够实现对灯具亮度的智能控制,不仅满足日常照明的需要,而且在节能方面发挥了重要作用。
2.系统硬件设计
基于单片机最小系统的设计,主要包括人体热释电红外传感、光学传感、按键、显示模块等,实现对光源亮度的自动调节。如图1所示。
图1:系统结构
2.1单片机系统
2.1.1单片机系统框图
STC89xx系列CPU内核与标准8051微控制器完全兼容,保持所有指令助记符和二进制兼容性。STC89xx系列可以每6个时钟周期或12个时钟周期执行最快的指令(与标准80C51相同)。单个程序的改进取决于实际使用的指令。
图2 89XX框图
2.1.2 单片机最小系统
单片机最小系统包括电源电路,晶振电路和复位电路,其原理图如图2所示。
图3 单片机最小系统
电源模块控制寄存器如图4。
图4 控制电源寄存器
SMOD:双倍波特率工作接口
0 在模式1、2或3中使用UART时,保持正常的波特率;
1 在模式1、2或3中使用UART时,使用双倍波特率位。
SMOD0:SM0/FE位为SCON.7选择;设置这个位将设置SCON.7为Frame Error函数,将SCON.7设置为一个UART模式选择位。
B5:保留
POF:开机标志。它是通过关机动作设置的,只能通过软件清除。
GF1:普通用途标志1
GF0:普通用途标志0
PD:关闭电源位。
IDL:空闲模式位。
空闲模式,一条设置IDL/PCON.0的指令使得它成为进入空闲模式之前执行的最后一条指令,内部时钟被关闭到CPU, 而不是中断、定时器、WDT和串行端口函数。CPU状态是完整保存的:堆栈指针、程序计数器、程序状态 字、累加器和所有其他寄存器在空闲时保存它们的数据。端口管脚保存了它们在空闲模式被激活时的逻辑状态。AlE和PSEN保持在逻辑高水平。空闲模式使外围设备运行,以便它们在中断生成时唤醒 CPU。定时器0,定时器1,定时器2和UART将继续在空闲模式下运行。
终止空闲模式有两种方法。激活任何启用的中断将导致IDL/PCON.0被硬件清除,终止空闲模式。中断将得到服务,在RETI之后,下一条将被执行的指令将是将设备置于空闲状态的指令。
标志位(GFO和GF1)可用于在正常操作或空闲期间发生中断时给出指示。例如,激活空闲模式的指令也可以设置一个或两个标志位。当空闲模式被中断终止时,可以检查标志位。
从空闲状态唤醒的另一种方法是将RESET调高以生成内部硬件复位。由于时钟振荡器仍然在运行,硬件复位需要保持激活只有两个系统时钟周期(24个系统时钟)来完成复位。
关机模式,设置PD/PCON.1的指令使其成为进入关闭模式之前执行的最后一条指令。在断电模式下,芯片上振荡器和闪存停止,以最大限度地减少功耗。只有开机电路将继续吸引电源在断电期间。片上RAM和SFR得到了维护。从断电模式中唤醒的唯一方法是硬件复位。断电模式可由RESET引脚、外部中断 INT0~INT3、RXD引脚、T0引脚、T1引脚激活。当它被RESET唤醒时,程序将从地址0x0000执行。保持RESET引脚活跃至少10毫秒,为了一个稳定的时钟。如果它从I/O唤醒,CPU将通过跳转到相关的中断进行返工。在 CPU返工之前,为了补偿不稳定的时钟,时钟被阻塞并计数到32768。为了使用I/O唤醒,在输入断电之前,必须准确地启用和编写与中断相关的寄存器。如果使用I/O唤醒,请注意在断电指令之后至少有一条“NOP”指令。当通过中断终止断电时,唤醒周期在内部定时。在中断引脚的负边缘,退出电源关闭,振荡器重新启动,内部计时器开始计数。内部时钟将允许传播,CPU将不会恢复执行,直到计时器达到内部计数器满。超时时间过后,阻断器将开始。为了防止中断重新触发,阻断器应该在返回之前禁用中断。中断引脚应该保持低位,直到设备超时并开始执行。在出现下列情况之一之前,用户不应尝试进入(或重新进入)至少4us的电源关闭模式:开始执行代码(在任何类型的重置之后),或退出电源关闭模式。
晶振电路,内部时钟脉冲信号由单片机XTAL1(19引脚)和XTAL2(20引脚)采集的12mhz晶体振动和两个30pf陶瓷外时钟振荡电路产生。STC89C52芯片允许12 MHz或11.0592 MHz的典型值,系统采用12 MHz。
当系统在执行程序时陷入死循环时,单片机可以在此时使用复位按钮,在STC89xx系列中,有5个方法可以生成内部重置。它们分别是RESET引脚、片上电源复位、看门狗定时器、软件复位和片上MAX810POR定时延迟。让内部程序从头开始。RST引脚:是施密特触发器的输入,是芯片复位的输入引脚。电平变化的RESET引脚必须保持至少24周期,为CPU内部采样使用。当这个信号至少在两个机器周期加上10个单位时,内部寄存器载入适当的值,以便有序地启动系统。正常情况下,RST较低。
电源开启复位:当VCC低于 POR电路的检测阈值时,所有的逻辑电路都被复位。当VCC再次启动时,内部重置会在32768时钟延迟后自动释放。3V器件的标称POR检测阈值约为 2.0v,5V器件为 3.3v。
开机标志POF/PCON.4由硬件设置,表示VCC功率曾经小于POR电压。此外,它还可以帮助用户检查CPU是从开机还是从硬件复位(RST-pin复位)、软件复位还是看门狗定时器复位开始运行。POF位应该用软件清除。
图5 电源控制寄存器
看门狗定时器:STC89xx系列单片机中的看门狗定时器由8位预定标器定时器和15位定时器组成。定时器是通过设置 ENWDT(WDTcontr.5)一次性启用的。清除ENWDT可以停止WDT计数。当启用WDT时,软件应该总是在WDT溢出之前通过写1到CLR_WDT位来重置计时器。如果STC89xx系列单片机由于任何干扰而失去控制,这意味着CPU不能正常运行软件,那么WDT可能会错过“写1到CLRWDT”,从而出现溢出。一个看门狗计时器溢出将产生一个内部复位。
启用WDT位。设置后,启动WDT。
WDT:WDT清除位。设置后,WDT将重新计数。硬件将自动清除此位。
IDLE-WDT:WDTIDLE模式位。设置后,WDT在空闲模式下启用。清除时,在IDLE中禁用WDT。
PS2,PS1,PS0:WDT预刻度值位。
图6 看门狗定时器控制寄存器
软件复位:在ISP_CONTR寄存器中写入一个“1”到 SWRST位将生成一个内部复位。
图7 ISP控制寄存器
ISPEN:启用ISP/IAP操作。
0:全局禁用所有ISP/IAP程序/erase/read函数。
1:启用ISP/IAP程序/erase/read函数。 软件启动选择控制。
0:重置后从主存启动。
1:重置后从 ISP 内存启动。
软件复位触发控制。
0:禁止操作
1:软件系统复位,由硬件自动清除。
4~B3:保留。
Wt2~WT0:在闪存忙时选择ISP/IAP等待时间。
在这项工作中,手动复位和电源复位相结合。 通常在 RST和电源VCC之间加一个复位按钮,复位按钮的两端与10个铝电解电容器并联,并联串联10 k电阻后与地连接,形成复位电路。
2.1.3存储器
STC89xx系列单片机具有独立的程序存储器和数据存储器地址空间。程序存储器是存储供 CPU 执行的程 序代码的存储器。在STC89xx系列单片机中,有高达64k字节的闪存用于程序和数据存储。较低的4K为STC89C51RC (8K为STC89C52RC,16k为STC89C54RC等)可能驻留在芯片上。该设计允许用户配置它,就像里面有三个独立的分区一样。它们分别称为AP(应用程序)区、IAP(应用程序内部)区和ISP(系统内部程序)引导区。AP区域是用户程序居住的空间。IAP(In-Application-Program)区域是AP程序用于保存重要参数的非易失性数据存储空间。换句话说,STC89xx系列的IAP功能为用户提供了读写用户定义的片上数据闪存区域的功能,从而节省了使用外部EEPROM设备所需的时间。ISP启动区域是我们称之为“ISP 程序”的特定程序驻留的空间。在ISP 区域内,用户还可以启用对一个小内存空间的读/写访问,以便为特定目的存储参数。一般来说,ISP 程序的目的是实现AP程序的升级,而不需要将设备从 系统中移除。Stc89xx系列硬件捕获自启动持续时间以来的配置信息,并根据预先确定的标准执行空间外硬件保护。其标准是AP区域只能由ISP程序访问,IAP区域可由ISP程序和AP程序访问,ISP区域不能由AP程序和ISP程序本身访问。但是如果启用了“ISP 数据闪存”,ISP程序可以读写这个空间。当执 行ISP-IAPSFR上的错误设置时,会发生“超出空间”,STC89xx系列遵循上述标准,忽略触发器命令。
重置后,CPU 从程序内存的 0000H 位置开始执行,这个位置应该是用户应用程序代码的起始位置。为了服务中断,中断服务位置(称为中断向量)应该位于程序内存中。每个中断在程序内存中被分配一个固定的 位置。中断导致 CPU 跳转到那个位置,在那里开始执行服务例程。例如,外部中断 0 被分配到位置 0003H。如果要使用外部中断 0,它的服务程序必须从位置 0003H开始。如果不打算使用中断,那么它的 服务位置可以作为通用程序内存使用。
中断服务位置的间隔为 8 字节:0003H 表示外部中断 0,000BH 表示定时器 0,0013H 表示外部中断 1,001BH 表示定时器 1,等等。如果一个阻断器文件足够短(在控制应用程序中通常是这样),它可以完全驻留在8字节的间隔内。如果使用其他中断,较长的服务例程可以使用跳转指令跳过后续的中断位置。
图8 存储器
数据存储器主要有三种形式。
片上可挠式记忆体,与传统的 8051 微控制器相同,在 STC89xx 系列中有 256 字节的 SRAM 数据存储器,包括 128 字节的 SFR 空间。较低的 128 字节数据存储器可以通过直接和间接寻址访问。上面 128 字节的数据内存和 128 字节的 SFR空间共享相同的地址空间。上面 128字节的数据存储器只能通过间接寻址访问。SFR的 128个 字节只能通过直接寻址访问。数据存储器的最低 32 字节(00H~1FH)分为 4 组,每组8个寄存器。程序指令将这些寄存器称为 R0到 R7。PSW寄存器中的 RS0和 RS1位选择使用哪个寄存器组。 使用寄存器寻址的指令将只访问当前指定的区域。这允许更有效地使用代码空间,因为寄存器指令比使用直接寻址的指令短。寄存器组上方接下来的 16个字节(20H~2FH)构成了一块位寻址内存空间。80C51 指令集包括广泛的单位指令选择,这一领域的 128 位可以通过这些指令直接寻址。这个区域的位地址是 00H到 7FH。
低 128 的所有字节都可以通过直接或间接寻址访问,而高 128 只能通过间接寻址访问。SFR包括端口锁存器、定时器、外围控制等。这些寄存器只能通过直接寻址访问。SFR空间中的十六个地址都是字节和位可寻址的。位可寻址的SFR是地址以 0H或 8H结尾的SFR。
辅助 RAM,在 STC
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[239050],资料为PDF文档或Word文档,PDF文档可免费转换为Word
您可能感兴趣的文章
- 饮用水微生物群:一个全面的时空研究,以监测巴黎供水系统的水质外文翻译资料
- 步进电机控制和摩擦模型对复杂机械系统精确定位的影响外文翻译资料
- 具有温湿度控制的开式阴极PEM燃料电池性能的提升外文翻译资料
- 警报定时系统对驾驶员行为的影响:调查驾驶员信任的差异以及根据警报定时对警报的响应外文翻译资料
- 门禁系统的零知识认证解决方案外文翻译资料
- 车辆废气及室外环境中悬浮微粒中有机磷的含量—-个案研究外文翻译资料
- ZigBee协议对城市风力涡轮机的无线监控: 支持应用软件和传感器模块外文翻译资料
- ZigBee系统在医疗保健中提供位置信息和传感器数据传输的方案外文翻译资料
- 基于PLC的模糊控制器在污水处理系统中的应用外文翻译资料
- 光伏并联最大功率点跟踪系统独立应用程序外文翻译资料
