Automotive Lighting Control Circuit Design Based on MCU

Page 1

Scientific Journal of Information Engineering December 2015, Volume 5, Issue 6, PP.190-195

Automotive Lighting Control Circuit Design Based on MCU Ruonan Sun †, Jian Xu Beijing University of Agriculture, Beijing 102206, China †

Email: 597369409@qq.com

Abstract This design is based on MCU, using stepper motor machine to control car’s light. And there are two kinds of modes to turn on the lights, automatic and manual. The external light made by automatic mode detects converts digital quantity and inputs it to the MCU through the A/D converter. In manual code the button is used to select whether the car’s lights are on. The design of hardware circuit includes: MCU minimum system circuit, reset circuit, independent key circuit, the stepper motor and driving circuit, relay control lamp and driving circuit, and photosensitive resistance detection and A/D converter circuit. The part of software includes: the main function, the system initialization function, delay function, TLC549 collection function, automatic control function, manual control function and motor control function. In this design, we use Proteus software and Keil C51 software to simulate the circuit design. The light controlled circuit based on MCU is simple. It has low production costs, and it is easy to detect and maintain in the future. Keywords: AT89C51; Stepper Motor; Relay; TLC549; ULN2003

基于单片机的汽车灯光控制电路设计 孙若男,徐践 北京农学院,北京 102206 摘 要:以单片机作为平台,利用步进电机控制汽车的远近灯光,并有自动与手动两种模式来开启灯光。在自动模式下, 通过光敏电阻检测外界光强,并将检测到的模拟电压值经过 A/D 转换器转换成数字量输入到单片机,从而控制汽车是否 亮灯;在手动模式下,利用按键选择汽车是否亮灯。本设计硬件电路部分包括:单片机最小系统电路、复位电路、独立 按键电路、步进电机及驱动电路、继电器控制灯及驱动电路和光敏电阻检测及 A/D 转换电路。软件部分包含有:主函 数、系统初始化函数、延时函数、检测按键函数、TLC549 采集函数、自动控制函数、手动控制函数和电机控制函数。 运用 Proteus 软件及 Keil C51 软件的联调对该电路设计进行仿真。基于单片机的汽车灯光控制电路设计,其电路设计比较 简单,制作成本较低,便于后期的检测与维护。 关键词:AT89C51;步进电机;继电器;TLC549;ULN2003

引言 当今社会,随着科学技术的发展,人们生活质量的提高,汽车的数量在大大增加,由此引起的安全问 题也逐渐严重。汽车的灯光控制对安全行驶有着十分重要的作用。所以,对于解决交通安全问题来说,研 究和改进汽车的灯光控制就是一种好的方式。 传统的汽车工业使用的电路为纯硬件设计,电路不仅仅是复杂,而且检测维修也耗费时间,花费精 力。由于纯硬件电路的局限性,其功能和性能无法随意更改,所以汽车的控制系统正在朝着智能化的方向 发展,使得传统的电路设计更加简单、更加智能。随着电子技术的发展,电子器件在汽车系统中的广泛应 - 190 http://www.sjie.org


用,汽车这一产品的自动控制作用日益增强。谈到自动控制就会涉及到对单片机的控制,单片机的使用有 利于产品向着小型化、智能化的方向发展。因此,采用单片机控制的汽车灯光具有较高的可靠性。其好处 在于,首先,应用单片机的控制原理,通过软件设计来实现其控制功能,不仅可以达到精确控制,还可以 延长使用寿命。其次,可通过扩展外围电路来实现更多的功能。最后,这种电路设计简单、体积小、性能 高、价格低,对硬件设备要求不高,便于检测维修,符合现代汽车工业的发展潮流。 但是,灯光控制在现代汽车中都存在,低端车基本上为纯手动控制,而中、高端车有手动控制、自动 控制两种模式。所以,自动控制在汽车的灯光控制上已经不足为奇。此次想法来源于汽车灯光改造,即利 用报废的汽车大灯总成改造为低端车升级灯光控制电路。现在市面上,有越来越多的商家在进行汽车大灯 总成改造,但其用到的废旧总成都属于电磁方式,不仅控制简单,而且功能单一。然而,对于采用步进电 机控制的大灯总成的改造基本没有,这部分大灯总成一旦报废基本上就会处于弃用的状态。因为一般改造 灯光的商家没有技术和能力来采用这样改造灯光的方式。因此,采用单片机控制步进电机从而控制远近灯 光的思路,再将自动模式和手动模式结合到一起,成为新型的汽车大灯总成。 总之,基于单片机的汽车灯光控制电路设计在汽车的单片机设计中占有重要地位。只有使汽车的灯光控 制更加可靠、更加智能,才能使汽车的先进性有更大的提高,最重要的是对于行车安全才会有更好的保障。

1

总体设计方案选定 (1)本次设计采用 AT89C51 单片机作为主控芯片,完成汽车灯光控制电路的设计。AT89C51 是一种

低电压、高性能 CMOS 8 位微控制器,具有 4K 字节 FLASH 存储器[1]。通过使用单片机的 I/O 端口,利用其 控制的灵活性,完成设计的基本要求。 (2)本设计通过按键控制,实现三种状态的选择,分别为手动状态、自动状态、汽车灯光的远近控制 状态。 (3)手动状态由按键一选择。按下按键后,由单片机控制继电器的通断,进而控制汽车车灯的亮灭。 由于选用灯泡为 12V,单片机为 5V 供电,因此需要 5V/12V 的电磁常开型继电器对灯泡加以控制。其中, 继电器还需要 ULN2003 芯片驱动[2]。 (4)自动状态由按键二选择。按下按键后,通过光敏电阻对外界的光强加以判断。光照强度越小,光 敏电阻阻值越大。因此,无光时,单片机控制继电器接通,汽车车灯亮;强光时,单片机控制继电器断 开,汽车车灯灭。其中,采集到的模拟电压值经过 TLC549 芯片转换为数字量输入给单片机,控制继电器的 通断。 (5)汽车灯光的远近控制状态由按键三选择,而灯光的远近变换则由步进电机实现。按下按键后,单 片机控制步进电机转动,步进电机控制一个挡板的旋转,从而决定是远、近灯光。其中,还需要 ULN2003 芯片驱动步进电机转动[3]。 如图 1 所示为汽车灯光控制电路总体方案方框图。

单片机 AT89C51

5V 电源

TLC549

光敏电阻检测

步进电机 ULN2003

复位电路

继电器

图 1 汽车灯光控制电路总体方案框图 - 191 http://www.sjie.org

12V 灯泡


2

硬件电路设计 汽车灯光控制电路设计的主控器件是 AT89C51 单片机,其硬件电路主要包括:单片机最小系统电路、

复位电路[4]、独立按键电路[5]、步进电机及驱动电路、继电器控制灯及驱动电路、光敏电阻检测及 A/D 转换 电路。 本系统在硬件设计上有三个独立按键,系统启动后,灯不亮。若按下按键一,则为开启了手动模式, 此时,灯亮;若第二次按下按键一,则为关闭了手动模式,此时,灯灭。若按下按键二,则为开启了自动 模式,根据光敏电阻检测到的光照强度进而控制灯的亮灭;若第二次按下按键二,则为关闭了自动模式。 在按键一或者是按键二按下的基础上,若按下按键三,则为控制步进电机转动,从而控制挡板的转动,实 现远近灯光的变换;若第二次按下按键三,则步进电机停止转动。 单片机的 VCC 引脚接 5V 电源电压,为电源正极。GND 引脚为单片机的电源接地端。单片机的第 18 引脚 XTAL2 和 19 引脚 XTAL1 外接 12MHz 的石英晶振,再和晶振并联两个瓷片电容,通常选取为 30pF 左 右,构成时钟电路。单片机的 P1 口、P2 口和 P3 口为 8 位准双向口,其内部具有上拉电阻。而 P0 口为 8 位 双向口,为漏极开路输出,在用作普通的 I/O 口使用时需要外接上拉电阻,只有在用作地址/数据复用这一 情况时不需要接上拉电阻。本设计的 P0 口作为 TLC549 芯片的使能端口和时钟信号输出口,以及作为 A/D 转换的数据输入口,因此,需要外接 4.7K 的上拉电阻。单片机的 EA 引脚,当 EA=0 时,程序从外部 ROM 开始执行;当 EA=1 时,程序从内部 ROM 开始执行。因此,EA 引脚接高电平。 系统的总体电路原理图如图 2 所示。

图 2 系统总体电路原理图

3

软件程序设计 本设计采用 C 语言进行程序的编写。C 语言简洁,使用起来方便,而且运算符和数据类型相当丰富。 - 192 http://www.sjie.org


同时,C 语言具有结构化的控制语句,语法限制不严格,程序设计自由度大,还可以直接访问物理地址,并 实现汇编语言的大多数功能,C 语言可移植性好、硬件控制能力高、表达和运算能力强[6]。软件部分包含 有:系统的初始化函数、延时函数、检测按键函数、TLC549 采集函数、手动控制函数、自动控制函数、电 机控制函数和主函数。该程序的编写由 Keil C51 软件编写完成。 程序流程图如图 3 所示。

开始

初始化

状态检测 KEY2

KEY1 手动状态

自动状态

无光 否

灯亮 是

灯灭 否

远近 灯光

是 电机转

图 3 程序流程图

4

系统的仿真与调试 系统在制作与仿真过程中,主要用到了 Keil C51 软件和 Proteus 软件。Keil C51 软件主要用于单片机程

序的编写,Proteus 软件主要用于电路原理图的绘制。 用 Proteus 软件对单片机进行仿真时,会涉及到 Proteus 与 Keil 的联调问题,即将 Keil 软件生成的 Hex 文件,放在 Proteus 里加载。 对 Proteus 软件和 Keil 软件分别进行相应的设置,即可实现两者的联合使用。在初始设置时,会使用到 VDM51.dll 文件,将该文件复制到 C:\Program Files\keilC\C51\BIN 目录中,用记事本的方式打开 C:\Program Files\keilC\TOOLS.INI 文 件 , 并 在 [C51] 下 添 加 TDRV8=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver"),“TDRV8”中的“8”要依据实际情况而定,只要不和其上方原有的重复即可。 在 Proteus 软件中,左键双击 AT89C51 器件,选择要加载的可执行的 Hex 文件,点击 OK。单击仿真运 行开始按钮,就可以清楚地看到每一个端口处高低电平的变化。红色小方框表示高电平,蓝色小方框表示 低电平,灰色小方框表示高低电平未知。 - 193 http://www.sjie.org


首先,通过查阅资料了解所选用器件的型号、功能,以及器件各个引脚的连接方式、注意事项。然 后,再进行整体电路原理图的绘制,并仔细检查器件是否有使用错误,电路是否存在连线错误。 其次,在使用 Keil 软件编写程序时,要熟悉掌握 Keil 的使用以及单片机的编程特点。要对程序不断地 进行调试、编译,以优化程序,直到程序不再出现任何错误、警告,能够正常运行。 最后,在硬件和软件都没有问题、调试完成后,就要把汽车灯光控制电路设计的硬件和软件结合起 来,进行系统的联调,测试系统的各项性能,检查系统能否实现预期的任务。在出现问题时,要对程序和 电路作以适当的修改、完善,直到系统可以正常运行,实现预期要求。 本系统在调试过程中,采用分块调试的方法进行系统的调试。依次是手动控制模块、自动控制模块、 电机控制模块。这样分步进行可以清楚地了解到是在什么地方出了问题,方便程序和电路的修改。 系统的仿真结果如图 4 所示。

图 4 系统的仿真结果

5

结语 汽车灯光控制系统在设计上有一定的优点,但是仍然存在着诸多的不足,还有许多需要改进的地方。 系统优点如下: (1)本设计考虑到汽车车灯在实际当中是 12V 灯泡,因此在 Proteus 仿真中没有选择发光二极管,而

是采用了大功率的 12V 灯泡。 (2)由于灯泡选用 12V 大功率灯,而单片机所能提供的只有 5V 直流电压,20 毫安的电流。因此,如 果只是单纯的依靠单片机来向灯泡提供电压是无法实现灯的亮灭。本设计采用电磁型常开继电器作为一个 电子开关来实现对灯的控制,单片机连接继电器的 5V 输入回路,灯泡连接继电器的 12V 输出回路。 (3)本设计采用步进电机控制挡板的旋转,从而实现远近灯光的变换。只用一个灯泡即可实现远光灯 和近光灯,节约了资源。 系统的缺陷及改进措施: (1)在软件设计上没有做到模块化编程,即将各模块的功能函数封装到不同的 c 文件中,再将变量、 函数等等在相应的.h 文件中进行声明,方便程序的修改、调试和移植。建议采取模块化结构编写程序。 - 194 http://www.sjie.org


(2)本设计只是对汽车的远近灯光实现了控制,并没有对汽车的全部信号灯包括:方向灯、刹车灯、 雾灯、尾灯给以设计。建议对系统进行扩展,完善汽车灯光控制。 系统在制作过程当中出现了许多问题,但都已经得到了解决。现列举以下几个问题和解决方法,望读 者注意。 (1)在编写检测按键函数时,没有对按键进行消抖处理,导致在按键仿真时,结果不理想。因此,一 定要注意按键消抖和松手检测。 (2)在使用 ULN2003 驱动芯片驱动步进电机转动时,电机始终不转。经查阅资料了解到,ULN2003 是集电极开路输出,因此需要在其输出端外接上拉电阻。接上电阻后,电机开始转动。 (3)A/D 转换芯片刚开始使用的是 ADC0809 数模转换器,但是由于 Proteus 软件无法对 ADC0809 芯 片进行仿真,因此,采用了 TLC549 芯片作为 A/D 转换器,并且 TLC549 芯片为串行转换器,大大的节约了 资源。

致谢 在设计系统实现过程当中,感谢各位老师对我的悉心指导,各位同学对我的无私帮助,同时,参考、 借鉴了大量的国内外著作,在此向这些学术界的前辈们致以敬意、表示感谢。

REFERENCES [1]

Atmel Corporation, AT89C51 8-bit Microcontroller with 4KB flash, 2002: 8-12

[2]

Yan Xuanjiang, Zheng Zhenjie, You Dezhi, SCM connecting ULN2003 stepper motor driver application [M]. Electromechanical components, 2010, 30(3): 28-31

[3]

Lu Chao. Stepping motor control system based Proteus Simulation Design [M]. Laboratory Research and Exploration, 2010, 29(6): 54-57

[4]

Zhang Youde, Zhao Zhiying, Tu Liang. The principle, application and experiment of single chip microcomputer [M]. Shanghai: Fudan University Press, 2003: 40-42

[5]

Li Quanli, Zhong Weifeng, Xu Jun. SCM principle and application [M]. Beijing: Tsinghua University Press, 2006: 24-25

[6]

Tan Haoqiang. C Programming [M]. Beijing: Tsinghua University Press, 2010

【作者简介】 1

孙若男(1992-),女,汉族,学士,

研究方向:信息化建设,学习经历:

2

徐践(1966-),男,汉族,博士,教授,研究方向:农业

信息化、教育信息化。Email: bjnxy@126.com

2011~2015 , 河 北 大 学 工 商 学 院 , 大 学;2015至今,北京农学院,研究生。 Email: 597369409@qq.com

- 195 http://www.sjie.org


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.