基于单片机的智能台灯设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机的智能台灯设计
目录...................................................................... .......................... .1 1、1 设计内容及要
求 ....................................................................
1 1、2设计构
思 ..................................................................... ........... 1 1、3系统组成及电路设
计: ......................................................... 2 1、4 总体电路
图 ..................................................................... ....... 3 2、1 89C51单片
机 ..................................................................... . (4)
2、1、1 结构特
点 (4)
2、1、3 AT89C51单片机的管脚说明 (5)
2、1 传感器及信号处理电
路 (8)
2、1、1 热释电红外传感器的结构组成及工作原理 (9)
2、1、3 光敏电
阻 .............................................................. 12 2、2 计时提醒电
路 ......................................................................
14
2、2、1 基本原
理 (15)
2、2、4 计时提醒电路的仿真结果 .....................................
18

录 ..................................................................... .. (19)
第一章设计思路
1、1 设计内容及要求
一、设计内容
设计一智能台灯控制器,实现照明控制系统的人性化,其功能如下:
1、亮度足够时灯光关闭,在亮度不足时,有人走近自动点亮,并根据周围环
境的亮度自动调节灯泡的功率;
2、点亮时开始计时,计时达到一小时时发出灯光闪烁信号,提醒使用者起立
活动;
3、具有温度测量及显示功能。

该系统由光感元件、人体感知器、时间计数器以及亮度控制器及单片机等构
成。

二、总体要求
1、给出设计原理及整体设计思路,画出整机原理图;
2、给出具体单元设计,
画出单元电路,并进行电路设计中相关元件值的计算;
1、2设计构思
台灯已是千家万户的必需生活用品,经常由于忘记关灯而造成巨
1
大的能源浪费。

当夜晚来临时,人们又摸黑去开灯,非常不方便。

在这里设计了以人体红外辐射(波长为10um)传感控制电路。

当人体在台灯的范围内且环境光强较弱时,自动感应开灯;用一个时间计数器显示,当人在台灯下工作学习一个小时后,台灯发出警告,让人起身活动。

1、3系统组成及电路设计:
图1 系统机构图
本系统组成如图一所示,主要由三部分组成:
1) 传感器及信号处理电路:检测人体辐射红外信号及光强信号经过
处理后变成可处理的数字信号。

2) 以89C51组成的中央处理单元:处理信号并发出控制命令。

3) 计时提醒电路和灯光控制电路 :给出提醒信号并根据89C51给
出的命令控制灯光。

2
1、4 总体电路图
整个系统是以80C51控制下工作的。

其工作过程为:由热释电传感器检测一定范围内是否有人在,当没有人时热释电传感器的2端口不会产生信号,信号处理电路和单片机都不工作。

当有人靠近时,端口2发出变化缓慢、幅值小(小于1mv)的信号,该信号经过信号处理电路把不规则的波形转化成适合单片机处理的数字信号并通过INT1端口输入到单片,在此过程中同时还要通过光敏电阻进行光照强度检测,当环境光比较强时,光敏电阻阻值比较小,端口P3.3电平较低,省去了
80C51处理过程。

当环境光比较弱时,光敏电阻阻值变大,端口P3.3电平较高,将此电平送到单片机。

单片机接收到开灯信号后,发出控制信息将台灯点亮,同时通过计时提醒电路开始计时,当计时达到整点是通过扬声器发出鸣响,提醒使用者起身活动。

电路图如图2所示:
图2 智能台灯电路原理图
3
第二章单元电路的设计及仿真
2、1 89C51单片机
89C51单片机是整个系统的控制核心,它接受信号并处理后发出
控制信息。

2、1、1 结构特点
8位CPU;
片内振荡器和时钟电路;
32根I/O线;
外部存贮器寻址范围ROM、RAM64K; 2个16位的定时器/计数器;
5个中断源,两个中断优先级;
全双工串行口;
布尔处理器;
2、1、2 89C51单片机的主要特性
|1).与MCS-51 兼容
2).?4K字节可编程闪烁存储器
3).寿命:1000写/擦循环
4).数据保留时间:10年
5)?全静态工作:0Hz-24MHz
6)?三级程序存储器锁定
4
7)?128*8位内部RAM
8)?32可编程I/O线
9)?两个16位定时器/计数器
10)?5个中断源
11)?可编程串行通道
12)?低功耗的闲置和掉电模式
13)?片内振荡器和时钟电路
2、1、3 AT89C51单片机的管脚说明AT89C51单片机的管脚图3所示:
图3 AT89C51管脚图
VCC:供电电压。

GND:接地。

5
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的
6
一些特殊功能口,如下面所示:
管脚备选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR8EH地址上置0。

此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。

在由外部程序存储器取指
7
期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V 编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

2、1 传感器及信号处理电路
电路原理图如图4所示:
图4 热释电传感器信号处理电路
本设计采用BISS0001来完成热释电红外传感器输出信号的处理,由于热释电传感器输出的信号变化缓慢、幅值小,不能直接作为
8
灯泡的控制信号,因此传感器的输出信号必须经过一个专门的信号处理电路,使得传感器输出信号的不规则波形转变成适合于单片机处理的数字信号。

图4中,热释电传感器的输出信号送入BISS0001的14脚,经内部第一级运算放大器后,由C3耦合从12脚输入至内部第二级运算放大器放大,再经电压比较器构成的鉴幅器处理后,最后从12脚输出信号(V0)送入单片机进行照明控制。

BISS0001的1脚接高电平,使芯片处于可重复触发工作方式,输出V0的延迟时间T1由外部R8和C7的大小调整;触发封锁时间T2由R9和C6的大小调整。

2、1、1 热释电红外传感器的结构组成及工作原理
热释电红外传感器主要是由一种高热电系数的材料,如锆钛酸铅系陶瓷、钽酸锂、硫酸三甘钛等制成尺寸为2*1mm的探测元件。

在每个探测器内装入一个或两个探测元件,并将两个探测元件以反极性串联,以抑制由于自身温度升高而产生的干扰。

由探测元件将探测并接收到的红外辐射转变成微弱的电压信号,经装在探头内的场效应管放大后向外输出。

为了提高探测器的探测灵敏度以增大探测距离,一般
在探测器的前方装设一个菲涅尔透镜,该透镜用透明塑料制成,将透镜的上、下两部分各分成若干等份,制成一种具有特殊光学系统的透镜,它和放大电路相配合,可将信号放大70分贝以上,这样就可以测出10~20米范围内人的行动。

菲涅尔透镜利用透镜的特殊光学原
9
理,在探测器前方产生一个交替变化的“盲区”和“高灵敏区”,以提高它的探测接收灵敏度。

当有人从透镜前走过时,人体发出的红外线就不断地交替从“盲区”进入“高灵敏区”,这样就使接收到的红外信号以忽强忽弱的脉冲形式输入,从而强其能量幅度。

人体辐射的红外线中心波长为9~10--um,而探测元件的波长灵敏度在0.2~20--um范围内几乎稳定不变。

在传感器顶端开设了一个装有滤光镜片的窗口,这个滤光片可通过光的波长范围为7~10--um,正好适合于人体红外辐射(10um左右)的探测,而对其它波长的红外线由滤光片予以吸收,这样便形成了一种专门用作探测人体辐射的红外线传感器。

2、1、2 BISS0001芯片
BISS0001是一款具有较高性能的传感信号处理集成电路。

它配以热释电红外传感器和少量外接元器件即可构成被动式热释电红外开关,故能自动快速开启各类白炙灯、荧光灯、蜂鸣器、自动门、电风扇、烘干机和自动洗手池等装置,特别适用于企业、宾馆、商场、库房及家庭的过道等敏感区域,或用于安全区域的自动灯光、照明和报警系统。

BISS001的主要功能如下:
为CMOS数模混合专用集成电路;
具有独立的高输入阻抗运算放大器,可与多种传感器匹配进行信号处理;
带有双向鉴幅器,可有效抑制干扰;
内设延迟时间定时器和封锁时间定时器;
10
结构新颖,稳定可靠,调解范围宽;
内置参考电压,工作电压范围为2,6V。

管脚功能说明
11
BISS0001芯片的管脚分布如图5所示。

图5 BISS0001的管脚分布
2、1、3 光敏电阻
简介
光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。

光敏电阻器一般用于光的
测量、光的控制和光电转换(将光的变化转换为电的变化)。

常用的光敏电阻器硫化镉光敏电阻器,它是由半导体材料制成的。

光敏电阻器的阻值随入射光线(可见光)的强弱变化而变化,在黑暗条件下,它的阻值(暗阻)可达1~10M欧,在强光条件(100LX)下,它阻值(亮阻)仅有几百至数千欧姆。

光敏电阻器对光的敏感性(即光谱特性)与人眼对可见光(0.4~0.76)μm的响应很接近,只要人眼可感受的光,都会引起它的阻值变化。

设计光
12
控电路时,都用白炽灯泡(小电珠)光线或自然光线作控制光源,使设计大为简化。

工作原理
光敏电阻的工作原理是基于内光电效应。

在半导体光敏材料两端装上电极引线,将其封装在带有透明窗的管壳里就构成光敏电阻,为了增加灵敏度,两电极常做成梳状。

用于制造光敏电阻的材料主要是金属的硫化物、硒化物和碲化物等半导体。

通常采用涂敷、喷涂、烧结等方法在绝缘衬底上制作很薄的光敏电阻体及梳状欧姆电极,接出引线,封装在具有透光镜的密封壳体内,以免受潮影响其灵敏度。

在黑暗环境里,它的电阻值很高,当受到光照时,只要光子能量大于半导体材料的禁带宽度,则价带中的电子吸收一个光子的能量后可跃迁到导带,并在价带中产生一个带正电荷的空穴,这种由光照产生的电子—空穴对了半导体材料中载流子的数目,使其电阻率变小,从而造成光敏电阻阻值下降。

光照愈强,阻值愈低。

入射光消失后,由光子激发产生的电子—空穴对将复合,光敏电阻的阻值也就恢复原值。

在光敏电阻两端的金属电极加上电压,其中便有电流通过,受到波长的光线照射时,电流就会随光强的而变大,从而实现光电转换。

光敏电阻没有极性,纯粹是一个电阻器件,使用时既可加直流电压,也加交流电压。

半导体的导电能力取决于半导体导带内载流子数目的多少。

13
2、2 计时提醒电路
台灯点亮时开始计时,计时达到一小时时通过蜂鸣器发出鸣响,提醒使用者起立活动。

该模块的硬件部分主要由89C51单片机,LED数码管显示器组成。

单片机的P0端口接有4位共阳极LED数码管显示器。

数码管的8个引脚依照a、b、c、d、e、f、g、dp顺序依次与P0端口的8个引脚P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7相连,R是限流电阻。

4位LED数码管的共阴极引脚分别与V1~V4三极管的集电极相连,三极管的基极通过限流电阻分别接在单片机P2端口的P2.0~P2.3引脚上。

4位数码管显示器分别由三极管控制,例如P2.0输出为低电平时,V4三极管导通,与其相连的共阳极数码管显示器开始工作;P2.0输出为高电平时,V4三极管截止,与其相连的数码管显示器停止工作。

电路图如图6所示:
14
图6计时提醒电路原理图
2、2、1 基本原理
计时利用单片机的定时/计数器产生的中断,设置定时器T0工作在模式0的状态下,设置每隔5ms中断一次,中断20次正好1S。

中断服务程序里记载着中断的次数,中断200次为1秒,60秒为分,60分为一小时,24小时为一天。

时钟的显示是使用4位LED数码管,其软件设计原理是:由中断产生的秒、分、小时数据,并通过单片机的输出功能输入到数码管显示器,再通过显示器扫描程序,显示出时钟的计时时间。

2、2、2 计时功能的设计
单片机实现计时功能使用了两个子程序:定时器子程序
15
INIT_TIMER和中断服务子程序TO_INT。

其中,定时器子程序INIT_TIMER的作用是每隔5ms产生一次中断信号;中断服务子程序TO_INT的主要作用是记载中断的次数。

1、定时器子程序INIT_TIMER
定时器子程序INIT_TIMER的作用是每隔5ms产生一次中断信号,它是时钟标准时间的来源和保证。

定时器T0设置为工作模式0状态,定时器每隔5ms中断一次,在晶振频率为12MHz时,此5ms的初值为。

该子程序见附录。

2、中断服务程序TO_INT
中断服务程序TO_INT的作用是重置定时器T0初始值,记录中断次数,并输出秒、分和小时。

其中,DEDA存放5ms,SEC存放秒钟变量,MIN存放分钟变量,HOUR存放小时变量。

该子程序见附录。

2、2、3 显示部分的设计
显示部分的子程序有:转换时、分子程序CONV和扫描显示子程序DISP。

先通过CONV把由中断服务程序中产生的分、小时数据转换成适应LED数码管显示的数据。

即进行十进制计时处理,并存入数码管显示内存中(事先设置的存放显示器数据单元)。

再经扫描显示子程序DISP,便能在LED数码管上显示出时间。

16
1、转换时、分子程序CONV
CONV的作用是将中断服务程序中产生的分、小时数据,转换成适应LED数码管显示的数据。

通过执行DIV指令进行十进制计时处理,并将处理后的数据分别存入数码管显示内存BUF、BUF+1、BUF+2、BUF+3内。

其中BUF、BUF+1存放小时,BUF+2、BUF+3存放分钟,与数码管显示器U1、U2和U3、U4想对应。

该子程序见附录。

2、扫描显示子程序DISP
扫描显示子程序DISP的作用是动态显示送入4位LED数码管的时间数据。

所谓动态扫描是指一位一位轮流点亮LED数码管,每一位停留4ms左右,利用人的视觉暂留消除闪烁现象。

该子程序见附录。

17
2、2、4 计时提醒电路的仿真结果
2、3 灯光控制电路
单片机对光照检测电路和传感器处理电路输出的信号进行检测,输出控制信号由单片机的P2.4输出。

在室内环境光较强或光线弱但室内又无人时,P2.4输出高电平,此时三极管Q1截止,继电器J1不工作,则接在220V上的灯不亮,在室内光照较弱且传感器检测到室内有人时,则P2.4输出低电平,此时三极管Q1导通,继电器J1工作,则220V交流电通过继电器加到灯上,灯泡正常点亮。

电路原
18
理图如图6所示:
图6 灯光控制电路原理图
附录
;--------------------------------------程序初始化--------------------------------------
;定义存放计时单元地址
BUF EQU 30H ;30H~33H连续四个字节存放显示器数据
HOUR EQU 34H ;存放小时变量
MIN EQU 35H ;存放分钟变量
SEC EQU 36H ;存放秒钟变量
DEDA EQU 37H ;存放5ms计数值
;蜂鸣器和指示灯引脚定义
SPK EQU P3.4 ;蜂鸣器控制信号
WLED EQU P1.0 ;工作指示灯引脚定义
;程序开始执行地址
ORG 0H ;程序由地址0开始执行
JMP MAIN
ORG 0BH ;定时器T0中断地址设置
JMP T0_SRV
;-----------------------------------------主程序----------------------------------------------
19
MIAN:
ACALL BZ ;蜂鸣器连续两次鸣响一声
ACALL LED_BL ;LED闪动,表示程序开始执行
ACALL INIT ;初始变量化
ACALL INIT_TIMER ;设置定时器
;加载显示器初始值数据
MOV A, #0C0H
MOV PO, A
; 无穷循环
LOOP: ;无穷循环
ACALL CONV
ACALL DISP ;扫描显示
JMP LOOP ;跳转到LOOP出执行
;...............................................实现计时功能的子程序....................................
;使用定时器T0模式0计时
INIT_TIMER: ;初始化定时器
MOV TMOD, #00000000B ;设置定时器T0工作模式为0
MOV IE, #10000010B ;启用定时器T0中断产生
MOV TL0, #(8192-5000) MOD 32 ;加载初始值MOV TH0, #(8192-5000)/ 32
SETB TR0 ;启动定时器T0开始计时
RET ;........................................... ;中断服务程序
TO_SRV:
PUSH ACC ;A值压入堆栈
MOV TL0,#(8192-5000)MOD/32 ;重加载初始值MOV TH0, #(8192-5000)/32
INC DEDA ;加1
;秒输出
MOV A, DEDA
CJNE A,#200,TT1 ;是否1S到了
MOV DEDA, #0 ; 计时值清0
CPL WLED ; LED灯亮灭变换
INC SEC ;秒计数加1
MOV A,SEC
CJNE A,#60,TT1 ;是否1min到了
;分输出
INC MIN ;分计数加1
MOV SEC,#0 ;秒计数清0
MOV A, MIN
20
CJNE A, #60,TT1 ;是否1h到了
; 时输出
INC HOUR ; 小时计数加1
MOV MIN,#0 ; 分计数清0
MOV A, HOUR
CJNE A,#24,TT1 ;是否24h到了
MOV SEC, #0 ;秒钟变量清0
MOV MIN,#0 ; 分钟变量清0
MOV HOUR,#0 ;小时变量清0
TT1:
POP ACC ;将A值由堆栈取出
RETI
;...................................实现显示功能的子程序.....................................................
CONV:
;转换小时数据
MOV A, HOUR
MOV B, #10
DIV AB
MOV DPTR,#TABLE ;查表转换
MOVC A, @A+DPTR
MOV BUF, A
MOV A, B
MOVC A, @A+DPTR
MOV BUF+1,A
;转换分钟数据
MOV A, MIN
MOV B, #10
DIV AB
MOV DPTR,#TABLE ;查表转换
MOVC A, @A+DPTR
MOV BUF+2, A
MOV A, B
MOVC A, @A+DPTR
MOV BUF+3,A
RET
;字型数据编码表
TABLE:
DB 0C0H, 0F9H ,0A4H , 0B0H
DB 99H, 92H, 82H, 0F8H
DB 80H, 90H, 88H, 83H
21
DB 0C6H, 0A1H, 86H, 8EH
;----------------------------
;扫描显示
DISP:
MOV R0,#BUF ;指向显示器缓冲区起始地址
MOV R2,#4 ;循环执行4次
MOV ACC, #11110111B ;加载扫描信号初值11110111B
S1:
PUSH ACC
MOV A, @R0 ;取出显示器数据
MOV P0, A ;由P0送出一位显示数据POP ACC
MOV P2,ACC ;由P2送出扫描输出信号MOV R5,#2 ;延迟
ACALL DELAY ;改变扫描码 EX:XXXX1011 RR A ;A向右移动一位
INC R0 ;显示器显示缓冲区地址
加1
DJNZ R2,S1 ;判断是否继续执行循环RET
;计数单元清0
INIT:
MOV DEDA,#0 ;5ms计数器清0
MOV SEC, #0 ;秒表变量清0
MOV MIN, #0 ;分钟变量清0
MOV HOUR,#0 ;小时变量清0
RET
;
;蜂鸣器
BZ: ;蜂鸣器鸣响一声
MOV R6,#250
B1:ACALL DEX
CPL SPK
DJNZ R6,B1
MOV R5, #50
ACALL DELAY
RET
;------------------------------ ;工作指示灯22
LED_BL: ;工作指示灯闪烁
MOV R4,#6
LE1:CPL WLED ;位反向
MOV R5,#25
ACALL DELAY ;延迟50ms
DJNZ R4,LE1
RET
END
23。

相关文档
最新文档