单片机智能楼道灯设计.docx
- 文档编号:6218011
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:15
- 大小:690.61KB
单片机智能楼道灯设计.docx
《单片机智能楼道灯设计.docx》由会员分享,可在线阅读,更多相关《单片机智能楼道灯设计.docx(15页珍藏版)》请在冰豆网上搜索。
单片机智能楼道灯设计
题目基于AT89C51单片机的智能楼道灯设计
系别班级
姓名学号
指导教师
2021年3月16日
基于AT89C51单片机的智能楼道灯
摘要
本设计是基于51单片机的智能楼道灯系统,主要由声控灯和蜂鸣器报警系统组成。
当楼道中有人走过时,由于发出的脚步声或者其他人为声音,楼道就会自动实现灯亮,几分钟过后,灯光就会自动熄灭。
如果出现故障时,可以按下按键实现报警,然后进行维修。
这种系统设计简单便捷,适应民用楼道、办公楼道、工厂楼道等。
声控灯模块电路主要时通过声音传感器检测声音模拟信号,然后经单片机数据处理,输出相应的功能信号,实现智能开关控制。
报警部分主要是由蜂鸣器和按键组成,当系统发生故障时,可以按下按键发出报警声提示维修。
系统硬件部分由单片机最小系统、声控灯模块电路、蜂鸣器报警、按键电路组成。
软件部分时通过C语言编程实现相关的功能。
设计过程中软硬件结合调试实现系统功能。
关键词:
单片机;声控灯;报警系统;声音传感器;蜂鸣器
一、绪论
1.1选题的目的
通过智能楼道灯的制作不仅能够提高自身专业知识的能力。
而且也能够提高自己的实践能力,有效的将理论与实际相结合。
本课题的设计主要是解决楼道中灯光自动控制的问题,将很好有效的利用智能化技术与实际问题结合使用。
1.2声控灯的研究背景及发展意义
随着社会的发展,智能化技术的得到大力的发展,国家也将节能环保列为重要方针。
国家节能中长期专项计划明确之处照明用电的节约。
由此可见照明问题的到国家政策的重视,这就体现出智能照明技术将会走进人民的生活中。
当今世界已经逐步走进智能化的电子世界,人工智能已经成为当今时代的一个主题,其意义将推动整个世界生产力的进步。
由此可见电子自动化科技已经成为社会发展的必然趋势。
本设计电路设计完备,完善了电能节约方面的问题,但电路也存在一个问题,如果要使声控灯只在天色昏暗的情况下执行却无法实现,为此电路的设计仍然需要升级达到更好的效果,为人们提供更满意的服务。
目前,我国在LED照明技术上已经很成熟,但与发达国家相比,还是存在着很大的差距,其电路所用的一些高端芯片主要还是依靠进口。
一个LED的综合质量不仅仅取决于节能与光亮,其封装技术也占据很大的地位,能够间接的决定集成电路的空间使用。
所以声控灯的发展在国内仍然占据有很大的市场,可开发性很大。
二、总体方案设计
2.1系统设计的思路
本设计是通过AT89C51单片机实现控制智能声控灯及报警功能。
声控部分依靠声音传感器采集信号并输入至单片机,经单片机处理,输出相应功能信号,实现开关智能控制LED。
报警部分由蜂鸣器与按键组成,主要作用是当系统发生故障时按下按键实现报警。
硬件电路主要由单片机最小系统与相关外围电路组成。
外围电路有声音检测模块、按键模块、LED模块、蜂鸣器报警电路。
软件部分主要是依据功能进行C语言编程,软硬结合实现系统功能。
2.2系统硬件描述
基于AT89C51单片机系统的智能楼道灯基本结构框图如图2-1所示:
图2-1系统设计框架
该系统所需要的硬件器件包括AT89C51单片机、LM393比较器一个、声音检测传感器、LED发光二极管若干个、有源蜂鸣器、12MHZ晶振一个、按键2个、相关电阻电容若干个。
2.3系统软件描述
系统程序实现两部分功能:
声控灯部分实现声音信号的有无控制发光二极管的亮灭功能;报警部分实现按键控制蜂鸣器报警。
整体功能程序流程框图如图2-2所示:
图2-2整体功能流程框图
三、硬件的设计
3.1单片机功能介绍
本设计的单片机最小系统主要包括AT89C51芯片,晶振电路和复位电路。
以下介绍主芯片单片机与最小系统电路。
AT89C51是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
表3-1给出了其主要功能。
表3-1AT89C51主要功能
主要功能特性
兼容MCS51指令系统
8K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
AT89C51各管脚如图3-1所示。
图3-1AT89C51管脚图
主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
(2)外接晶振引脚(2根)
XTAL0(Pin18):
片内振荡电路的输入端
XTAL1(Pin19):
片内振荡电路的输出端
(3)控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
(4)可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
P0口(Pin39~Pin32):
名称为P0.0~P0.7。
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平(晶体管-晶体管逻辑电平)。
P1口(Pin1~Pin8):
名称为P1.0~P1.7。
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下所示。
在flash编程和校验时,P1口接收低8位地址字节。
P2口(Pin21~Pin28):
名称为P2.0~P2.7。
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7。
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
P3特殊引脚端口第二功能:
此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。
ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。
FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
3.2晶振电路
最小系统晶振电路如图3-6所示。
图3-2晶振电路图
AT89C51单片机引脚XTAL0和XTAL1分别是内部反相放大器的输入端和输出端。
时钟可由内部自激振荡产生,也可以由外部时钟振荡产生。
由于内部振荡不足以驱动外界负载,所以需要外界晶振电路。
晶振大小选择12MHZ,电容选择5-30PF,电容值的大小可以起到对频率微调的作用。
3.3复位电路
最小系统复位电路如图3-7所示。
图3-3复位电路图
无论系统使用哪种类型的单片机,总需要涉及到复位电路,复位电路能够直接影响到系统运行的稳定性。
在系统总体测试时,有时会遇到死机现象,着主要是由于复位电路设计不合理引起的,也可能是由于程序的错误导致死循环。
复位电路的主要功能是,给系统一个复位信号,系统程序指针就会指向原始处,使得系统重新执行程序。
复位电路的参数是在确定系统晶振电路无误后且系统上电振荡稳定后,使得复位高电平持续保持俩个以上机器周期的高电平。
3.4最小系统整体图
最小系统整体电路如图3-8所示。
图3-4最小系統整体图
3.5检测模块
声音检测模块设计显得相对复杂,这也是本系统核心功能电路之一。
驻极体传声器依靠一个上拉电阻与一个电容相连接。
当声音传感器检测到声音信号时,检测模块将模拟信号转换为电压信号。
三极管基极由于加上电容的电压,从而构成一个基本的运算放大电路,三极管将其电压信号进行放大,并加在运算器正输入端。
当比较器正极输入端电压信号大于负极输入端电压信号时,将会输出一个高电平信号,当比较器正极输入端电压信号小于负极输入端电压信号时,将会由比较器输出一个低电平。
比较器的输出端接入单片机的P3.2口。
检测模块电路如图3-5所示。
图3-5检测模块图
3.6LED显示模块
LED显示模块硬件接法较为简单,发光二极管阴极通过一个限流电阻与单片机的输入端P1.3相连,阳极接5V电源。
LED显示模块电路如图3-6所示。
图3-6LED模块电路图
3.7按键模块
按键俩个引脚不分正负,其中一个接低,另一个引脚接在了单片机的P2.0接口上。
当出现故障时。
按下按键,蜂鸣器报警。
其硬件电路如下所示:
图3-7按键模块电路图
3.8蜂鸣器报警模块
蜂鸣器发生原理主要是电流通过电磁线圈,从而产生磁场驱动内部振荡膜发声,因此,蜂鸣器需要达到一定的电流才能够驱动它。
由于单片机本身输出端口电流较小,不足以驱动蜂鸣器。
因此,需要在二者之间增加一个三极管,起到放大电流的作用。
报警模块作用,当系统发生故障时,手动按下按键,蜂鸣器就会发声报警,同时发光二极管也会发光,实现了声光报警。
图3-8蜂鸣器报警模块电路图
3.9原理图绘制及PCB的制作
1、通过画图软件AltiumDesigner制作PCB图,制作PCB通常会包括以下基本步骤:
(1)画原理图,目地是生成对应的网表和元器件封装要用于建PCB以及便于后期查看;
(2)通过上一步完成的原理图生成PCB,原理图的DRC检查通过后会进入到PCB编辑界面;
(3)PCB元件的布局,一般先放主芯片。
(4)PCB布线,根据指示的网络飞线在电路上设置布线;
(5)PCB图的DRC检查,这个是必要的工作,防止一些布局或走线上的错误出现;
(6)将PCB文件发送给制作板子的厂家。
2、通过AltiumDesigner画好系统的电路原理图。
图3-9系统原理图
将绘制好的原理图执行更改、生效更改后导入PCB文件,然后在进行器件的布局、布线、打孔、覆铜等步骤。
最终进行规则检查,生成合理的PCB板。
其PCB板图如下:
图3-10PCB板布线图
四、系统软件设计
4.1KeilC51开发环境简介
如果说硬件是系统的躯壳主干,那么软件部分就是系统运行的内脏。
所谓的软件设计主要包括软件流程图的设计和程序的编写。
流程主要体现了系统运行的一个过程和思路,程序的编写牵涉到开发环境的编写软件。
本设计的程序编写使用keil软件。
编程语言采用通俗易懂的C语言编程,程序采用模块化编程,方便调试和检查。
4.2主程序流程图
主程序流程框图如下图所示:
4-1主程序流程框图
根据流程图编写模块化程序,具体程序代码如下所示:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitD=P1^3;//灯
sbitK=P2^0;//按键
sbitBEEP=P2^1;//蜂鸣器
bitflag;
uintt;
voiddelay(uintdly)//延迟子函数
{
uinti,j;
for(i=255;i>0;i--)
for(j=dly;j>0;j--);
}
voidmain()
{
EA=1;//开单片机总中断
EX0=1;//开单片机外部中断1
IT0=0;//设置中断触发方式
if(K==0)
{
delay(5);
if(K==0)
{
BEEP=0;
}
}
else
BEEP=1;
}
voidexter0()interrupt0//声音检测传感器采集信号输入至单片机外部中断
{
D=0;//灯亮
delay(4000);//作用是延时,起到自动熄灭
D=1;//灯灭
}
五、系统调试与分析
5.1硬件系统调试
单片机为本设计最核心的器件,所以在硬件测试时必须先测试单片机的运行状况。
上电后,使用万用表测量时钟电路上的电压是否与手册上的电压相近,正常电压范围处于2.24V-2.09V。
然后收动模拟复位电路,观察是否正常运行。
在测试过程中出现了一些小问题,下面是问题和问题的解决办法:
1、在所有器件全部焊接完成后通电发现灯不亮,系统无法运行。
解决方法:
在我对系统各电路进行逐一检查时发现电源供电有问题,检查后发现原来电源焊接脚有的脚虚焊,在重新补锡焊接后顺利解决这个问题。
2、在通电测试时发现有些LED灯不亮或者闪烁不定。
解决方法:
我先把各层灯分别取下来,然后单个灯用万用表测,遇到坏掉的LED灯时,就将此灯换掉。
5.2软件系统调试
由于本设计电路设计不是过于复杂,从而在编写程序中也显得没有那么复杂。
但是在编写和调试中仍然出现一些问题,下面是问题和问题的解决方法:
1、编译过程中提示定义变量不明确
解决方法:
找到定义不明确的变量,再到程序定义处发现定义变量前没有写sbit声明。
2、程序下载后不执行任何功能
解决方法:
先是检查硬件电路接线,排除接线问题后。
仔细检查程序,编译通过,但是在循环处出现一个逻辑性错误,经过修改,下载到芯片中,执行功能正确。
六、总结
经过几个越的不屑努力,我的毕业设计终于完成了。
此次毕业设计中,我的专业能力和实践能力都得到了显著的提高。
但是其中历程也是很艰辛的,首先在我拿到毕业设计题目时,我就感觉自己一头雾水,虽然在以前上课过程中学习过单片机的知识,但是现在使用单片机实现一个具体的功能,还真是有点摸不着头脑。
于是我请教了指导老师,老师在给我分析了系统实现的功能后,使得我慢慢找到了方向,完成了自己的初步提纲。
在设计过程中,通过查阅图书和网上文献逐步完善论文的细节,在理论上实现了功能。
后来自己开始编写程序和绘制原理图,这是一个软件学习的过程,在学习中,通过不断的尝试与更改使得更加熟悉软件的使用,最终一步步完成了程序的编写与原理图的绘制。
这次设计使得我懂得了不仅仅需要将理论知识学的透彻,也要将理论与实践相结合,这样才能够真正的学习到技术的精髓,为以后工作打下坚实的基础。
七、参考文献
[1]胡汉才.单片机原理及其接口技术[M].北京:
清华大学出版社,2010.
[2]杜洋.爱上单片机[M].北京:
人民邮电出版社,2011.
[3]郭天祥.新概念51单片机C语言教程[M].北京:
电子工业出版社,2009.
[4]杨天怡,黄勤.单片机原理及应用[M].北京:
清华大学出版社,2010.
[5]张毅刚.新编MCS-51单片机应用设计[M].哈尔滨工业大学出版社,2003.
[6]刘坤.51单片机C语言应用开发技术大全[M].人民邮电出版社,2008.
[8]王平.计算机控制系统[M].自动化教学部,2009.
[9]童诗白,华成英.模拟电子技术基础[M].高等教育出版社,2001.01.
[10]陈国平.MC-51系列单片机系统原理与设计[M].冶金工业出版社,2003.03.
[11]刘征宇.电子电路设计与制作.福建科学技术出版社,2003.09.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 智能 楼道 设计