光电系统课程设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
光电系统课程设计
设计题目:光电烟雾报警器系统设计指导老师:XXX
班级:XXX
设计者姓名:XXX
设计者学号:XXX
同组者姓名:XXX
设计者联系电话:XXX
目录
一、摘要
二、技术指标
三、基本原理
四、方案论证
五、硬件电路设计
六、软件设计(含程序流程图)
七、测试报告
八、结论
九、心得体会
十、参考文献
十一、附录
一、摘要
现代社会随着各种电器的普遍使用,加之天气趋暖,火灾时有发生。光电式烟雾火灾报警器也运用在越来越多的场合中,作为在校学生,我们设计了一款基于单片机控制、通信的烟雾报警系统,它能在一定模拟条件下进行烟雾报警并显示温度、日期。本论文主要介绍了此系统的组成部分及其功能,并回顾实验过程,总结经验收获。
二、技术指标
显示屏方面:在单片机程序运行时要求能实时显示环境温度及时间,而且能通过按键来调整时间;
温度传感器方面:在环境温度高于50摄氏度并且持续至少5秒时,蜂鸣器响起报警;可测温度为-50℃~150℃;
烟雾传感器方面:在烟雾浓度达到一定值使红外发射管、接收管两端电压达到500MV(通常环境下为200MV)时,蜂鸣器响起报警。
三、基本原理
在相对封闭黑暗的环境下,红外发射管和接收管在电路中维持一定的电压差,这是由它们的发射接收特性所决定的。当有烟雾进入并且达到一定浓度时,红外发射管发出的红外光发生散射进入红外接收管,这使得它们的电压差增大。通过程序根据实际条件设置一定阈值,当电压差高于这一阈值时,电路触发蜂鸣器响起报警。
LM35的输出电压与环境的摄氏温度成线性光系,当环境温度达到一定值时,它的输出电压对应达到一定值。利用单片机程序设置的阈值在环境温度达到一定值时,电路触发蜂鸣器响起报警。
四、方案论证
连接好线路实验中发现,烟雾报警器线路部分的光电发射管和接收管的电压差与它们的距离以及所呈的角度有关。在设置好一定距离和角度后,我们通过吸入一定烟吐出制造“烟雾”,实验中发现它们的最大压差相比于正常情况只增加了大约200~300毫伏。为了让烟雾进入后产生的实验现象明显,我们决定调整两管的距离和角度使它们的压差在初始情况下的值较小,大概为100毫伏左右,这样在“烟雾”进入后增长才比较明显。经过多次实验发现此方案可行,对设置阈值有一个很好的参考。
对温度传感器电路部分,我们做实验时为了使周围环境温度升高,我们准备了一杯热开水,通过示波器记录温度传感器在常温及环境温度升高后的输出电压。实验发现环境温度升高后输出电压增大了一倍达到900毫伏左右,由此可见此温度传感器的设计方案可行。下面附上一些实验时拍摄的照片:
五、硬件电路设计
烟雾传感器电路设计:
红外光电发射管和接收管保持一定的距离和角度,接收管的输出电压经过滤波电路后再通过两级放大电路放大接收管的输出电压,在两级放大电路中间还有滤波整流电路来减弱环境噪声的影响。整个烟雾传感器的电路组成如图上所示。
温度传感器电路设计:
Lm35传感器是一个三端输出温度传感器,其最终电压输出端经过一些电容滤掉高频部分,再通过一电压跟随器与电压放大电路使最终输出能够稳定。以上就是温度传感器电路设计硬件图。
按键复位电路:
由一个按键及插座、相应的一些电阻电容组成,通过单片机软件,在按下按键5时,电路实现复位。
电源硬件电路:
调节时间按键硬件电路:
显示屏硬件电路:
单片机通信电路设计:
蜂鸣器电路:
六、软件设计
相关软件程序设计如下:
#include "C8051F310.h"
#include "math.h"
sbit RS=P1^4; 定义按键及其接口信息sbit RW=P1^5;
sbit E=P1^6;
sbit Acc_b=ACC^7;
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^3;
sbit FM=P0^7;
sfr16 ADC0=0x0BD;
unsigned int yan=0,tem=0; 设置初始值unsigned char hour=0,min=0,sec=0,cnt=0;
unsigned char r=0;
unsigned char s=0,temp=0;
/*
void Busy();
void print();
void PCA_Init();
void Timer_Init();
void ADC_Init() ;
void Voltage_Reference_Init() ;
void Port_IO_Init() ;
void Oscillator_Init();
void Init_Device(void);
void dis (unsigned char *); */
void PCA_Init() 关闭看门狗程序{
PCA0MD &= ~0x40;
PCA0MD = 0x00;
}
void Timer_Init() 设置定时初始值
{
TMOD = 0x01;
}
void ADC_Init() 设置AD转换
{
ADC0CN = 0x80;
}
void Voltage_Reference_Init() 设置参考阈值电压{
REF0CN = 0x08;
}
void Port_IO_Init() 设置T0中断
{
// P0.0 - Unassigned, Open-Drain, Digital
// P0.1 - Unassigned, Open-Drain, Digital