序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机智能远光灯系统的设计
1 硬件电路的设计
1.1 单片机控制模块设计
1.1.1 主控芯片
STC89C52一共有32个I/O口,本次设计使用24个, LCD1602显示屏模块需要11个,蜂鸣器报警模块需要1个,按键模块需要4个,超声波模块需要2个,LED模块需要3个,AD模块需要3个。该芯片具有传统52单片机所没有的特点,STC单片机的运行速度是其他公司52单片机[4]的两倍。作为一个单芯片、智能8位CPU的单片机,它可以系统内编程Flash,可用于嵌入式控制应用,同时为其提供了一个高度灵活和高效的解决方案。
主要特性如下:
(1)工作电压:5.5V~3.3V(5V SCM)/3.8V~2.0V(3V SCM);
(2) 工作频率范围:0~40MHz,等同于普通STC89C52的0~80MHz,实际工作频率可达48MHz;
(3)8K字节空间可用;
(4)集成512字节RAM;
(5)外部中断4路,下降沿中断或低电平触发电路,Power Down模式可由外部中断低电平触发中断方式唤醒[6]。
单片机所有引脚图如图1.1所示。
图1.1 STC89C52引脚图
单片机引脚的功能如下表1.1所示。
表1.1 STC89C52引脚功能表
引脚号0 | 复用功能 |
P3.0 | RXD(串行输入口) |
P3.1 | TXD(串行输出口) |
P3.2 | (外部中断0) |
P3.3 | (外部中断1) |
P3.4 | T0(定时器0的外部输入) |
P3.5 | T1(定时器1的外部输入) |
P3.6 | (外部数据存储器写选通) |
P3.7 | (外部数据存储器读选通) |
STC89C52单片机VCC口接入+5V电压即可正常工作[7],PST为复位端,P1.3和P1.4接远光灯,P1.5接近光灯,VCC(40引脚)接电源电压,VSS(20引脚)接地。
1.1.2 时钟电路设计
单片机中一个重要部分就是时钟电路,处理任何事情都要有时钟。本次单片机的时钟控制电路主要是由两个部分组成的,包括一个晶振和两个电容[8]。其中晶振为12MHz,电容为20pF,电容的作用是帮助晶振进行起振。时钟电路与单片机的XTAL1、XTAL2以及GND相连。时钟电路原理图如图1.2所示。
图1.2 时钟电路
1.1.3 复位电路设计
单片机中的引脚中RST脚为复位端。本设计的单片机复位由外部复位电路来完成。复位就是从头开始。假设单片机运行程序时发生复位,其将停止当前运行,重新开始执行。STC89C52的复位是由外部的复位电路来完成的[9]。复位电路如图1.3所示。
图1.3 复位电路
1.2 液晶显示模块电路设计
1.2.1 显示模块的选择
根据上述功能描述,对于显示模块需要能够显示足够的字符,分两行显示,每一行16个字符。针对显示模块设计如下几种方案。
(1)方案一
采用LED数码管进行数据显示块,LED数码管适用于对数字的显示。
(2)方案二
点阵数码管是采用点阵数码管设计的显示模块,点阵数码管适用于显示文字,它由八行八列的发光二极管显示器组成。
(3)方案三
使用LCD设计显示模块,液晶显示器是由单片机进行驱动,它可以显示包括数据、文字、图形等信息,整体结构美观。
方案一可以显示数据较少,不能完全实现显示功能。方案二可以显示数据较多,价格相对较高,若采用在显示数字会造成资源浪费。经比较发现,LCD液晶显示成本低、易开发且能大量显示文字符合本设计要求,并且具有功率消耗小、寿命长。故选用方案三。
1.2.2 显示模块的电路设计
本设计采用的字符型显示,以LCD1602作为显示器进行信息显示[9]。和传统的LED数码管显示器件相比,它的体积相对较小、功耗较低,并且可以显示2行16个汉字,LCD显示器已然成为了单片机应用设计中最常用的显示器件。LCD1602主要技术参数如下:
①显示容量为16×2个字符;
②芯片工作电压为4.5~5.5V;
③工作电流为2.0mA(5.0V);
④模块最佳工作电压为5.0V;
⑤字符尺寸为2.95×4.35(W×H)mm。
其具体电路原理图如图1.4所示。
图1. 4 LCD1602液晶显示电路原理图
其实物图如图1.5所示。
图1.5 LCD1602显示器实物图
1.3 远近灯光电路设计
本设计共使用了四个LED指示灯,其中D1、D2代表远光灯,D3、D4代表近光灯。LED灯实际上是一个发光二极管,其工作原理是将电能转化为光能。和普通二极管一样,LED也有一个PN结,具有单向导电性。在电路中,电阻的作用是限制电流和保护LED灯。远近光灯模块从上至下分别与单片机P1.3、P1.4、P1.5相连。其电路图如图1.6所示。
图1.6 LED远近灯光电路设计
1.4 按键电路设计
常见的设计中的按键有三种形式,导电橡胶式、触摸式键盘、机械触点式按键。导电橡胶式是将板上所有的按键制成一块,它成品体积小,不占空间,缺点是寿命较短。触摸屏键盘有美观和方便的优点,但它的价格更高。机械触控按钮采用机械弹性复位,具有体积小的优点,缺点是容易出现接触不良。结合本次设计考虑,最终选择的是机械触点式按键[11]。
在本系统中,按键与单片机引脚P3.5、P3.6、P3.7相连,按键可以设置光强切换的值和自动开启灯光的数值,可以根据实际情况、不同地区、个人习惯自行设定。其电路原理图如图1.7所示。
S2为进入设置模块,可以设置光线值,低于此值时将自动由近光灯转到远光灯。S3为加大光线切换值,S4为减小光线切换值。
图1.7 按键电路
1.5 超声波电路设计
本次设计需要一个检测距离的模块,选择了HC-SR04超声波模块[12]。超声波模块共有四个引脚,VCC为5V电源,GND接地线。在本设计中与单片机引脚P2.7和P2.6相连。其电路图如图1.8所示。
图1.8 超声波电路设计
1.6 蜂鸣器报警设计
本次设计需要一个近距离报警提醒的模块,不需要优美动听的音乐,仅仅需要声音足够清晰的报警提醒即可。报警电路通过蜂鸣器实现,声音清晰响亮,电路简单,性能可靠、稳定、成本低廉等优点。
蜂鸣器电路设计采用5V蜂鸣器模块和一个9012三极管。三极管按极性划分为两种:NPN型和PNP型三极管,本次设计选用的是PNP型三极管[13]。当检测到前方物体距离较近时,给单片机一个反馈,蜂鸣器就会报警,提醒驾驶员防止碰撞,距离较远或没有物体时则不报警,本设计中与单片机引脚P2.1相连。原理图如图1.9所示。
图1.9 蜂鸣器设计
1.7 光线检测模块设计
本次设计需要一个检测光线的模块,选择了光敏电阻。其工作原理基于内部光电效应。有光的时候,光越强,阻值就越小。电阻值迅速降低时,电阻值可小至1KΩ以下[14]。当光照射低时,呈高阻状态,电阻值为1.5MΩ。在设计中,使用光线检测模块检测外界光强,来实现外界光线弱时,自动开启机动车车灯。其原理图如图1.10所示。
图1.10 光线检测模块
图1.11 软件开发界面图
2 焊接与调试
2.1 元器件清单
本次设计以STC89C52单片机为核心[17]完成机动车智能远光灯系统设计,具体元器件如表2.1所示。
表2.1 元器件清单
元件型号 | 元件名称 | 元件标号 | 数量 |
10uF | 电容 | C1 | 1 |
20pf | 电容 | C2, C3 | 2 |
远光灯 | 灯 | D1, D2 | 2 |
近光灯 | 灯 | D3, D4 | 2 |
光敏电阻 | 光敏电阻 | GR1 | 1 |
LCD1602 | 液晶 | LCD1 | 1 |
Header 4 | 超声波 | P1 | 1 |
1K | 电阻 | R1, R2 | 2 |
2K | 电阻 | R3 | 1 |
10K | 电阻 | R4, R5, R6 | 3 |
2k | 电阻 | R7 | 1 |
SW-PB | 按键 | S1, S2, S3, S4 | 4 |
sw-灰色 | 电源开关 | SW1 | 1 |
STC89C52 | 单片机 | U1 | 1 |
ADC0832 | AD采集芯片 | U2 | 1 |
12M | 晶振 | Y1 | 1 |
2.2 电路焊接
本次设计我们采用的是手工焊接。手工焊接是最原始的方式,与机械大批量生产相比更加精细。由于本次设计布线比较密,所以在焊接前,应仔细对比电路图,确定各元件的位置,以避免焊接位置误差。在焊接过程中还应注意焊锡的使用量[18]。由于各元器件位置较近,这对焊接的技术有一定要求,若焊锡过多会导致短路的出现。这时候可以用电烙铁放在焊接处来回滑动,使用电烙铁去除多余的焊料,或使用焊料吸收器去除焊料。最终成品如图2.1图2.2所示。
图2.1 焊接背面实物图
图2.2 焊接正面实物图
2.3 系统调试
经过所有设计后,最后来到了调试阶段。在给整体上电之前,先观察下是否还存在焊接问题。例如:明显的焊接不稳定、断裂,正负极是否接反,是否有虚接,所有焊点是否遗漏等。检查无误后使用万用表进行二次检查测量,更加仔细的检查,是否存在电路问题,观察是否出现了严重的电源问题,如短路、断路等。一切正确无误后,开始软件部分的调试。
本次设计程序是Keil书写。首先要调试代码是否有误,若提示的信息中显示“error”,就要根据提示找到错误程序并改正,直到错误消失。没有问题后写入单片机中,上电,观察是否实现设计的功能。首先设定好了光检测值,低于此值后将自动开启远光灯。接下来设定好距离值,检测小于此距离将自动切换为近光灯。最后测试近距离有物体时是否报警提醒。如果功能没有实现或实现不完全、不正确,需要重新调试程序,反复进行以上操作,直到所有功能都实现为止。最终实物图如下所示。
图2.3 机动车智能灯光系统设计实物图
原理图
如果你有任何问题、需要建议或解决疑难,别客气噢,随时找我求助或寻求支持。我专注于单片机相关的知识,可以提供电子设计、嵌入式系统、编程和硬件方面的宝贵帮助。不管你的问题属于哪个领域,都可以向我咨询啦,获取有针对性的建议和指导。祝愿你在单片机设计领域取得巨大成功!