基于STC89C51RC单片机的模拟路灯控制系统的设计Word文件下载.docx
- 文档编号:21534695
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:32
- 大小:486.06KB
基于STC89C51RC单片机的模拟路灯控制系统的设计Word文件下载.docx
《基于STC89C51RC单片机的模拟路灯控制系统的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于STC89C51RC单片机的模拟路灯控制系统的设计Word文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
第二章系统分析及硬件设计
2.1系统设计思路与方案比较论证。
2.1.1系统设计思路
根据题目要求,经过仔细分析,参考硬件软件因素,大致可以将本系统分为:
物体感应模块,时钟模块,中央控制模块,按键控制模块,显示模块。
如图2-1所示
图2-1系统整体框图
2.1.2方案论证与确立
1、央控制模块
方案一:
采用单片机控制,利用利用以C51系列为核心的单片机系统控制两盏LED开关灯时间,利用单片机的内部时钟与外部中断能够满足系统设计要求,且成本较低,适合路灯系统的大规模建设。
方案二:
采用FPGA和单片机相结和的方式路灯的控制,由于本系统只需要实现对两盏LED灯的控制,不需要大规模的FPGA。
方案三:
全部采用模拟电路模块时间。
由于本系统设计要求时间判断,环境判断,独立控制等逻辑功能,使用模拟电路导致电路的庞大复杂。
2、物体感应模块
利用红外线的物理性质来进行测量的传感器。
红外线又称红外光,它具有反射、折射、散射、干涉、吸收等性质。
任何物质,只要它本身具有一定的温度(高于绝对零度),都能辐射红外线。
红外线传感器测量时不与被测物体直接接触,因而不存在摩擦,并且有灵敏度高,响应快等优点。
采用超声波感应,超声波传感器是利用超声波的特性研制而成的传感器。
超声波是一种振动频率高于声波的机械波,由换能晶片电在压的激励下发生振动产生的,它具有频率高、波长短、绕射现象小,特别是方向性好、能够成为射线而定向传播等特点。
超声波对液体、固体的穿透本领很大,尤其是在阳光不透明的固体中,它可穿透几十米的深度。
利用激光技术进行测量的传感器。
它由激光器、激光检测器和测量电路组成。
激光传感器是新型测量仪表,它的优点是能实现无接触远距离测量,速度快,精度高,量程大,抗光、电干扰能力强等。
3、显示模块
数码管显示,由于本题要求实时显示系统时间、状态、和故障LED灯编号等,而数码管不能显示字符。
LED点阵显示,LED点阵显示虽然能显示字符和数字,但显示效果不好,且不易编程。
LCD液晶显示,LCD液晶不但能显示字符和数字,而且显示效果较好,容易编程实现。
4、时钟模块
方案一:
专用时钟芯片,直接将时钟信息存储在时钟芯片中,利用时钟芯片自带的定时器定时,中央控制模块读取该时钟芯片时钟信息,节省其系统资源提高时间精度。
方案二:
利用机械定时器件,
方案三:
利用555定时器组建定时模块555,555定时器具有成本低,性能可靠等优势,虽然能够做到精确定时但不具备储存时间信息的能力。
5、按键控制模块
方案一:
均采用轻触按键。
6、综合以上方案最后确立了各个模块所使用的方案为
中央控制模块
STC89C52
时钟模块
DS1302时钟芯片
物体检测模块
555的红外感应
显示模块
1602液晶显示器
2.2各个模块的硬件电路设计
2.2.1物体感应模块设计
1.NE555概述
NE555是属于555系列的计时IC的其中的一种型号,555系列IC的接脚功能及运用都是相容的,只是型号不同的因其价格不同其稳定度、省电、可产生的振荡频率也不大相同;
而555是一个用途很广且相当普遍的计时IC,只需少数的电阻和电容,便可产生数位电路所需的各种不同频率之脉冲信号。
NE555的特点有:
1.只需简单的电阻器、电容器,即可完成特定的振荡延时作用。
其延时范围极广,可由几微秒至几小时之久。
2.它的操作电源电压范围极大,可与TTL,CMOS等逻辑电路配合,也就是它的输出准位及输入触发准位,均能与这些逻辑系列的高、低态组合。
3.其输出端的供给电流大,可直接推动多种自动控制的负载。
4.它的计时精确度高、温度稳定度佳,且价格便宜。
表1是NE555的极限参数,不同的封装形式及不同的生产厂商的器件这些参数不尽相同,极限参数是指在不损坏器件的情况下,厂商保证的界限,并非可以工作的条件,如果超过某一环境下使用,其间的安全性将不会得到保证,这使用中应加以注意。
2.555定时器的电路结构与功能
555定时器是一种多用途的数字-模拟混合集成电路,利用它能极方便地构成施密特触发器、单稳态触发器和多谐振荡器等。
由于使用灵活、方便,所以555定时器在波形的产生与变换、测量与控制、家用电器、电子玩具等许多领域中都得到了应用。
555的电路结构如图:
图2-2555内部电路结构图
555的引脚功能如下:
1脚,(接地)-地线(或共同接地),通常被连接到电路共同接地。
2脚,(触发点)-这个脚位是触发NE555使其启动它的时间周期。
触发信号上缘电压须大于2/3VCC,下缘须低于1/3VCC。
3脚,(输出)-当时间周期开始555的输出输出脚位,移至比电源电压少1.7伏的高电位。
周期的结束输出回到O伏左右的低电位。
于高电位时的最大输出电流大约200mA。
4脚,(复位)-一个低逻辑电位送至这个脚位时会重置定时器和使输出回到一个低电位。
它通常被接到正电源或忽略不用。
5脚,(控制)-这个接脚准许由外部电压改变触发和闸限电压。
当计时器经营在稳定或振荡的运作方式下,这输入能用来改变或调整输出频率。
6脚,(重置锁定)-Pin6重置锁定并使输出呈低态。
当这个接脚的电压从1/3VCC电压以下移至2/3VCC以上时启动这个动作。
7脚,(放电)-这个接脚和主要的输出接脚有相同的电流输出能力,当输出为ON时为LOW,对地为低阻抗,当输出为OFF时为HIGH,对地为高阻抗。
8脚,(V+)-这是555个计时器IC的正电源电压端。
供应电压的范围是+4.5伏特(最小值)至+16伏特(最大值)。
参数功能特性:
•供应电压4.5-18V•输出电流225mA(max)
•上升/下降时间100ns•供应电流3-6mA
3.基于NE555的红外感应设计
红外对管原理:
直流驱动红外探测器电路的设计与参数计算电路如下图所示(图2-2)。
W1
和
R1
及D1成简单直流发光二极管驱动电路,调节
可以改变发光管的发光光强,从而节探测距离,NE555
及其外围原件构成施密特触发器,其触发电平可通过
W2调制,接收管D2
和电阻
R2
构成光电检测电路。
通过
NE555
第
3
脚输出的
TTL平可以直接驱动单片机
I/O
口。
由于
输出信号为
TTL
电平,单片机检测方便。
图2-3直流驱动红外探测器电路
2.2.2时钟模块设计
时钟模块主要功能是时间设置,主要由DS1302芯片实现,它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年等在内的实时时间信息,并可对月末日期、闰年天数自动进行调整;
它还拥有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟的连续运行。
另外,它还能提供31字节的用于高速数据暂存的RAM。
鉴于上述特点,DS1302已在许多单片机系统中得到应用,为系统提供所需的实时时钟信息。
1.DS1302芯片概述
DS1302慢速充电时钟芯片包括实时时钟/日历和31字节的静态RAM,它经过一个简单的串行接口与微处理器通信,实时时钟/日历提供秒、分、时、日、周、月和年等信息,对于小于31天的月,月末的日期自动进行调整,还包括了闰年校正的功能。
时钟的运行可以采用24小时或带AM(上午)/PM(下午)的12小时格式。
使用同步串行通信,简化了DS1302与微处理器的通信。
与时钟/RAM通信仅需三根线:
(1)
(复位)、
(2)I/O(数据线)、和(3)SCLK(串行时钟)。
数据可以以每次一个字节或多达31字节的多字节形式传送至时钟/RAM或从其中送出。
DS1302设计成为能在非常低的功耗下工作,消耗小于1微瓦的功率便能保存数据和时钟信息。
DS1302是DS1202的升级产品,除了DS1202基本的慢速充电功能外,DS1302具有的其它特点包括:
用于主电源和备份电源的双电源的双电源引脚,可编程的VCC1慢速充电器以及7个附加字节的高速暂存存储器。
2.DS1302工作原理
串行时钟芯片的主要组成部分:
移位寄存器、控制逻辑、振荡器、实时时钟以及RAM。
为了初始化任何的数据传送,把
置为高电平且把提供地址和命令的8位装入到移位寄存器,数据在SCLK的上升沿串行输入,无论是读周期还是写周期发生,也无论传送方式是单字节传送还是多字节传送,开始8位指定40个字节中的哪个将被访问。
在开始8个时钟周期把命令字装入移位寄存器之后,另外的时钟在读操作时输出数据,在写操作时输入数据。
时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加最大可达248的数。
如图2-3,引脚排列:
图2-4DS1302引脚排列
引脚说明:
X1,X2:
32,768kHz晶振引脚;
GND:
接地;
:
复位;
I/O数据输入输出;
SCLK:
串行时钟;
VCC1,VCC2:
电源引脚。
3.DS1302的电路设计
如图2-4所示,VCC1接3V电压,VCC2接+5V电源,X1,X2接晶振,I/O串行口输出,
复位端。
图2-5DS1302电路图
2.2.3中央控制模块设计
1.STC89C52单片机概述
与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:
0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。
2.STC89C52功能特性描述
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
8位微控制器8K字节在系统可编程Flash。
3.C51单片机最小系统介绍
单片机最小系统由晶振电路和复位电路构成
图2-6单片机最小系统
2.2.4显示模块设计
1.1602液晶概述
液晶是一种高分子材料,因为其特殊的物理、化学、光学特性,被广泛应用于轻薄显示器上。
本系统显示模块采用了LCD1602液晶显示器每行能够显示16个字符,可以显示两行。
主要实现系统时间设定,灯的开关时间的功能,系统状态显示。
1、读操作时序
2、写操作时序
3、时序相关参数
4.与单片机连接图
2.2硬件系统原理图
第三章软件设计与调试
3.1系统设计思路
本软件系统共包括主程序部分,物体感应部分,按键设定部分,显示部分。
通过DS1302时钟芯片将实时时钟信息输入到单片机,单片机将从时钟芯片所读信息与单片机中所设定的亮灭灯时间相对比,再参考外部总控制端确定路灯功能的开启与否。
在确定路灯功能开启的前提下,外部中断0、外部中断1与查询端口确定交通状态。
再由单片机控制两盏路灯的亮灭状态。
3.2系统各部分子程序设计
3.2.1主程序设计
主程序设计主要包括函数初始化部分,红外感应部分和按键扫描部分。
其中红外感应部分采用了两个外部中断和一个查询。
程序流程图如图3-1。
3.2.2红外中断与查询子程序设计
3.2.2.1红外中断子程序
中断子程序主要包括读取DS1302的时钟信息和设置的时钟信息相对比和对的灯方向上的判断两个方面。
程序流程图如图3-2。
图3-2
voidINT_1()interrupt2
{H2++;
//H2红外线2标志位
if(H2==2)
H2=0;
if(H2==1)/
{IR_LED1=0;
IR_LED2=1;
}
else
{IR_LED1=1;
IR_LED2=0;
};
LED1=time&
IR_LED1;
//时间控制&
红外控制
LED2=time&
IR_LED2;
}
3.2.2.2红外查询部分子程序
voidIR_Inquiry()查询部分
{if(H3==1)
{
delay1(5);
延时5ms
if(H3==1)红外查询3
{IR_LED2=~IR_LED2;
控制LED灯2发生电平偏转
}
LED2=time&
时间控制&
3.2.3按键设定程序设计
开始
按键设定程序是整个系统的核心,其中包括了对系统时间的设定,开关灯设定,总控制端设定等。
流程图如3-3。
图3-3
3.3整体系统的软件调试
MCS-51系列单片机常用的开发编程软件是KEIL软件,该软件能对C和汇编语言进行语言编译。
同时能够在KEIL软件商之间调试程序错误并且支持模块化设计缩短了开发周期减少了开发难度。
通过KEIL生成得HEX文件能在Proteus上直接仿真,能减少硬件调试中的风险和难度。
通常单片机程序开发流程有以下步骤:
1、通过对项目研究,对项目的要求进行模块化分类,设计程序流程图,再对具体模块选择不同的算法,在KEIL中编写出程序。
2、通过编译查错,在KEIL中对程序中出现的语法和逻辑的错误进行修改
3、生成HEX文件,在Proteus中画出硬件原理图仿真调试。
总结
本文介绍了以51单片机为核心的模拟路灯控制系统,并详细介绍了各个部分的功能的结构,原理,本系统所选的STC89S52芯片精度高,物体感应部分采用了基于555触发器的红外线感应模块,因而检测物体灵敏度高,具有重大的实际意义。
在论文制作的整个过程中,本人最深的体会到做任何一个项目首先必须具备的是扎实而丰富的专业知识,只有在专业知识积累到一定的程度的状态下才能置身于一个高的位置,系统分析问题解决问题。
在对待科学研究始终应该保持着严谨的态度,对于每一个环节都必须精益求精。
当然,这些都是我未来学习和工作都必须具备的,相信有了这一步,我将会走得更远。
致谢
本文的研究工作是在胡江老师的精心指导和悉心关怀下完成的,在我的设计题目的选择、实物的调试和论文的研究工作中无不倾注着指导老师辛勤的汗水和心血。
同时也要感谢帮助过我们的同学,给我们提供了宝贵的建议。
指导老师的严谨治学态度、无私的奉献精神使我深受的启迪。
从尊敬的指导老师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理,在此我要向我的指导老师致以最衷心的感谢和深深的敬意。
在这里要特别感谢的是我的队友王春燕同学,她扎实的专业知识和精湛的焊接手艺在我们这个设计当中起到了决定性的作用,在论文和软件调试中她也给我提出了一些建设性的意见。
在于她合作完成毕业设计的过程中我了解到了团队合作的重要性。
在多年的学习生活中,还得到了许多领导和老师的热情关心和帮助,在此,向所有关心和帮助过我的领导、老师、同学和朋友表示由衷的谢意!
参考文献
[1]戴佳戴卫恒.51单片机应用程序设计实例2007(11)
[2]郭天翔.51单片机C语言教程.电子工业出版社2008(11)
[3]马忠梅,籍顺心,张凯,马岩.北京航空航天大学出版社1999
(1)
[4]王宜怀,刘晓升.嵌入式应用技术基础教程.清华大学出版社2005(7)
[5]高峰.单片微型计算机原理与接口技术.科学出版社2003
(2)
[6]潘清明,刘启新.基于单片机路灯网络控制系统.中国制造业信息化.第36卷(21)
[7]基于AT89C2051+GAL16V8LED驱动电路的多功能灯光控制器
[8]基于AT89C2051+集成红外传感器+PC25阵并行通信接口设计的双机通讯的远程开关灯
[9]余锡存.单片机原理及接口技术
[10]新编555集成电路应用800例
附录
#include<
reg52.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitLCD_RS=P2^2;
sbitLCD_RW=P2^1;
sbitLCD_EN=P2^0;
sbitK1=P1^3;
sbitK2=P1^4;
sbitK3=P1^5;
sbitK4=P1^6;
sbitreset=P1^2;
sbitsclk=P1^0;
sbitio=P1^1;
/******红外控制端*******/
sbitint0=P3^2;
sbitint1=P3^3;
sbitH3=P3^4;
sbitLED2=P2^4;
sbitLED1=P2^3;
sbitBEEP=P3^7;
bitflag=1,hour=0,min=0,sec=0,hour1=0,min1=0;
bityear=0,month=0,day=0,week=0;
bitalarm_flag=0;
ucharH1,H2,H_3,IR_LED1,IR_LED2,time;
ucharL1=0,L2=0;
uchartimecount=0,count=0;
ucharcodestr1[]="
--Week:
"
;
ucharcodestr2[]="
Time:
ucharcodestr3[]="
ON:
ucharcodestr4[]="
OFF:
ucharinit[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00};
//
ucharinit1[]={0x00,0x00};
ucharinit2[]={0x00,0x59,0x23,0x01,0x05,0x01,0x06};
//秒,分,时,日,月,星期,年
ucharbj_time[]={0x00,0x00,0x00};
ucharbj_time1[]={0x00,0x00,0x00};
//秒,分,时
ucharcodemytab[8]={0x0e,0x11,0x11,0x11,0x0a,0x1f,0x04,0x00};
//小灯泡
#definedelayNOP();
{_nop_();
_nop_();
};
voidSet_W1302(ucharaddr);
voidSet_Flash(ucharrow,ucharcol);
voidSet_place(ucharrow,ucharcol);
voidPlay_nowtime();
//显示当前时间
voidkey_set(ucharnum,ucharrow,ucharcol);
//键设定函数
voidalarm_time();
//开关灯时间设定
voidPlay_alarmtime();
voidTime_compare();
//时间比较
voidIR_Inquiry();
//红外查询
voidinit_main();
//主程序初始化
/******************************************************************/
voiddelay1(intms)
{
unsignedchary;
while(ms--)
{
for(y=0;
y<
250;
y++)
_nop_();
}
/*检查LCD忙状态*/
/*lcd_busy为1时,忙,等待。
lcd-busy为0时,闲,可写指令与数据。
*/
bitlcd_busy()
{
bitresult;
LCD_RS=0;
LCD_RW=1;
LCD_EN=1;
dela
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC89C51RC 单片机 模拟 路灯 控制系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)