路灯控制设计文档格式.docx

上传人:b****4 文档编号:8043475 上传时间:2023-05-09 格式:DOCX 页数:47 大小:502.49KB
下载 相关 举报
路灯控制设计文档格式.docx_第1页
第1页 / 共47页
路灯控制设计文档格式.docx_第2页
第2页 / 共47页
路灯控制设计文档格式.docx_第3页
第3页 / 共47页
路灯控制设计文档格式.docx_第4页
第4页 / 共47页
路灯控制设计文档格式.docx_第5页
第5页 / 共47页
路灯控制设计文档格式.docx_第6页
第6页 / 共47页
路灯控制设计文档格式.docx_第7页
第7页 / 共47页
路灯控制设计文档格式.docx_第8页
第8页 / 共47页
路灯控制设计文档格式.docx_第9页
第9页 / 共47页
路灯控制设计文档格式.docx_第10页
第10页 / 共47页
路灯控制设计文档格式.docx_第11页
第11页 / 共47页
路灯控制设计文档格式.docx_第12页
第12页 / 共47页
路灯控制设计文档格式.docx_第13页
第13页 / 共47页
路灯控制设计文档格式.docx_第14页
第14页 / 共47页
路灯控制设计文档格式.docx_第15页
第15页 / 共47页
路灯控制设计文档格式.docx_第16页
第16页 / 共47页
路灯控制设计文档格式.docx_第17页
第17页 / 共47页
路灯控制设计文档格式.docx_第18页
第18页 / 共47页
路灯控制设计文档格式.docx_第19页
第19页 / 共47页
路灯控制设计文档格式.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

路灯控制设计文档格式.docx

《路灯控制设计文档格式.docx》由会员分享,可在线阅读,更多相关《路灯控制设计文档格式.docx(47页珍藏版)》请在冰点文库上搜索。

路灯控制设计文档格式.docx

(3)支路控制器应能根据交通情况自动调节亮灯状态:

当可移动物体M(在物体前端标出定位点,由定位点确定物体位置)由左至右到达S点时(见图2),灯1亮;

当物体M到达B点时,灯1灭,灯2亮;

若物体M由右至左移动时,则亮灯次序与上相反。

(4)支路控制器能分别独立控制每只路灯的开灯和关灯时间。

(5)当路灯出现故障时(灯不亮),支路控制器应发出声光报警信号,并显示有故障路灯的地址编号。

2.发挥部分

(1)自制单元控制器中的LED灯恒流驱动电源。

(2)单元控制器具有调光功能,路灯驱动电源输出功率能在规定时间按设定要求自动减小,该功率应能在20%~100%范围内设定并调节,调节误差≤2%。

(3)其它(性价比等)。

二、方案论证与比较

方案一:

题目要求设计一个模拟路灯控制系统,实现支路控制器对单元控制器的有效控制。

本系统采用ATMEGA16L单片机为主控芯片,采用对射式收发一体的光电传感器采集由于物体运动所产生的信号,再由支路控制器系统对信号进行处理实现对路灯的合理控制,以达到题目要求。

支路控制器的时钟采用精确的时钟芯片并由字符型液晶作为显示,利用按键设定、修改开关灯时间。

系统采用光敏电阻分压的方式感应周围环境明暗的变化,支路控制系统采集分压值经单片机处理后来控制路灯的变化。

当路灯出现故障后路灯电路中采样点的电压值会发生变化,单片机根据变化量进行相应的处理。

基于设计思路在设计过程中选择合适的元器件,使用合适的单元电路模块,更有效的达到设计要求。

方案二:

与方案一不同的是方案二选用AT89S52芯片,采用红外对管对物体的移动进行检测,时钟由单片机定时器实现。

方案比较:

与AT89S52相比,ATMEGA16L在性能上具有明显的优势,若采用红外对管则给元件的安装带来不便,且不易调试;

由单片机定时器实现的时钟不准确,故采用方案一。

三、总体设计方案

本系统以ATMEGA16L为控制核心。

整个系统硬件框图如图1所示:

图3系统框图

ATMEGA16L单片机芯片介绍

引脚

功能

VCC

数字电路的电源

GND

端口A(PA7~PA0)

端口A作为A/D转换器的模拟输入端

端口B(PB7~PB0)

端口B为8为双向I/O口,具有可编程的内部上拉电阻

端口C(PC7~PC0)

端口C为8为双向I/O口,具有可编程的内部上拉电阻

端口D(PD7~PD0)

端口D为8为双向I/O口,具有可编程的内部上拉电阻

RESET

复位输入引脚。

持续时间超过最小门限时间的低电平将引起系统复位

XTAL1

反向振荡放大器与片内时钟操作电路的输入端

XTAL2

反向振荡放大器的输出端

AVCC

AVCC是端口A与A/D转换器的电源。

不使用ADC时,该引脚应直接与VCC链接,使用ADC

AREF

A/D的模拟基准输入引脚

1.支路控制系统设计

图4最小系统

支路控制系统是模拟路灯控制系统的核心,该系统采用ATMEL公司的ATMEGA16L单片机作为主控制芯片来实现对受控对象的控制。

与AT89S52相比,ATMEGA16L是一款高性能、低功耗的8位AVR微处理器,具有速度快、输出电流大、工作电压范围宽、成本低等优点,是一款性价比很高的单片机。

(1)复位模块

Mega16已经内置了上电复位设计。

并且在熔丝位里,可以控制复位时的额外时间,故AVR外部的复位线路在上电时,可以设计得很简单:

直接拉一只10K的电阻到VCC即可。

为了可靠,再加上一只10uF的电容以消除干扰、杂波。

当AVR在工作时,按下S7开关时,复位脚变成低电平,触发AVR芯片复位。

(2)晶振模块

早期的90S系列,晶振两端均需要接22uF左右的电容。

Mega系列实际应用时,这两只小电容不接也能正常。

不过为了线路的规范化,建议接上。

(3)时钟模块

图5时钟电路

为实现精确的时钟功能并节省单片机IO口资源,该设计使用专用的接口方式为串行的时钟芯片DS1302,该芯片线路简单、体积小,易于操作,且价格低廉。

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

DS1302内部有一个31×

8的用于临时性存放数据的RAM寄存器。

DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。

另外该芯片有备份电源引脚,可以在断电后仍能工作,以保证时钟的准确性。

DS1302与单片机之间能简单的采用同步串行方式进行通信,仅需用到三个口线:

(1)RES(复位),

(2)I/O(数据线),(3)SCLK(串行时钟)。

X1和X2是振荡源,外接32.768kHz晶振。

RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。

RST输入有两种功能:

首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;

其次,RST提供终止单字节或多字节数据的传送手段。

当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。

如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。

上电运行时,在Vcc>

2.0V之前,RST必须保持低电平。

只有在SCLK为低电平时,才能将RST置为高电平。

DS1302存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。

DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。

这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。

传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;

若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。

但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。

DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。

(4)信号采集模块的设计

图6采样电路

信号采集模块包括物体检测模块和环境明暗检测模块,两者功能如下:

物体检测模块:

该模块需要检测小车的移动,并根据小车的移动进行路灯开关的自动控制。

基于此目的采用探测距离远、灵敏度高的反射式光电传感器进行检测,当传感器检测到小车时,传感器给单片机一个信号,然后单片机对路灯进行合理控制,达到题目要求。

环境明暗检测模块:

该模块需要检测环境光的变化,根据环境光的明暗进行路灯开关的自动控制。

基于此要求采用由光敏电阻组成的分压电路进行检测。

光敏电阻器又称光导管,特性是在特定光的照射下,其阻值迅速减小,可用于检测可见光。

在不同的光强下,光敏电阻的电阻值会发生明显变化,光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;

入射光强,电阻减小,入射光通过检测不同光强下电阻值的变化量来控制路灯的开和关。

(5)显示、按键模块

图71602显示及按键电路

通过按键可以调节和设定路灯的开关时间,控制整条支路按时开灯和关灯,并在字符液晶上显示出来。

字符型液晶因具有体积小、功耗低、寿命长、价格低、接口控制方便及显示操作简单等优点而被广泛应用。

我们这里用到的是1602液晶,1602液晶为5V电压驱动,带背光,可显示2行,每行16个字符,不能显示汉字,内置128个字符的ASCII字符集库,只有并口接口,无串口接口。

(6)路灯控制模块

图8路灯控制电路

该模块采用节能的1WLED灯,当电路出现故障时,单片机通过内部AD采集电路采样点的电压变化量后对数据进行处理。

(7)声光报警模块

图9声光报警电路

当系统出现故障时,蜂鸣器会发出警报声,同时报警指示灯也会点亮。

(8)ISP下载接口

ISP下载接口,不需要任何的外围零件。

使用双排2*5插座。

由于没有外围零件,故PB5(MOSI)、PB6(MISO)、PB7(SCK)、复位脚仍然可以正常使用,不受ISP的干扰。

(9)电源模块

图105V稳压电路

电源是系统中最重要的模块之一,输入电源经稳压块后输出稳定的+5V电源,用以驱动整个系统。

(10)恒流源模块

1.原理介绍:

恒流源是输出电流保持不变的电流源,而理想的恒流源为:

a)不因负载(输出电压)变化而改变。

b)不因环境温度变化而改变。

c)内阻为无限大。

 

(3-1)

恒流源之电路符号:

理想的恒流源 

实际的流源

图11恒流源

理想的恒流源,其内阻为无限大,使其电流可以全部流出外面。

实际的恒流源皆有内阻R。

2.三极管的恒流特性:

图12三极管恒流特性

从三极管特性曲线可见,工作区内的IC受IB影响,而VCE对IC的影响很微。

因此,只要IB值固定,IC亦都可以固定。

输出电流IO即是流经负载的IC。

(3-2)

电流镜电路Current 

Mirror:

电流镜是一个输入电流IS与输出电流IO相等的电路:

图13电流镜电路

Q1和Q2的特性相同,即VBE1 

VBE2,β1 

β2。

(3-3)

三极管之β受温度的影响,但利用电流镜像恒流源,不受β影响,主要依靠外接电阻R经 

Q2去决定输出电流IO(IC2 

IO)。

方案1:

图14恒流源电路

从左边看起:

基极偏压

(3-4)

所以VE=VB 

0.6=1.0V(3-5)

又因为射极电阻是1K,流经射极电阻的电流是

(3-6)

所以流经负载的电流就就是稳定的1mA

方案2.

电路图如下所示:

图19恒流源电路

图中的第一组运放电路是跟随器,对输入的电压取样电路进行阻抗变换。

最前面的双向开关负责将正负12V电压接入,这个电压是运放的供电电压,并提供给其他线路作为电源输入,C24和C25电容是运放正负电源端的滤波电容,紧靠运放电源引脚。

R11和电位器RW4组成了一个电压取样电路,通过改变电位器RW4滑动端的位置取出不同的电压值,同时这个取出的电压值也是输出电流的正比例控制值,电位器滑动头的电压就按照串联分压的方式计算得出,后端的R15和电容C20作为取出电压信号的阻容滤波电路,因为后端接的是运放的正端,电位器的滑动头不输出电流。

运放的1脚输出的电压等于3脚的电压,既是电位器滑动端的电压值。

运放上面的R12和D9是供电电源12V的指示电路,12V通过开关供给后D9发光指示电压正常。

后面的一组运放是实现电压到恒流的转换,电路中有正反馈也有负反馈,但线路是稳定的状态,计算的时候运放也是按照虚短和虚断的分析方式,C21是电压信号的滤波电容,假设第一组运放1脚输出的电压是V,第二组运放5脚正端的电压是V1,那么电阻RS1左端的电压值为2V1,因为电阻R16和R18是相同的数值。

电阻RS1右端的电压按照R13和R14分压电路计算的话数值是V1-(V-V1)=2V1-V,这样我们就可以计算出RS1两端的电压是V,所以流过RS1电阻的电流是恒定的,另外考虑到RX1和R13相对RS1和负载的阻值不在同一个数量级,比他们大好多倍,因此流过RS1的电流基本都流向负载,很少量的电流流向R13和RX1,所以输出的电流基本是恒定的。

在以上的计算中V1的数值是不确定的,他是根据负载的大小变化的,但是不论V1的数值怎么变化,通过计算可以知道流过电阻RS1的电流是不变的,以为它两端的电压是V,而V这个电压值是第一组运放的输出,在电位器不调节的时候V的数值是固定的,流过RS1的电流不变,所以输出电流也不变,实现恒流控制。

后面一组运放电路中Q4三极管的作用时增大运放的电流输出能力,因为负载比较小,运放驱动能力可能不够,R19基本没有作用在电路中,RX1可能是负载或者假负载,比如输出不接任何负载,电流基本都流过RX1,如果不接RX1,在没有负载的情况下输出就是电压最大值接近12V,在这种电压输出下,运放的正负端会有较大的压差,有可能会损坏运放358。

同时在线路的设计上也要保证负载流过恒定电流产生的电压值不能超过12V,如果超过电源供电电压,不能实现恒流工作性能。

RX1不取吧,估计也没事,取小了对负载不好,要比负载大10倍以上啊,要忽略流过他的电流

本系统采用方案2的恒流源电路,以实现系统的功能。

2.软件设计

系统流程图如下:

图10流程图

C语言表达能力和运算能力比较强,且具有很好的可移植性和硬件控制能力。

采用ICCAVR编译器。

ICCAVR是众多AVR单片机应用开发软件中的优秀软件之一,界面友好,易学易用。

四、结果分析

该系统能完成基本功能部分,传感器检测物体运动的最大误差为正负1cm,光敏电阻在正常光照情况下电阻值为2K,在强光下电阻值为200欧姆,在黑暗情况下2M.。

路灯电路正常时采样点电压为3V左右,在开路故障时电压为0V。

五、结论

硬件设计和软件设计是电子设计中不可缺少的内容,为了满足设计的功能和指标的要求,我们必须在开始设计时就考虑到硬件与软件的协调;

不然会增加软件实现时困难和复杂程度,有时即使硬件和软件单独能用,却不能使他们组成的系统工作,故在设计的过程中必须考虑软硬件的处理能力以及它们的接口是否兼容,实现软硬件的信号过渡。

六、参考文献

【1】高吉祥.全国大学生电子设计竞赛系列教程【M】.北京:

电子工业出版社.2007

【2】张志良.模拟电子技术【M】.北京:

机械工业出版社.2006

【3】何小艇.电子系统设计【M】.杭州:

浙江大学出版社.2004

【4】胡斌.元器件及实用电路解说【M】.北京:

【5】刁鸣.常用电路模块分析与设计指导【M】.北京:

清华大学出版社.2008

【6】唐竞新.数字电路基础【M】.北京:

清华大学出版社.2003

附录1系统原理图

附录2程序清单

/******************************************/

#include<

iom16v.h>

//包含型号头文件

macros.h>

//包含"

位"

操作头文件

#include"

b.c"

#defineucharunsignedchar

#defineuintunsignedint

/***************1602控制位的宏定义**************************/

#defineLCD_OUTDDRC=0XFF//数据端设为输出

#defineLCD_C_DDRDDRD|=0XE0//控制端设为输出

#defineLCD_DATAPORTC//发送数据端

#defineLCD_RS_HPORTD|=BIT(PD5);

//操作的是命令

#defineLCD_RS_LPORTD&

=~BIT(PD5);

//操作的是数据

#defineLCD_RW_HPORTD|=BIT(PD6);

//从1602读

#defineLCD_RW_LPORTD&

=~BIT(PD6);

//向1602写

#defineLCD_OE_HPORTD|=BIT(PD7);

//1602使能

#defineLCD_OE_LPORTD&

=~BIT(PD7);

//1602不使能

#defineLCDa_CURON0x0E//显示光标

#defineLCDa_CURFLA0x0F//打开光标闪烁

/******************RTC常量******************/

#defineRTC_CLKPB7

#defineRTC_DATAPB5

#defineRTC_CSPC7

#defineRD0x01

#defineWR0x00

#defineC_SEC0x80//秒

#defineC_MIN0x82//分

#defineC_HR0x84//时

#defineC_WP0x8E//控制(写保护)

#defineC_BURST0xBE//时钟多字节

#defineCLK_HALT0x80//停止时钟控制位

#defineCLK_START0x00//启动时钟

#definePROTECT0x80//写保护控制位

#defineUPROTECT0x00//写保护控制位

/***************按键常量控制位的宏定义**************************/

#defineKEY_OUTDDRA|=0XF8//按键方向定义输出

#defineKEY_INDDRA&

=0X07//按键方向定义输入

#defineKEY_DATAPINA//读按键端口

#defineKEY_OUT_HPORTA|=0XF8//按键端口输出高电平

#pragmadata:

code

constuchartable[]={0x30,0x31,0x32,0x33,0x34,

0x35,0x36,0x37,0x38,

0x39};

/************************全局变量宏定义**********/

ucharhour,hourshi,hourge,minute,minuteshi,minutege,

second,secondshi,secondge,haomiao,haomiaoshi,haomiaoge;

ucharchucun[];

//存储设置时间时的当前值

voiddelayns(uintUS)

{

uinti;

US=US*5/4;

//5/4是在8MHz晶振下,通过软件仿真反复实验得到的数值

for(i=0;

i<

US;

i++);

}

voiddelay(uintMS)

uinti,j;

MS;

i++)

for(j=0;

j<

1141;

j++);

//1141是在8MHz晶振下,通过软件仿真反复实验得到的数值

/*******************************************

函数名称:

LCD1602_write_com(ucharcom)

功能:

向1602液晶写入一个字节指令

参数:

com是指令

返回值:

/********************************************/

voidLCD1602_write_com(ucharcom)

LCD_RS_L;

LCD_RW_L;

LCD_DATA=com;

delay(5);

LCD_OE_H;

LCD_OE_L;

LCD1602_write_dat(uchardat)

向1602液晶写入一个字节数据

dat是数据

/**********************************************/

voidLCD1602_write_dat(uchardat)

{

LCD_RS_H;

LCD_DATA=dat;

LCD1602_init()

初始化1602液晶

voidLCD1602_init()

LCD_OUT;

LCD_C_DDR;

LCD1602_write_com(0X38);

//设置16*2显示,5*7点阵,8位数据接口

LCD1602_write_com(0X0C);

//设置开显示,不显示光标

LCD1602_write_com(0X01);

//显示清0,数据指针清0

LCD1602_write_com(0X06);

//写一个字符后地址指针加1

//LCD1602_write_com(0X80+0x0f);

//将数据指针定位到第一行第一个字处:

LCD1602_write_com(0X80)

///delay(5);

//写第二行时要重新定位数据指针

//write_com(0X80+0x40)

DS1302_init

初始化DS1302的数据接口

void

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2