您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 基于单片机的声光控制灯
基于单片机的声光控制模拟路灯前言:单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。本次我们采用STC12C5A60S2单片机设计一种基于单片机控制的声光控制模拟路灯。该灯通过声光同时控制楼道灯的亮灭,经过调查,现在绝大多数小区的楼道灯都是纯电路形式实现声光控制的,这较之智能控制缺乏功能多样性,稳定性,而未来肯定是智能化的天下,所以我们用单片机模拟这一系统。关键字:单片机,STC12C5A60S2,智能社区,楼道灯目录:一、设计目的...........................................................................................................................1二、总体设计...........................................................................................................................2方案选择:...............................................................................................................................2三、硬件设计...........................................................................................................................3原理说明:...............................................................................................................................3四、软件设计...........................................................................................................................4主要程序清单:.......................................................................................................................4五、实验结果...........................................................................................错误!未定义书签。一、设计目的通过此次设计,主要是为了巩固我们的单片机相关知识及对单片机的相关应用,培养电子系统设计与实践的能力,学会设计使用声、光传感器,并能用这些传感器设计一个声光控制的路灯(楼道灯)。完成功能:声光控制结合,即模拟当天暗并且楼道里有人走过的时候灯自动点亮25秒后熄灭。二、总体设计此次设计的声光控制灯包括三个基本模块,即声音处理模块、光处理模块、单片机小系统。总体设计框图如下:图1、总体设计框图方案选择:1)、单片机部分。此次设计采用自带AD转换功能的STC12C5A60S2单片机,因此无需外加ADC。2)、声控部分选择驻极体话筒制作的声音传感器来完成,无声音传入时,电压为高(5V),有声音传入时电压为低(0.02V)3)、光控部分我们选用光敏电阻作光控部分的核心元件,因为光敏二极管转换成的是电流,而我们需要判断的是电压信号,因此需要将电流转换成电压,当楼道处于(相对)无光状态时电压约为4.4V,有光状态时电压为4.85V。声音信号处理光信号处理单片机系统进行数据整理分析继电器接220V60W灯泡三、硬件设计总电路图如下所示:图2、总电路图原理说明:1)、声控部分。声控主要是用一个驻极体话筒用于接收声音信号,然后经过一级放大将声音信号放大,然后再通过带通滤波器提取我们需要的频率的声音,最后经过过零比较器将信号整流成方波信号用于单片机接收判断高低电平。2)、光控部分。光控主要是用光敏电阻作同向放大器的反馈电阻来控制放大器的放大倍数来控制其输出电压,当光亮时,光敏电阻阻值较小,放大倍数小,输出电压小,三极管截止,集电极连单片机脚为高电平,灯灭;当光暗时,光敏电阻阻值较大,放大倍数大,输出电压大,三极管导通,集电极连单片机脚为低电平,灯亮。四、软件设计软件设计主要是通过判断声控部分,光控部分与单片机I/O口相连的电平的高低来判断并执行继电器开关的过程,采用ADC查询法+10未模式来表达输入的模拟电压,从而用单片机进行判断。以下是程序清单和程序框图:主要程序清单:主函数部分(采用keilc51编写):#includereg52.h#includeintrins.h#includeSTC12(ADCflag).h#defineucharunsignedchar#defineuintunsignedintexternfloattemp;sbitLED1=P3^7;//继电器控制端口设为P3.7口//*******************************???voidmain(){P3M1=0x00;//将单片机P3口设为准双向模式以输出电平P3M0=0x00;LED1=1;Init_ADC();//ADC初始化函数while(1){if(Count(0)=4.55)//判断语句,Count(0)为光信号输入并转换完成的数据(接P1.0口),Count(1)为声音信号输入并转换完成的数据(接P1.1口){if(Count(1)=4.50){LED1=0;//继电器低电平触发Delay1(2941);//延时25sLED1=1;//关闭继电器}elseif(Count(1)4.50){LED1=1;}//不满足条件时不触发elseif(Count(0)4.55){LED1=1;}}}}ADC数据输入转换部分(采用keilc51编写):#includereg52.h#includeintrins.h#includeSTC12(ADCflag).hfloattemp;//******************延时函数(n=1:1T8.65ms,12T59.9ms)******************//voidDelay1(uintn){uintx;while(n--){x=5000;while(x--);}}//******************************ADC初始化函数voidInit_ADC()//ADC初始化函数{P1ASF=0xff;ADC_RES=0;ADC_RESL=0;ADC_CONTR=ADC_POWER|ADC_SPEEDLL;Delay1(2);}//***********************************ADC数据转换函数uintGet_ADC_Result(ucharch){ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch;_nop_();//空语句用于延时_nop_();_nop_();_nop_();while(!(ADC_CONTR&ADC_FLAG));ADC_CONTR&=~ADC_FLAG;return(ADC_RES*4+ADC_RESL);}//************************************ADC数据计算函数floatCount(ucharch){temp=(float)Get_ADC_Result(ch)*4.60/1024;//返回10位AD值returntemp;}五、实验结果:有光时:1.无声:灯不亮;2.有声:灯不亮;无光时:1.无声:灯不亮;2.有声:灯亮。
本文标题:基于单片机的声光控制灯
链接地址:https://www.777doc.com/doc-2535910 .html