基于AT89C51单片机的照明控制系统设计毕业设计文档格式.docx
《基于AT89C51单片机的照明控制系统设计毕业设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的照明控制系统设计毕业设计文档格式.docx(81页珍藏版)》请在冰点文库上搜索。
当然说经过教导,相信肯定可以减少这些浪费能源的情况发生,但从技术上完全可以解决这个问题。
廉价实用的单片机就是为此而生的。
单片机是在一块芯片上集成了计算机各基本功能部件的计算机系统,包括CPU、ROM、RAM、I/O口、定时器与计数器以及中断系统等等。
单片机在现代生活和工业生产中得到了广泛的应用。
单片机应用所受到的主要限制不是技术问题,而是创造力和技巧上的问题。
针对生活中这种照明中电能浪费的现象设计一套使用单片机控制的智能照明系统。
本设计的主要应用范围也是教室、图书馆和办公室等公共场所。
该系统应用了两种传感器,人体红外传感器和自然光线传感器,对现场的自然照明情况和人员情况,实现实时自动检测与控制的功能,从而实现节能降耗的目的。
具体功能如下:
第一,系统设计人体红外检测电路,有进入探测范围时输出信号。
第二,系统设计自然光检测电路,对照明现场的亮度进行自动检测。
虽在工作时间,但现场的亮度如果能够满足设定要求时,系统同样关闭照明设备。
第三,设计按键电路,设定强制开灯和强制关灯按键。
如有需要人为开灯或灭灯,可按相应键。
比如在教室内,晚上要演示幻灯片,现实条件是室内有人,自然照度不满足工作要求,按照系统的自动控制程序,是不会灭灯的,但我们确实需要灯灭,这时就可以按下强制关灯按键。
设计该系统的理念是:
第一,“以人为本,人使用灯”;
第二,“节能环保”。
第一节系统总体框图
在设计最初需要一个整体的思路来确定设计的框架。
首先根据设计任务来确定所需的功能模块;
然后按照一定的作用顺序把各个功能模块连接起来。
本系统需要两个传感器来分别检测人体红外信号和自然光强信号,需要按键电路来强制灯的开关,还需要指示电路来指示系统的工作状态,等等。
图1-1照明系统总体框图
如图1-1,为该照明系统总体框图,包括:
系统核心AT89C51单片机,输入为两个传感器电路即人体红外检测电路和自然光检测电路,强制开关的按键电路。
输出是LED指示电路以及继电器执行电路。
最后由继电器电路来控制照明电路的通断,从而实现照明的自动控制。
晶振电路和复位电路是单片机系统工作必不可少的。
晶振电路结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。
复位电路实现单片机各单元值的初始化。
除此之外还需要电源电路把220V交流变成单片机及各功能电路的元件所需的电压。
照明控制系统的应用有很多优点:
不需要常规的翘板开关;
不需要人亲自动手去按,可以减少通过皮肤接触导致的细菌传染;
不需定期更换开关;
即使从美学的角度讲也是有价值的。
这种产品对于公共场所是非常理想的。
第二节系统简单流程图
有了上节设计的系统总体框图,我们就可以进行系统流程图的设计,这里的流程图是方案流程图,是提出来的思路流程图。
我们可以提出好几种方案,来进行比较,评价,最终确定一种比较合理的方案,如下是我提出的三种方案。
一、方案一
如图1-2是第一种控制方案的流程图,该方案是一种满足设计任务的最基本和最简单的方案。
流程经过初始化以后,先判断有无按键按下,如果有则执行相应按键处理程序。
如果没有,继续判断红外检测电路有无探测到有人,无人时,灭灯并返回继续判断有无按键按下。
如果探测到有人,就接着判断当前照度是否满足设定要求。
若照度满足要求,继续返回灭灯程序;
若不满足,就给继电器一个动作信号,使其动作,从而开启照明电路。
图1-2流程图一
在设计系统流程时,是先判断光照还是先检测是否有人是,我遵循的原则是“以人为本,人使用灯”。
如果没有人,开关灯就无意义,所以应先判断是否有人,而不是先判断光照情况。
本方案是智能照明系统的一种最简单的流程图,表现在什么地方呢,就是它只控制灯的亮与灭,没有调光功能。
后面的方案将体现方案一的这点不足。
二、方案二
图1-3流程图二
如果设计的照明控制系统能够调节照度,那么照明效果和节能效果将会更好。
如图1-3具有两个照明调节等级的方案。
按键判断与有没有人的判断与方案一相同,可见光照度判断与方案一不同,其工作方式为:
设照度X2>
X1>
0,当环境照度E>
X2时,不需要人工照明:
当X1<
E<
X2时,开一半的灯,即可满足照明需求;
当E<
X1时,灯全部打开。
这样在傍晚,阴天的时候,就可以比方案一节约不少电能。
后面的方案更加明显的体现了调光这一功能。
三、方案三
图1-4流程图三
方案三流程图如图1-4所示。
方案三的特别之处也在于它的可见光检测电路和调光电路。
它能够监测当前照度值E1,与设定值E0作比较,当E1<
E0时,启动调光电路进行照明补偿,维持照度不低于设定值E0。
方案三的可见光检测电路精度要高于前两种方案,因为它的调光需要一个精确的反馈值来设定调光电路的工作。
这种方案对于教室,图书馆等场所,这种需要一个恒定照度的场合是非常合适的,如果希望荧光灯能实现照度调节,需要配合数字整流器。
就目前来看,由于大功率LED灯的蓬勃发展,未来使用单片机,PWM,和LED组成的智能照明系统必将成为主流。
LED灯是指灯具产品采用LED(Light-emittingDiode,发光二极管)做为主要的发光源。
LED灯的结构是一块电致发光的半导体材料,所以LED灯的抗震性能好。
LED灯具有节能、环保的优势,在灯具产业的发展已成为主要趋势。
从而引起照明领域的又一次革命,而照明质量将会有质的飞跃。
以最低的能耗提供最优质的照明。
四、方案比较与确定
对于方案一流程经过初始化以后,先判断有无按键按下,如果有则执行相应按键处理程序。
方案二按键判断与有没有人的判断与方案一相同,可见光照度判断与方案一不同,其工作方式为:
第三种方案它够监测当前照度值E1,与设定值E0作比较,当E1<
尽管方案一是最简单,最基本的方案,却也体现了智能照明的基本思路。
方案二实现两种等级的控制,方案三实现一种连续的控制是比较难的。
这次设计我就以第一种方案来设计该照明系统。
第二章硬件设计
第一节主机电路核心器件介绍
一、AT89C51单片机性能介绍
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4KB闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)和128B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
功能强大AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。
如图2-1为AT89C51外形图。
图2-1AT89C51外形图
AT89C51主要性能参数:
与MCS-51产品指令系统完全兼容
4K字节可重擦写Flash闪速存储器
1000次擦写周期
全静态操作:
0Hz~24MHz
128×
8字节内部RAM
32个可编程I/O口线
2个16位定时/计数器
6个中断源
可编程串行UART通道
低功率空闲和掉电模式
(一)AT89C51结构框图于引脚说明
图2-2AT89C51结构框图
AT89C51结构框图如图2-2所示。
引脚功能说明
Vcc:
电源电压
GND:
地
P0口:
P0口是一组8位漏极开路型双向I/O,也即地址/数据总线复用口。
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在Flash编程时,P0接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉倒高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
Flash编程和程序校验期间,P1接收低8位地址。
P2口:
P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVA,@A+DPTR指令)时。
P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(例如执行MOVX@Ri,A指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区总R2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其他控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口,P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
如下表2-1所示:
表2-1P3口第二功能
P3端口
第二功能
第二功能说明
P3.0
RXD
串行口输入端
P3.1
TXD
串行口输出端
P3.2
外部中断0输入端
P3.3
外部中断1输入端
P3.4
T0
定时器/计数器0外部信号输入端
P3.5
T1
定时器/计数器1外部信号输入端
P3.6
外部RAM写选通输出信号
P3.7
外部RAM读选通输出信号
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将单片机复位。
ALE/
:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器。
ALE仍一时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
但要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(
)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条MOVX和MOVC指令ALE才会被激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
程序存储允许(
)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次
有效,即输出两个脉冲,在此期间,当访问外部数据存储器,这两次有效的
信号不出现。
/VPP:
外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H~FFFFH),
端必须保持低电平(接地)。
需要注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如
端为高电平(接VCC端),CPU则执行内部会锁存
端状态。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1:
振荡器反相放大器的及内部时钟发生器的输入端。
XTAL2:
振荡器3放大器的输出端。
时钟振荡器
AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路如图2-3:
图2-3振荡电路
外接石英晶体(或陶瓷振荡器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。
对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低,振荡器工作的稳定性,起振的难易程序及温度稳定性,如果使用石英晶体,则推荐电容使用30pF,而如使用陶瓷振荡器建议选择40pF。
(二)AT89C51的工作特点
空闲节电模式:
AT89C51有两种可用软件编程的省电模式,它们是空闲模式和掉点工作模式。
这两种方式是控制专用寄存器PCON(即电源控制寄存器)中的PD(PCON.1)和IDL(PCON.0)位来实现的。
PD是掉电模式,当PD=1时,激活掉电工作模式,单片机模式,即PD和IOL同时为1,则先激活掉电模式。
在空闲工作模式状态,CPU保持睡眠状态而所有片内的外设保持激活状态,这种方式由软件产生。
此时,片内RAM和所有特殊功能寄存器的内容保持不变。
空闲模式可由任何允许的中断请求或硬件复位终止。
终止空闲工作模式的方法有两种,其一是任何一条被允许中断的事件被激活,IDL(PCON.0)被硬件清除,即刻终止空闲工作模式。
程序会首先响应中断,进入中断服务程序,执行完中断服务程序并紧随RETI(中断返回)指令后,下一条要执行的指令就是使单片机进入空闲模式那条指令后面的一条指令。
其二是通过硬件复位也可将空闲工作模式终止。
需要注意的是,当有硬件复位来终止空闲工作模式时,CPU通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期)有效,在这种情况下,内部禁止CPU访问片内RAM,而允许访问其它端口。
为了避免可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。
掉电模式:
在掉点模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内RAM和特殊功能寄存器的内容在终止掉电模式前被冻结。
退出掉电模式的唯一方法是硬件复位,复位后将重新定义全部特殊功能寄存器但不改变RAM中的内容,在VCC恢复到正常电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。
如表2-2所示。
表2-2空闲和掉电模式外部引脚
模式
程序存储器
ALE
P0
P1
P2
P3
空闲模式
内部
1
数据
外部
浮空
地址
掉电模式
Flash闪速存储器的编程
AT89C51单片机内部有4K字节的FPEROM,这个Flash存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。
编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。
低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM编程器兼容。
AT89C51单片机中,有些属于低电压编程方式,而有些则是高电压编程方式。
用户可从芯片上的型号和读取芯片内的签名字节获得该信息,如表2-3所示。
表2-3型号信息
Vpp
12V
5V
芯片顶面标识
AT89C51
xxxx
xxxx—5
AT89C51的程序存储器列阵采用字节写入方式编程的,每次写入一个字节,要对整个芯片内的FPEROM程序存储器写入一个非空字节,必须使用擦除的方式将整个存储器的内容清楚。
读片内签名字节及编程接口
AT89C51单片机内有3个签名字节,地址为030H、031H和032H。
用于声明该器件的厂商、型号和编程电压。
读签名字节的过程和单元030H、031H和032H的正常校验相仿,只需将P3.6、P3.7保持低电平,返回值意义如下:
(030H)=1EH声明产品由ATMEL公式制造。
(031H)=51H声明为AT89C51单片机。
(032H)=FFH声明为12V编程电压。
(032H)=05H声明为5V编程电压。
编程接口:
采用控制信号的正确组合可对Flash闪速存储阵裂中的每一代码字节进行写入和存储器的整片擦除,写操作周期是自身定时的,初始化后它将自动定时到操作完成。
极限参数如表2-4所示。
表2-4AT89C51的极限参数:
极限参数名称
参数值
工作温度
-55℃~+125℃
储藏温度
-65℃~+150℃
任一引脚对地电压
-1.0V~+7.0V
最高工作电压
6.6V
直流输出电压
15.0mA
二、AT89C51单片机最小系统
AT89C51是片内有ROM/FPEROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。
用AT89C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图2-4AT89C51单片机最小系统所示。
由于集成度的限制,最小应用系统只能用作一些小型的控制单元。
其应用特点:
1、有可供用户使用的大量I/O口线。
2、内部存储器容量有限。
3、应用系统开发具有特殊性。
图2-4AT89C51单片机最小系统
(一)时钟电路
AT89C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。
单片机的时钟产生方法有两种。
内部时钟方式和外部时钟方式。
本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。
本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2MHz到12MHz之间选择。
电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,C1、C2可在20pF到100pF之间取值,但在60pF到70pF时振荡器有较高的频率稳定性。
所以本设计中,振荡晶体选择12MHz,电容选择65pF。
在设计印刷电路板时,晶体和电容应尽可能
靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。
为了提高温度稳定性,应采用NPO电容。
NPO是一种最常用的具有温度补偿特性的单片陶瓷电容器。
它的填充介质是由铷、钐和一些其它稀有氧化物组成的。
(二)复位电路
AT89C51的复位是由外部的复位电路来实现的。
复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
复位电路通常采用上电自动复位和按钮复位两种方式。
最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。
只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
时钟频率用12MHz时C取22uF,R取1KΩ。