单片机警示灯课程设计报告.docx
- 文档编号:5752713
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:12
- 大小:267.77KB
单片机警示灯课程设计报告.docx
《单片机警示灯课程设计报告.docx》由会员分享,可在线阅读,更多相关《单片机警示灯课程设计报告.docx(12页珍藏版)》请在冰豆网上搜索。
单片机警示灯课程设计报告
课题名称:
单片机实验(警示灯)
学院:
专业:
姓名:
学号:
年级:
任课教师:
2016年6月11日
摘要
现在,随着微电子技术和集成电路技术的快速发展,单片机技术无处不在。
单片机作为计算机科学与技术的重要组成部分,作为嵌入式系统的先头兵,片上系统的先行者,已经被广泛应用到了各行各业,尤其是与控制相关的领域,极大的提高了产品的智能化程度和技术水平,已经成为了当今社会十分重要的技术领域。
随着社会需求和单片机应用领域的不断扩展,各类智能产品、控制系统都是以单片机技术为核心来进行开发设计的。
本系统采用MSC—51系列单片机89C51和相关的光电检测设备及设计智能路灯控制器,实现了能根据实际光线条件通过8051芯片的P3.7口控制高速公路警示灯的开关功能,并且实现对亮灯规律的控制。
随着社会文明的不断发展,高速公路的警示灯已不简单是为了给司机朋友提神,更应该是一种美的享受。
关键词:
警示灯单片机技术规律设计
1引言
1.1问题的提出
随着我国加入世界贸易组织(WTO),为了创造一个良好的投资环境,塑造一个美丽的国际化城市,更好的与国际接轨,全国各大城市的市政建设步伐都逐步加快,高速公路系统蓬勃发展,因此为公路提供更高安全可能的警示灯工程得以迅猛发展。
由于单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉等优点,因此在路灯警示灯的工程中被广泛应用。
近年来随着计算机在社会领域的渗透,单片机的应用正在不断走向深入。
单片机技术中的计时系统是单片机的一个典型的应用。
随着城市化进程的加快,城市之间高速公路的增多,为防止司机过于疲劳减
小在高速公路上发生意外的可能,特别是司机疲劳驾驶时发生意外的可能性更大,通常要开启警示灯以确保安全。
本系统采用MSC-51系列单片机89C51和相关的光电检测设备及继电设备来设计智能光控路灯控制器,实现了能根据实际光线条件通过8051芯片的P3.7口控制路灯开关的功能。
为提高警示效果,警示灯尽量工作在闪烁状态。
本次设计的是一款太阳能警示灯,电路采用太阳能电池板,具有手控和光控两种功能。
自动控制状态下,天黑以后该电路能控制警示灯自动开启,并使其工作在闪烁状态,而在白天又能将警示灯自动关闭。
也可采用手动控制,白天也可使其工作,便于调整,成本低廉,使用方便。
利用51系列单片机可编程控制八位逻辑I/O端口实现路灯的智能化,达到节能,自动控制的目的。
1.2任务与分析
本次设计的系统的控制中心是89C51单片机。
首先,在Protel软件环境中进行硬件电路图的设计。
然后在8051软件环境中进行系统的软件编程,并进行程序源文件的编译和调试,最后生成.hex文件。
此.hex文件是硬件电路运行实现的源代码来源。
把.hex文件加载到AT89C51单片机芯片,然后在Proteus软件环境中运行硬件电路,警示灯就可以正常工作了。
本设计的系统主要由:
AT89C51为中央处理芯片,用于数据的处理和初值的设定。
光敏电阻为本例的核心模块,由他提供外界环境的信息并传递给89C51用于处理,处理后的信号传递给警示灯。
本系统可分为以下三大模块:
1、AT89C51模块:
用于数据处理,和外围的时钟芯片通信,并控制时钟传输过程,采集时间信息并予以处理。
2、光敏电阻模块:
用于实现对外界环境的解读,并且传递外界的信号给89C51,这是一种简单的传递方式,在现实生活中也比较的适合。
3、程序:
包括单片机控制时钟芯片的接口程序(实现单片机和时钟芯片之间的数据传输过程)和单片机控制和输入信号的接口程序,以及用于控制警示灯闪烁的程序。
二方案介绍
2.1系统设计方案
通过查阅相关的资料,设计初期我主要从是通过外界环境控制还是人为控制做了一定的纠结,最后将两个控制系统都添加进去了,由于警示灯的闪烁频率是由系统的程序设定出的,为此,我专门在网上查找了很多资料,最后确定了红灯闪烁5下,蓝灯闪烁5下,然后共同闪烁的循环工作方式。
设计的时候有两种方案供我选择,分别是采用方案一:
使用光敏电阻直接提供给51单片机输入信号,并进行相应的后续程序操作;
方案二:
使用光敏电阻和三极管联合驱动的方式,提供给单片机输入传感信号。
(1)使用光敏电阻直接提供给51单片机输入信号,并进行相应的后续程序操作
此系统的硬件部分主要是由89C2051单片机,74LS48芯片,ULN2003芯片所组成。
该系统硬件结构简单,但是难以实现且不符合系统在现实生活中的实用性等原则。
(2)使用光敏电阻和三极管联合驱动的方式,提供给单片机输入传感信号。
此系统的硬件部分主要是由89C51单片机和其他一些时钟控制系统组成的。
系统结构简单,接口较多,既能实现需要的功能,同时也可以在其基础上扩展出更多的。
软件设计的部分,程序也比较简单,符合设计要求。
最后确定设计的方案采用第二种。
2.2系统总体框图
图2.1系统总体框图
当程序启动后,程序进入初始化阶段。
单片机将从光控电路中读出的光照强度,并经转化后形成高低电平送入单片机中,并控制警示灯的闪烁。
当需要人工调节警示灯的开关时,只需要按下人工控制电路的开关即可;如果需要调节光照强度对警示灯的控制情况,只需要调节光控电路中的调节变阻器即可调节,电阻越小,警示灯开始工作的时间越早。
三系统硬件电路设计
3.189C51单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图3.189C51单片机引脚图
89C51单片机与早期Intel的8051/8751/8031芯片的外部引脚和指令系统完全兼容,只不过用FlashROM替代了ROM/EPROM而已[3]。
89C51单片机内部结构如图所示。
3.2光敏电阻介绍
光敏电阻又称光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。
这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。
这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。
光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。
光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。
常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。
光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达1~10M欧,在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。
光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.4~0.76)μm的响应很接近,只要人眼可感受的光,都会引起它的阻值变化。
设计光控电路时,都用白炽灯泡(小电珠)光线或自然光线作控制光源,使设计大为简化。
四系统软件设计
4.1系统软件分析
任何一个应用系统,它们都有着自己的硬件系统和软件系统,少了任何一个部分都不可能称之为一个完整的应用系统,它们之间是相互依存的一个整体,硬件系统是软件系统的一个基础和前提,为软件系统提供了一个操作平台;而软件系统是硬件系统的灵魂,它对硬件系统起到扩充和完善的作用。
可想而知软件系统与硬件系统同等重要,下面为系统软件设计过程:
1.警示灯的闪烁频率
这是通过延时函数来控制灯的闪烁频率,延时函数和系统本身的机器周期有着密切的关系,延时函数是在51单片机的最小系统的晶振的控制之下来实现功能的。
2.警示灯的闪烁规律
警示灯在高速公路上,通过它的灯光闪烁来提醒周围司机谨慎驾驶,而警示灯的闪烁规律对司机的提醒程度是不同的,找到一个有效地闪烁规律是很有必要的。
所以通过程序的让警示灯同程度的闪烁就可以达到上面的效果。
3.警示灯光控和手控
光控是通过扫面与光敏电阻相连的IO口的高低电平的变化来控制警示灯的亮灭。
然而在现实生活中往往会出现某些特殊情况,白天也需要警示灯的闪烁,所以就设置了一个手动控制开光。
4.2程序流程图
(1)主程序流程图
图4.1程序流程图
主程序流程图说明:
因为警示灯的开启条件是在需要没有光照的条件下进行,既是在黑暗的条件下。
程序的初始化以后就是对接口P3.7的一个检查过程,由于P3.7口会输出一个高电平,所以应该使得在P3.7口为低电平的时候,警示灯亮,这就是光敏电阻电路所需要实现的一个功能,既判断背景光的亮度是否低于预设值,是的话,就开启警示灯。
(2)人工调节警示灯的开启流程图。
图4.2警示灯人工控制开关流程图
人工控制警示灯开关流程图说明:
当未按下控制开关时,警示灯受到光感电路控制,在白天的时候熄灭,晚上的时候亮起,在按下开关以后,系统为P3.7口提供一个低电平,用于实现控制警示灯的闪烁,按下开关以后,警示灯无条件开启,实现白天的对警示灯的开关控制。
(3)警示灯闪烁控制
图4.3警示灯闪烁控制流程图
警示灯闪烁控制说明:
警示灯通过开关开启过后,就应该有一定的闪烁规律使其能够得到一定的效果,我们这次的设计以红蓝交替闪烁为起点,循环往复闪烁,直到警示灯被芯片控制关闭。
(4)人工控制开关优先级高于光控电路开关。
图4.4人工控制与光控电路光照控制的优先级
人工控制与光控电路光照控制的优先级说明:
由于人为控制灯光开关的时间是随时的,而光控电路通过光照控制时间是有限的,所以从追求功能更完善的角度来说,应当优先考虑是否人工控制,然后再考虑光控是否成功。
这也是控制功能中比较重要的一步,它决定了警示灯是否能够在白天或者任何时刻工作的能力。
五系统调试过程
通过上面的硬件设计和软件设计过程,设计的工作已经基本完成,接下来的工作就是对所设计好的应用系统进行调试。
通过调试可以检查出系统出现的一些错误,从而进行下一步的修改。
(1)在Protel99SE中,对硬件电路图进行ERC电气规则检查。
图5.1警示灯原理图
程序经过调试显示“0错误,0警告”。
表示程序调试通过。
图5.2程序调试结果
(2)protues调试
图5.3警示灯仿真图
(3)程序
#include
#defineucharunsignedchar
sbitW=P3^7;
sbitred=P1^0;
sbitblue=P1^1;
voiddelay(ucharx);
voidshanshuo();
voidmain()
{
while
(1)
{
if(W==0)
shanshuo();
if(W==1)
{
red=1;
blue=1;
}
}
}
voiddelay(ucharx)//延时500ms误差0us
{
unsignedchara,b,c;
for(c=23;c>0;c--)
for(b=152;b>0;b--)
for(a=x;a>0;a--);
}
voidshanshuo()
{
uchara=5,b=5,c=3;
while(a--)
{
red=0;
delay(10);
red=1;
delay(10);
}
while(b--)
{
blue=0;
delay(10);
blue=1;
delay(10);
}
while(c--)
{
red=0;
blue=0;
delay(24);
red=1;
blue=1;
delay(30);
}
}
结论
本次设计在对警示灯的光感控制方面的基本要求之外,加入了更多趣味性元素,比如灯的闪烁频率、次数、个数等控制方面,还能对警示灯进行自动控制,这是一个很有意义的题目,感谢我的指导老师陈飞老师为我提供了一个这么好的题目。
我在本次设计首次采用了DS1302时钟芯片,此芯片稳定性好,并且功能强大。
而主要的芯片AT89C51单片机,在系统中作为一个处理装置,一口接受到外界给予的控制信号,并对其作出判断识别,并且执行相应的处理;本系统采用的是硬件和软件共同组合的办法,其最大特点是:
软件设计独特、可靠,硬件电路简单,安装方便易于实现,相对也比较简单,没有太多的危险。
这次的设计很有意思,也和汽车相关的知识有一定的关系,希望将来能够在这里面学到更多的知识,并且应用于汽车的内部,进一步学习到汽车内部的电子器件。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 警示 课程设计 报告