下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 光电子设计报告基于单片机的声光报警系统的设计

光电子设计报告基于单片机的声光报警系统的设计.doc

光电子设计报告基于单片机的声光报警系统的设计

张物华
2017-10-08 0人阅读 举报 0 0 暂无简介

简介:本文档为《光电子设计报告基于单片机的声光报警系统的设计doc》,可适用于综合领域

光电子设计报告基于单片机的声光报警系统的设计课程设计报告课程名称:光电子技术课程设计设计题目:基于单片机的声光报警系统的设计专业:电子科学与技术班级:姓名:学号:起止日期:指导教师:摘要近年来随着我国经济的迅速发展城乡居民的生活水平有了显著提高尤其是城镇居民的居住条件不断改善人们在解决了居住问题后日益关心的是居住是否安全。火灾时有发生对人们的各个方面造成巨大的损失。我们设计了这个声光报警器可以在火灾发生时及时报警通知居民安全逃生。另外此报警器亦可以安装于对温度要求较高的其他场合。关键词:STCC、DSB、HSB、数码管、蜂鸣器目录、设计要求、设计方案、元器件简介、单片机STCC简介、温度传感器DSB、红外接收头HSB、数码管、设计电路及原理、温度接收模块、红外发射模块、红外接收模块、数码管显示模块、蜂鸣器报警模块、LED报警模块参考文献设计总结附录、设计要求)包括电信号转化成数字信号系统数字显示系统报警系统)测量系统的性能特点等)利用光电传感器进行信号的采集及控制。、设计方案本设计通过温度传感器DSB进行数据采集采集到的信号经过单片机(STCC)处理及进行信号调制后经红外发射管将将信号发出再由红外接收头HSB接收红外信号。当温度超过某一特定温度时经单片机处理最终来实现声光报警系统的功能。红外发送编码参考了nec协议并稍作修改。定义了起始码为ms低电平和ms的高电平。低电平‘’定义为ms的低电平和ms的高电平高电平‘’定义为ms的低电平和ms的高电平。k载波采用定时器的位自动重装模式初值xf。在设计过程中使用示波器测量发送接收的波形基本一样没有误差。收发有效距离为米超过米数据显示错误本方案还有很大的提高空间。、元器件简介、单片机STCC简介图单片机电路C是INTEL公司MCS系列单片机中基本的产品它采用INTEL公司可靠的CHMOS工艺技术制造的高性能位单片机属于标准的MCS的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征它基于标准的MCS单片机体系结构和指令系统属于C增强型单片机版本集成了时钟输出和向上或向下计数器等更多的功能适合于类似马达控制等应用场合。C内置位中央处理单元、字节内部数据存储器RAM、k片内程序存储器(ROM)个双向输入输出(IO)口、个位定时计数器和个两级中断结构一个全双工串行通信口片内时钟振荡电路。标准MCS内核和指令系统片内kROM(可扩充kB外部存储器)个双向IO口xbit内部RAM(可扩充kB外部存储器)个位可编程定时计数器时钟频率MHz向上或向下定时计数器改进型快速编程脉冲算法个中断源V工作电压全双工串行通信口布尔处理器帧错误侦测层优先级中断结构自动地址识别兼容TTL和CMOS逻辑电平空闲和掉电节省模式PDIP()和PLCC()封装形式、温度传感器DSB图温度传感器电路DSB是常用的温度传感器具有体积小硬件开销低抗干扰能力强精度高的特点。独特的单线接口方式DSB在与微处理器连接时仅需要一条口线即可实现微处理器与DSB的双向通讯。测温范围,,固有测温误差(注意不是分辨率这里之前是错误的)。支持多点组网功能多个DSB可以并联在唯一的三线上最多只能并联个实现多点测温如果数量过多会使供电电源电压过低从而造成信号传输的不稳定。工作电源:~VDC(可以数据线寄生电源)在使用中不需要任何外围元件测量结果以~位数字量方式串行传送不锈钢保护管直径Φ适用于DN~,DN~DN各种介质工业管道和狭小空间设备测温标准安装螺纹MX,MX,G”任选PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接DSB温度数据格式DSB温度值指令约定代码操作说明:温度转换H启动DSB进行温度转换读暂存器BEH读暂存器字节二进制数字写暂存器EH将数据写入暂存器的TH、TL字节复制暂存器H把暂存器的TH、TL字节写到EPROM中TL字节写到暂存器TH、TL字节重新调EPROMBH把EPROM中的TH、读电源供电方式BH启动DSB发送电源供电方式的信号给主CPU、红外接收头HSB图HSB封装图红外接收探头接收红外信号频率为kHz周期约μs。红外接收电路一体化的红外接收装置将遥控信号的接收、放大、检波、整形集于一身并且输出可以让单片机识别的TTL信号这样大大简化了接收电路的复杂程度和电路的设计工作方便使用。在本系统中我们采用红外一体化接收头HSB。HSB黑色环氧树脂封装不受日光、荧光灯等光源干扰内附磁屏蔽功耗低灵敏度高。在用小功率发射管发射信号情况下其接收距离可达m。它能与TTL、COMS电路兼容。HSB为直立侧面收光型。它接收红外信号频率为kHz,周期约μs同时能对信号进行放大、检波、整形得到TTL电平的编码信号。三个管脚分别是地、V电源、解调信号输出端。图HSB内部结构图HSB接法参考图、数码管图共阳极数码管、设计电路及原理、温度接收模块图温度接收原理图、红外发射模块信号调制原理:基带信号:从信号源发出没有经过调制的原始信号特点是频率较低信号频率从开始频谱较宽。调制:就是用待传送信号去控制某个高频信号的幅度、相位、频率等参量变化的过程即用一个信号去装载另一个信号。图信号调制原理图图红外发射原理图、红外接收模块图红外接收原理图、数码管显示模块图数码管显示原理图、蜂鸣器报警模块图蜂鸣器报警模块原理图、LED报警模块图LED报警模块原理图参考文献安毓英刘继芳李庆辉冯喆珺等光电子技术(第版)北京:电子工业出版社陈益飞沈兆军孙干超等单片机原理及技术应用北京:国防工业出版社阎石数字电子技术基础(第五版)北京:高等教育出版社康华光电子技术基础模拟部分(第五版)北京:高等教育出版社孙宏国周云龙电子系统设计与实践北京:清华大学出版社设计总结在设计过程中经常会遇到这样那样的情况就是心里想老着这样的接法可以行得通但实际接上电路总是实现不了因此耗费在这上面的时间用去很多。我觉得做课程设计同时也是对课本知识的巩固和加强由于课本上的知识太多平时课间的学习并不能很好的理解和运用各个元件的功能而且考试内容有限所以在这次课程设计过程中我们了解了很多元件的功能并且对于其在电路中的使用有了更多的认识。此次课程设计学到了很多课内学不到的东西比如独立思考解决问题出现差错的随机应变和与人合作共同提高都受益非浅今后的制作应该更轻松自己也都能扛的起并高质量的完成项目。实验过程中也对团队精神的进行了考察让我们在合作起来更加默契在成功后一起体会喜悦的心情。果然是团结就是力量只有互相之间默契融洽的配合才能换来最终完美的结果。在此感谢王老师的细心指导也同样谢谢其他各组同学的无私帮助!附录、元件清单:单片机STCC(个)、温度传感器DSB(个)、红外发射二极管(个)、红外接收头HSB(个)、数码管(个)、蜂鸣器(个)、发光二极管(个)。、程序清单:)红外发送模块程序:mainc:#include<regh>sbitCarryWave=P^sbitirsend=P^voidTransData(unsignedchardata)voidCarrierWaveInit(void)voiddelayms(unsignedintt)voidConfigTimer(unsignedintms)voidTransData(unsignedchardata)externbitStartB()externbitGetBTemp(int*temp)bitflags=bitres=inttemp读取到的当前温度值unsignedcharTRH=T重载值的高字节unsignedcharTRL=T重载值的低字节unsignedcharintT,decTvoidmain(){EA=PT=ConfigTimer()CarrierWaveInit()StartB()启动DSBwhile(){TransData(intT)TransData(decT)if(flags)每秒更新一次温度{flags=res=GetBTemp(temp)读取当前温度if(res)读取成功时刷新当前温度显示{intT=temp>>intT=intTintT分离出温度值整数部分decT=tempxF分离出温度值小数部分decT=decT*a=intT整数部分数据处理b=intT}StartB()重新启动下一次转换}}}voidTransData(unsignedchardata){unsignedchariirsend=delayms()irsend=输出delayms()ms的启动低电平for(i=i<i){irsend=输出delayms()if(data(<<i)){irsend=delayms()}左移i位先发低位如果发送则高低电平比为:else{irsend=delayms()}如果发送则高低电平比为:irsend=delayms()}voidTransData(unsignedchardata){unsignedcharjfor(j=j<j){irsend=输出delayms()if(data(<<j)){irsend=delayms()}左移i位先发低位如果发送则高低电平比为:else{irsend=delayms()}如果发送则高低电平比为:}irsend=}************定时器初始化函数***************函数名:CarrierWaveInit()***参数:无***功能:K载波信号定时器初始化***返回值:无*****************************************voidCarrierWaveInit(void){EA=TMOD=xf清零T的控制位TMOD|=x八位自动重装模式TH=XFk载波信号TL=XFET=打开TR=}*********定时器中断函数载波发生************函数名:CarrierWave()***参数:无***功能:定时器中断产生KHZ载波信号***返回值:无*****************************************voidCarrierWave(void)interrupt{CarryWave=~CarryWave}usvoiddelayms(unsignedintt)误差{unsignedchara,bfor(t>t)for(b=b>b)for(a=a>a)}voidConfigTimer(unsignedintms){unsignedlongtmp临时变量tmp=定时器计数频率tmp=(tmp*ms)计算所需的计数值tmp=tmp计算定时器重载值tmp=tmp补偿中断响应延时造成的误差TRH=(unsignedchar)(tmp>>)定时器重载值拆分为高低字节TRL=(unsignedchar)tmpTMOD=xf清零T的控制位TMOD|=x配置T为模式TH=TRH加载T重载值TL=TRLET=使能T中断TR=启动T}*T中断服务函数完成秒定时*voidInterruptTimer()interrupt{staticunsignedinttmrs=TH=TRH重新加载重载值TL=TRLtmrsif(tmrs>=)定时s{tmrs=flags=}}DSBc:#include<regh>#include<intrinsh>sbitIOB=P^DSB通信引脚*软件延时函数延时时间(t*)us*voidDelayXus(unsignedchart){do{nop()nop()nop()nop()nop()nop()nop()nop()}while(t)}bitGetBAck(){bitackEA=IOB=DelayXus()IOB=DelayXus()ack=IOBwhile(!IOB)EA=returnack}voidWriteB(unsignedchardat){unsignedcharmaskEA=for(mask=xmask!=mask<<=){IOB=nop()nop()if((maskdat)==)IOB=elseIOB=DelayXus()IOB=}EA=}unsignedcharReadB(){unsignedchardatunsignedcharmaskEA=for(mask=xmask!=mask<<=){IOB=nop()nop()IOB=nop()nop()if(!IOB)dat=~maskelsedat|=maskDelayXus()}EA=returndat}bitStartB(){bitackack=GetBAck()if(ack==){WriteB(xCC)WriteB(x)}return~ack}bitGetBTemp(int*temp){bitackunsignedcharLSB,MSBack=GetBAck()if(ack==){WriteB(xCC)WriteB(xBE)LSB=ReadB()MSB=ReadB()*temp=((int)MSB<<)LSB}return~ack})红外接收模块程序:mainc:#include<regh>sbitADDR=P^sbitADDR=P^sbitADDR=P^sbitADDR=P^sbitENLED=P^sbitLED=P^sbitLED=P^sbitLED=P^sbitLED=P^sbitBUZZ=P^bitled=,led=,led=,led=unsignedcharcodeLedChar={数码管显示字符转换表xC,xF,xA,xB,x,x,x,xF,x,x,x,x,xC,xA,x,xE}unsignedcharLedBuff={数码管显示缓冲区xFF,xFF,xFF,xFF,xFF,xFF}unsignedcharTRH=T重载值的高字节unsignedcharTRL=T重载值的低字节unsignedcharintT=externbitirflagexternunsignedcharircodeexternvoidInitInfrared(void)voidConfigTimer(unsignedintms)voidmain(){EA=开总中断ENLED=ADDR=InitInfrared()初始化红外功能ConfigTimer()配置T定时msPT=配置T中断为高优先级启用本行可消除接收时的闪烁while(){if(irflag==)接收到红外数据时刷新显示{irflag=intT=ircodexf(ircode>>)*LedBuff=LedCharintT用户码显示LedBuff=LedCharintTxfLedBuff=LedChar键码显示LedBuff=LedCharircode}}}*配置并启动TmsT定时时间*voidConfigTimer(unsignedintms){unsignedlongtmp临时变量tmp=定时器计数频率tmp=(tmp*ms)计算所需的计数值tmp=tmp计算定时器重载值tmp=tmp补偿中断响应延时造成的误差TRH=(unsignedchar)(tmp>>)定时器重载值拆分为高低字节TRL=(unsignedchar)tmpTMOD=xF清零T的控制位TMOD|=x配置T为模式TH=TRH加载T重载值TL=TRLET=使能T中断TR=启动T}*数码管动态扫描刷新函数需在定时中断中调用*voidLedScan(){staticunsignedchari=动态扫描索引P=xffswitch(i){case:ADDR=ADDR=ADDR=iP=LedBuffbreakcase:ADDR=ADDR=ADDR=iP=LedBuffbreakcase:ADDR=ADDR=ADDR=iP=LedBuffbreakcase:ADDR=ADDR=ADDR=iLED=ledbreakcase:ADDR=ADDR=ADDR=iLED=ledbreakcase:ADDR=ADDR=ADDR=iLED=ledbreakcase:ADDR=ADDR=ADDR=i=LED=ledbreakdefault:break}}*T中断服务函数执行数码管扫描显示*voidInterruptTimer()interrupt{staticunsignedchariTH=TRH重新加载重载值TL=TRLLedScan()数码管扫描显示iif(i>=){i=if(intT>=){led=~ledled=~ledled=~ledled=~led}else{led=led=led=led=}}if(intT>=)BUZZ=~BUZZ}irrecievec:#include<regh>sbitIRINPUT=P^红外接收引脚bitirflag=红外接收标志收到一帧正确数据后置unsignedcharircode红外代码接收缓冲区unsignedcharivoidInitInfrared(void){IRINPUT=TMOD=XFTMOD|=xTR=ET=IT=EX=}unsignedintGetHighTime(){TH=TL=TR=while(IRINPUT){if(TH>x){break}}TR=return(TH*TL)}unsignedintGetLowTime(){TH=TL=TR=while(!IRINPUT){if(TH>x){break}}TR=return(TH*TL)}voidEXINTISR(void)interrupt{unsignedcharjunsignedinttimeunsignedcharbyttime=GetLowTime()if((time<)||(time>)){IE=return}time=GetHighTime()if((time<)||(time>)){IE=return}for(i=i<i){for(j=j<j){time=GetLowTime()if((time<)||(time>)){IE=return}time=GetHighTime()if((time>)(time<)){byt>>=}elseif((time>)(time<)){byt>>=byt|=x}else{IE=return}}ircodei=byt}irflag=IE=}

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/32

光电子设计报告基于单片机的声光报警系统的设计

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利