现代电子技术ModernElectronicsTechnique2015年11月1日第38卷第21期Nov.2015Vol.38No.21doi:10.16652/j.issn.1004⁃373x.2015.21.0450引言随着日益成熟的交通网络的发展,汽车成为了人类出行不可缺少的交通工具。交通事故的频繁发生成为了人们日渐担忧的问题,人们更加关心汽车的安全性能。根据报道的数据显示[1],我国夜间发生的交通事故中,70%左右是由于违章使用氙气灯造成灯光炫目,使驾驶员无法看清前方路况而发生的。照明系统是汽车主动安全的重要组成部分之一,如今汽车前照灯灯光光型单一的传统照明系统已经无法跟上当前汽车安全性能发展的趋势[1];所以,为了减少交通事故的发生,考虑到汽车的人性化设计。本文采用STC89C52单片机设计了一款自动切换远近光的汽车前照灯系统。这种前照灯系统更加智能化,能消除存在的安全隐患。1基本原理及理论分析目前市面上虽然有搭载AFS系统(AdaptiveFront⁃lightingSystem,自适应前照明系统)的汽车,但其功能仅局限于转向大灯辅助汽车转弯,而不能做到自动切换前照灯的远近光模式。本文设计的自动切换远近光汽车前照灯系统主要由光强检测系统和单片机系统组成。光强检测系统检测汽车前方环境的光强,当汽车行驶时,汽车前方的灯光将会照射在光强检测系统的接收器上,接收器将感测到的信号转化为可靠的数控直流电源,实现程控的功能,经过A/D转换器转换为模拟电压[2],将该电压送给单片机,通过与内置参数的对比,发送控制指令控制汽车的远近灯光,从而实现最终的汽车前照灯的远近光的自动切换,其原理图如图1所示。图1远近光自动切换系统原理图基于单片机的汽车前照灯远近光自动切换系统徐泽,谢天怡(南京邮电大学海外教育学院,江苏南京210023)摘要:考虑到汽车的安全性能,设计了一款采用STC89C52单片机为电子控制单元核心的汽车前照灯远近光自动切换系统。该系统主要由光强检测系统和单片机系统组成。详细介绍了系统的基本原理、理论分析及硬件设计,并提出了软件的实现方法。其中,硬件系统模块包括处理器模块、通信模块、传感器模块、显示模块和电源模块。该前照灯系统较智能化,确保了汽车夜间行车的安全性。关键词:STC89C52;光敏传感器;1602液晶显示屏;灯光自动切换中图分类号:TN710⁃34文献标识码:A文章编号:1004⁃373X(2015)21⁃0167⁃04Microcontroller⁃basedautomaticswitchingsystemoffarandnearlightforautomobileheadlightsXUZe,XIETianyi(CollegeofOverseasEducation,NanjingUniversityofPostsandTeleconmmunication,Nanjing210023,China)Abstract:Consideringthesafetyperformanceofthevehicle,anautomaticswitchingsystemoffarandnearlightforautomo⁃bileheadlightswasdesigned,whichistakenSTC89C52microcontrollerasthecoreoftheelectroniccontrolunit.Thissystemisconsistedoflightintensitydetectionsystemandmicrocontrollersystem.Thefundamentalprinciple,theoreticalanalysisandhard⁃waredesignofthissystemareintroducedindetail,andthesoftwareimplementationmethodisproposed.Thehardwaresystemmodeliscomposedofprocessormodule,communicationmodule,sensormodule,displaymoduleandpowermodule.Thishead⁃lightssystemisintelligent,andcanensurethesafetyperformanceofthevehicleonnightdriving.Keywords:STC89C52;photosensitivesensor;1602LCD;automaticlightswitching收稿日期:2015⁃05⁃14167167现代电子技术2015年第38卷图3智能车灯系统实物图2.2通信模块本系统串口通信方面采用RS232串口通信接口。RS232是由美国电子工业协会EIA(ElectronicIndus⁃triesAssociation)定义的异步传输标准接口,通信装置如图4所示。其特点为近距离传输、稳定。通常以DB⁃9,即9个引脚的形式出现。由于STC89C52单片机具有TTL电平特性,即以电平高低表示逻辑状态,而RS232串口是EIA电平特性,以电压正负来表示其逻辑状态。所以,在此采用MAX⁃IM公司生产的MAX232电平转换芯片实现TTL⁃EIA电平双向转换[4]。图4RS232串口通信装置MAX232芯片的特点为功耗低,只需5V电源供电,图2智能前照灯系统硬件组成原理图2硬件设计整个硬件系统组成包括处理器模块、通信模块、传感器模块、显示模块和电源模块。2.1单片机模块本文设计的智能前照灯系统的监控参数较少,计算不是特别复杂,选择STC89C52单片机完全可以满足系统的要求。STC89C52是一个具有和Atmel公司生产的AT89C52相似结构的微处理器,兼容8051微处理器指令集。STC89C52是采用CMOS工艺的具有8KB可编程只读存储(ROM)的低功耗、高效率的微处理器[3]。STC89C52有40个引脚,采用PDIP(双列直插式组件)封装[3]。有32个I/O引脚分为4组,分别为:Port0(Pin32toPin39),Port1(Pin0toPin7),Port2(Pin21toPin28)和Port3(Pin10toPin17)。其中Port3中的所有引脚都有2个功能。STC89C52单片机有6个中断:2个外部中断;3个定时器中断和1个串口中断。每一个中断都可以被单独启用或禁用。该单片机模块不具备I2C总线通信模块。系统的硬件组成原理图及实物图如图2,图3所示。168第21期徐泽,等:基于单片机的汽车前照灯远近光自动切换系统片内集成度高,在本系统中仅用了5个片外电容。2.3传感器模块本系统采用的光敏传感器是ROHM公司出品的BH1750FVI光照度传感器,实物图如图5所示。该传感器内部集成A/D转换模块,采用I2C总线通信协议,16位数字输出。该传感器的优点在于分辨率高,其光强测量范围为1~65535lx。选用该传感器的一个重要原因在于其拥有接近人眼视觉的光谱灵敏度特性,光源依赖性弱,日光、白炽灯、卤素灯、氙灯都可以,并且几乎不受红外线的影响。2.4显示模块本系统采用的显示器是LCD1602工业字符型液晶,实物图如图6所示。1602液晶显示屏是一种专门用来显示字母、数字、符号等的点阵型液晶模块,采用标准的16脚接口,其中几个编程常用的主要管脚分别是:第4脚寄存器选择(RS),读写信号线(RW)和使能端[5]。在寄存器选择中,高电平1代表选择数据寄存器,低电平0代表选择指令寄存器。在读/写信号中,高电平1进行读操作,低电平0进行写操作。在使能端中,高电平1时读取信息,负跳变时执行指令。图5光照度传感器图6显示模块实物图2.5电源模块在电源模块上,本系统选用USB接口进行5V供电。3软件设计整个系统需要程序操作的部件主要有传感器模块、LCD1602液晶显示器及用8个LED灯模拟的汽车前照灯。因此,程序部分主要分为液晶显示部分,传感器驱动部分及LED控制策略及延时函数。3.1传感器驱动模拟I2C通信总线的时钟线与数据线。voidBH1750_Start()//起始信号{SDA=1;//拉高数据线SCL=1;//拉高时钟线Delay5us();//延时5μsSDA=0;//产生下降沿Delay5us();//延时5μsSCL=0;//拉低时钟线}voidBH1750_Stop()//停止信号{SDA=0;//拉低数据线SCL=1;//拉高时钟线Delay5us();//延时5μsSDA=1;//产生上升沿Delay5us();//延时5μs}voidBH1750_SendACK(bitack)//应答信号{SDA=ack;//写应答信号SCL=1;//拉高时钟线Delay5us();//延时5μsSCL=0;//拉低时钟线Delay5us();//延时5μs}bitBH1750_RecvACK()//接收应答信号{SCL=1;//拉高时钟线Delay5us();//延时5μsCY=SDA;//读应答信号SCL=0;//拉低时钟线Delay5us();//延时5μsreturnCY;}voidBH1750_SendByte(BYTEdat)//发送数据{BYTEi;for(i=0;i8;i++)//8位计数器{dat=1;//移出数据的最高位SDA=CY;//送数据口SCL=1;//拉高时钟线Delay5us();//延时SCL=0;//拉低时钟线Delay5us();//延时}BH1750_RecvACK();}BYTEBH1750_RecvByte()//接收数据{BYTEi;BYTEdat=0;SDA=1;//使能内部上拉,准备读取数据for(i=0;i8;i++){dat=1;SCL=1;//拉高时钟线Delay5us();//延时5μsdat|=SDA;//读数据SCL=0;//拉低时钟线Delay5us();//延时5μs}returndat;}用STC89C52单片机驱动BH1750FVI传感器的主要难点在于该单片机没有I2C总线功能,需要单片机的两个引脚分别充当时钟线与数据线[6],因此需要不停地改变这两个引脚的电平高低来模拟时钟信号与数据信号。169现代电子技术2015年第38卷3.2LCD1602显示程序控制LCD1602主要分为写命令,写数据,初始化三部分,部分程序如下:voidwrite_com(ucharcom)//写指令{lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}voidwrite_data(uchardat)//写数据{lcdrs=1;P0=dat;delay(5);lcden=1;delay(5);lcden=0;}voidinit()//初始化{dula=0;wela=0;lcden=0;write_com(0x38);write_com(0x0f);write_com(0x06);write_com(0x01);write_com(0x80);}3.3LED控制策略系统采用8个LED灯来代表汽车前照灯,在程序中分为5种情况来表示,即8个全亮,亮6个,亮4个,亮2个,全灭。采用if语句实现该控制,部分程序如下:if(a=100)P2=0xff;if(100a&&a=150)P2=0xfc;if(150a&&a=200)P2=0xf0;if(200a&&a=250)P2=0xc0;if(250a&&a=300)P2=0;4结语相比于目前市面上的汽车前照灯系统,能够自动切换远近光的前照灯系统,大大降低了不安全事故的发生。本文设计的汽车前照灯远近光自动切换系统,通过测试,当有汽车靠近装有自动切换的前照灯系统时,在一定的车距范围内,该系统的远光灯切换成近光灯;反之,能将近光灯切换成远光灯。本系统在商业化的进程中有很好的精确性和稳定性。参考文献[1]李朝清.单片机原理及接口技术[M].北京:北京