教室自动感应照明控制系统的设计

更新时间:2024-05-04 09:06:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

陕西理工学院毕业设计

教室自动感应照明控制系统的设计

刘婧

(陕西理工学院物电学院电子信息科学与技术专业1202班级,陕西 汉中 723000)

指导教师:张政才

[摘要]本设计介绍了基于单片机STC89C52的教室自动感应照明控制系统,分析了教室灯光智能控制的原理与

实现的方法,在此基础上开发了照明智能控制系统硬件装置和相应的软件。系统硬件包括时钟电路、红外对管电路、光线检测电路、显示模块电路、独立按键操作电路和LED灯控制电路,软件设计包括人数统计软件设计、光线亮度检测软件设计以及总体软件设计。让学校教室的用电合理化,节约了电能并且改善了对教室灯光的管理,实现了教室照明控制系统的自动化、智能化。

[关键词] STC89C52;智能控制;红外对管;光照检测

The classroom design of the control system of automatic

induction lighting

Liu Jing

(Shaanxi Institute of Electrical Engineering on Electronic Information Science and Technology 1202

class, Hanzhong, Shaanxi 723000)

Instructor: ZhangZhengcai

Abstract:This design introduces the automatic lighting control system based on the MCU STC89C52,and analyzes

the principle of classroom lighting intelligent control and realization method.On the basis of this, the hardware and software of the intelligent control system are developed.The hardware includes clock circuit, infrared tube light detection circuit, display circuit. Independent key module circuit, operation circuit and LED lamp control circuit, software design includes the number of statistical software, software design and software design to detect overall brightness. Let the school classroom electricity reasonable, save energy and improve the classroom lighting management, realize the automation and intelligence of classroom lighting control system.

Key words:STC89C52, Intelligent control, Infrared to tube, Light detection

陕西理工学院毕业设计

目录

引言............................................................................................................... 1 1 设计思想 .................................................................................................. 1

1.1 课题背景 .................................................................................................. 1 1.2 设计主要目的 .......................................................................................... 1

2 系统设计概述 .......................................................................................... 1

2.1 设计任务指标要求 .................................................................................. 1 2.2 设计方案 .................................................................................................. 1

3 主要元器件介绍 ...................................................................................... 2

3.1 单片机STC89C52 ................................................................................... 2 3.2 时钟芯片DS1302 .................................................................................... 3 3.3 液晶显示器LCD1602 ............................................................................. 4 3.4 模数转换器件ADC0804 ........................................................................ 5 3.5 光敏电阻 .................................................................................................. 5 3.6 红外对管 .................................................................................................. 6

4 系统硬件设计 .......................................................................................... 6

4.1 单片机最小系统 ...................................................................................... 6 4.2 光线检测电路 .......................................................................................... 7 4.3 红外对管检测电路 .................................................................................. 7 4.4 时钟电路 .................................................................................................. 8 4.5 独立按键操作电路 .................................................................................. 8 4.6显示屏电路 ............................................................................................... 9

陕西理工学院毕业设计

4.7 LED灯控制电路 ...................................................................................... 9

5 系统软件设计 .......................................................................................... 9

5.1 人数统计子程序流程图 .......................................................................... 9 5.2 光照度采样及模数转换子程序 ............................................................ 10 5.3 主程序设计 ............................................................................................ 11

6 安装与调试 ............................................................................................ 13

6.1 软件的仿真与调试 ................................................................................ 13

6.1.1 仿真图 ........................................................................................... 13 6.1.2 调试与功能实现 ........................................................................... 13 6.2 硬件的安装与调试 ................................................................................ 14

6.2.1 原理图 ........................................................................................... 14 6.2.2 硬件的焊接 ................................................................................... 14 6.2.3 硬件调试 ....................................................................................... 15

总结............................................................................................................. 16 致谢............................................................................................................. 16 参考文献 .................................................................................................... 16 附录A 器件清单 ....................................................................................... 17 附录B 主程序 ........................................................................................... 18

陕西理工学院毕业论文

引言

设计应用了先进的电子技术、自动控制技术以及实用的软件平台,成功地设计了一套功能完善的教室自动感应照明控制系统。由显示单元、传感探测单元、控制单元构成了整个系统。教室自动感应照明控制系统核心器件采用STC89C52单片机采集数据,并由控制系统实现对教室光照强度、学生人数等的监控与显示,并对教室内部用电设备进行合理控制和管理,达到教学楼教室照明控制的智能化和节约化的目标。

1. 设计思想

1.1 课题背景

随着计算机网络的发展,控制技术、智能建筑的发展越来越迅速。目前,国内大多数智能建筑存在效率低下的现象,高能源消耗。智能建筑的照明系统,通常许多地方的灯打开是从早到晚的,无论在房间里还是在走廊里有人,无论有多少人。或者,当自然光线很好时,灯不关闭;相反,在自然光线很难满足人们的需求时,又不能及时打开灯。这种照明方式,不仅浪费能源,还不能满足人们对照明的基本要求,也会对人的视力造成很大影响。

如今,各种高校不断扩招学生,扩大教室,教室里的电力负荷增加,电源管理不当,造成学校的电力浪费,这种经济损失、浪费与今天节能的理念背道而驰。此外,现代自动化程度不断提高,计算机技术的普及,光管理的自动化、智能化方向发展。所有这些使教室照明控制也应该向智能方向发展。如此简单、方便、实用的教室灯光自动控制系统的发展,具有重要的现实意义。

一些学校也意识到教室照明的巨大浪费,采取各种管理方法,试图杜绝这种浪费。如:成本和支出,课堂上教师责任制,组织勤工助学学生或雇用专业人员进行专业管理电力等等。许多学校已经采取这些方法,但始终没能坚持很长一段时间,没有达到理想的效果。由于管理不善等问题就会影响教学资源的配置和合理利用等等[1-3]。 1.2 设计主要目的

针对目前学校教学楼照明设备控制的现状,为使教室照明设备控制趋于自动化、智能化,提高教学管理的效率,开发了一套功能更完美的基于STC89C52的教室自动感应照明控制系统。这个系统应用先进的电子技术、自动控制技术和实用的软件平台,通过传感器采集室内光线,人数分布等信息,利用控制电路调节照明强度,实现节能控制,智能控制系统通过单片机实现对教室光照、自习学生人数等的数据采集,由LCD1602显示,对教室内部用电设备进行合理的控制,达到教学楼教室照明控制的智能化和节约化的目标。

2. 系统设计概述

2.1 设计任务指标要求

设计并制作一个教室智能照明控制系统,通过传感器采集室内光线,人数分布等信息,利用控制电路调节照明强度,实现节能控制。系统应包括1.自然光检测电路,对照明现场的亮度进行检测,如果现场亮度符合照明要求,系统应关闭照明设备;2.人体红外检测电路,当照明现场亮度不符合照明要求且有人进过时,系统启动照明设备;3.强制开灯和关灯按键。 2.2 设计方案

教室自动感应照明控制系统是基于单片机对学校教室照明设备进行控制和管理,教室亮度的检测、教室学生人数的统计、自动与手动状态的切换。整个系统由时钟电路、红外对管电路、光线检测电路、显示模块电路、独立按键操作电路、LED灯控制电路组成。单片机可以实现对教室内的教室检测控制元件所采集到的信息的接收、处理,从而可以很轻松的对教室光照强度、自习学生人数等进行实时统计。检测控制单元:照明强度采集是采用ADC0804与单片机构建的数据采集网络,显示使用LCD1602,教室是否有人和人数是用红外对管电路通过检测电路与单片机相连进行数据采集。系统总体框图如图2.1所示。

第1页 ,共38页

陕西理工学院毕业论文

时钟电路 STC89C52显示模块电路独立按键操作电路

红外对管电路光线检测部分 LED灯控制电路

图2.1 系统总体框图

系统实现的主要功能有:

1. 时钟电路可以记录正常的实时时间,还可以设置定时时间,让系统在我们设定的时间范围内自动工作,减少因不在学习时间范围内,对电能造成的浪费。

2. 红外对管电路,也是人数检测电路,可以对进入教室的人数进行统计,然后在光线黑暗的条件下,根据教室的人数决定打开照明灯的多少。

3. 光线检测电路可以对教室的光照强度进行检测。当光照强度高于一定值时,不管统计到教室的人数是多少,照明灯都不打开;当光照强度低于一定值时,打开照明灯的多少根据统计到的人数而定。

4. 显示电路可以显示实时时间的年、月、日、时、分、秒和星期,还可以显示统计到进入教室的人数。

5. 独立按键操作电路,可以对实时时间和定时时间进行设置,还可以切换自动状态和手动状态。手动状态就是可以手动控制教室的照明灯。

6. LED灯控制电路,符合光线黑暗、统计到人数的条件下,会打开。

3. 主要元器件介绍

3.1 单片机STC89C52

STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口[5]。

除了STC89X52静态逻辑运算可以减少到0赫兹,支持两种类型的软件可以选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机停止所有工作,直到下一个中断或硬件复位。最高运作频率35MHz,6T/12T可选。其管脚分布如图3.1所示。

图3.1 TC89C52引脚图 第2页 ,共38页

陕西理工学院毕业论文

VCC(40):+5V。GND(20):接地。 P0口(39-32):P0口是八位漏极开路双向输入输出口,每个引脚可以接收8个TTL门电流 P1口(1-8):P1口是8位双向输入输出口,它的功能是可以单片机里面提供上拉电阻,P1口的缓冲器能够接收和输出四个TTL门电流。

P2口(21-28):P2口是8位双向输入输出口,它的功能是可以单片机里面提供上拉电阻,P2口的缓冲器能够接收和输出四个TTL门电流。

P3口(10-17):P3口是8个带有单片机里面上拉电阻器的双向输入输出口,可接收和输出4个TTL门电流,P3口亦可以作为STC89C52的特殊功能接口。

RST(9):复位输入。如果振荡器处于复位状态,这个口就得保持 RST引脚2个机器周期有所需要的高电平保持时间。

ALE/PROG(30):如果在访问单片机外部存储器的时候,那么地址锁存器这个时候所允许的输出电平就会用在锁存地址其中的低位字节,在FLASH编程的这段时间里,这个引脚就会被用来输入编程所需脉冲。在大多数时间里,ALE端就会输出正脉冲信号(这里的信号是恒定的频率周期),这个频率是振荡器频率的六分之一,我们可以用它来定时或者对外部输出脉冲,这里需要注意的就是,每次在访问单片机外部数据存储器的时候,就会跳过一个ALE脉冲。

PSEN(29):这个管脚是单片机外部程序的存储器的选通信号。如果取指的工作是由外部程序存储器来完成的时候,那么每个机器周期里面的两次 PSEN 是有效的,但是如果是在访问单片机外部数据存储器的时候,就不会出现前面我们所讲的两个 PSEN 信号。

EA/VPP(31):当EA一直处于低电平状态下时,单片机外部的程序存储器的地址会变成(0000H-FFFFH)不管这个时候有没有内部程序的存储器。在FLASH编程的这段时间里,施加12V编程电源(VPP)的工作也是由这个引脚完成的。

XTAL1(19):单片机内部反向振荡放大器的输入以及单片机内部时钟电路的输入。 XTAL2(18):来自反向振荡器的输出[6]。 3.2 时钟芯片DS1302

DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。实时时钟可提供年月日、秒分时和星期,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压为2.5~5.5V。DS1302是DS1202的升级产品,与DS1202兼容,采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中[8]。如图3.2所示。

图3.2 DS1302引脚图

各引脚的功能为: Vcc1:主电源;Vcc2:备份电源。当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电。

SCLK:串行时钟,输入,控制数据的输入与输出; I/O:三线接口时的双向数据线;

第3页 ,共38页

陕西理工学院毕业论文

CE:读或者写数据的时候,输入信号一定要为高电平。这个引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;第二,CE提供结束单字节或多字节数据传输的方法。 3.3 液晶显示器 LCD1602

字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图3.3所示。

图3.3 液晶显示器实物

1602LCD主要参数:

显示容量:16×2个字符 芯片工作电压:4.5—5.5V 工作电流:2.0mA(5.0V) 模块最佳工作电压:5.0V

字符尺寸:2.95×4.35(W×H)mm

引脚功能说明:1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚功能说明如表3.1所示。

表3.1 引脚功能说明 编号 1 2 3 4 5 6 7 8

符号 VSS VDD VL RS R/W E D0 D1

引脚说明 电源地 电源正极 液晶显示偏压 数据/命令选择 读/写选择 使能信号 数据 数据

编号 9 10 11 12 13 14 15 16

第4页 ,共38页

符号 D2 D3 D4 D5 D6 D7 BLA BLK

引脚说明 数据 数据 数据 数据 数据 数据 背光源正极 背光源负极

陕西理工学院毕业论文

3.4 模数转换器件ADC0804

集成A/D转换器品种比较多,选用时应综合考虑各种因素来选取集成芯片。ADC0804是一种单片集成模数转换器,它是逐次比较性的,一般这种模数转换器会被用的多一些。ADC0804有着可以满足差分电压输入、内含时钟发生器、方便TTL或CMOS标准接口、模数转换时间大约为100us、不需要调零、单电源工作时0V~5V输入电压范围是0V~5V等等的特点,它在要求不高的地方被广泛的应用,是一款早期的8位、低价格、单通道的模数转换器而且价格低廉[7]。如图3.3所示

图3.3 ADC0804引脚图

3.5 光敏电阻

(1)光电检测器件的选择

目前,在光电检测技术中常用的光电检测器件有光敏电阻、光电二极管、光电三极管、光电池等,选择光照传感器可根据表3.2来比较选择。

表 3.2光电器件特性比较

器件 光敏电阻

光谱响应 可见光至红外

灵敏度 高

线性度 差

伏安特性 电阻型

电特性输出电流

噪声特性 低

光电池 可见光至红外 低 一般 光伏型 最大 低

光电二极管 可见光至红外 一般 好

光伏型和饱和型

小 高

光电三极管 可见光至近红外 高 差 饱和型 大 高

光敏电阻与其它的光电检测器件比较,特点有以下几点:

a) 灵敏度高,光电导增益大于1。 b) 工作电流大,可以达到数毫安。

c) 所测光强范围宽度,既可检测强光也可检测弱光。 所以选择光敏电阻[4]。

(2)光敏电阻的工作原理

光敏电阻的工作原理是:在其两极加上一定的电压后,当光照射在光电导体时,由光照产生的光生载流子在外加电场作用下沿一定方向运动。在电路中产生电流,实现光电转换的目的。光敏电阻是利用内光电效应工作,由半导体材料制成的光电设备。在光的作用下,其阻值往往是变小的,这种现象称为光导效应,因此,光敏电阻又称光导管。光敏电阻工作原理如图3.4所示。

第5页 ,共38页

陕西理工学院毕业论文

光照电极电极光电导体Ip图3.4 光敏电阻的工作原理

光敏电阻的导电性能会随着光照强度的增加而变好,也就是说如果光敏电阻的电导率出现增加的情况,那么流过它里面的光电流也会增加,那么也就意味着它的电阻值会降低;它的导电性能会随着光照强度的减少而变差,也就是说光敏电阻的电导率会相对减小,流过它里面的光电流会减少,这种情况下,它的电阻值就会增加。

利用光敏电阻对教室内光照强度进行探测,其工作方法是: (1)当教室无人时,不管照度如何,所有照明灯均熄灭。 (2)当教室有人时,分成四种情况: a.若教室人数少于10个人,则亮一个灯。 b.若教室人数在10-20人之间,则亮两个灯。 c.若教室人数在20-30人之间,则亮三个灯。 d.若教室人数大于30人,则亮全部的四个灯。 3.6 红外对管

红外对管是红外线发射管与光敏接收管,或者红外线接收管,或者红外线接收头配合在一起使用时候的总称。红外线接收管是在LED行业中命名的,是专门用来接收和感应红外线发射管发出的红外线光线的。一般情况下都是与红外线发射管成套运用在产品设备当中。红外线接收管有两种,一种是光电二极管,另一种是光电三极管。光电二极管就是将光信号转化为电信号,光电三极管在将光信号转化为电信号的同时,也把电流放大了。因此,光电三极管也分为两种,分别是NPN型和PNP型。红外线发射管在LED封装行业中主要有三个常用的波段,如下850NM、875NM、940NM。根据波长的特性运用的产品也有很大的差异,850NM波长的主要用于红外线监控设备、875NM主要用于医疗设备、940NM波段的主要用于红外线控制设备。EG:红外线遥控器、光电开关、光电记数设备等。红外线接收管如图3.5所示,红外线发射管如图3.6所示。

图3.5 红外线接收管图3.6 红外线发射管

4. 系统硬件设计

4.1 单片机最小系统

单片机最小系统包括了单片机以及复位电路、晶振电路、排阻等,如图4.1所示。

第6页 ,共38页

陕西理工学院毕业论文

图4.1单片机最小系统

单片机:跟AT89C51/AT89S51功能完全一样,52比51大4kb而已。

复位电路:S6为按键,按下手动复位,复位即让程序重新运行,相当于重新启动。 晶振电路:Z1为晶振,提供振荡信号给单片机,单片机才成运行程序,类似人心脏。 排阻:液晶屏的上拉电阻,没接的话呈高阻态,无法得到高电平,液晶显示异常。 4.2 光线检测电路

LM339是运算放大器,这里的作用的作为电压比较器用,电压比较器是一种常用的集成电路。它可用于报警器电路、自动控制电路、测量技术,也可用于V/F变换电路、A/D变换电路、高速采样电路、电源电压监测电路、振荡器及压控振荡器电路、过零检测电路等。电压比较器的主要原理是当输入电压V+>V-时,输出高电平,当输入电压V+

LIGHT1为光敏电阻,光亮的时候,光敏电阻阻值较小,分到的电压低,此时4脚电压低于5脚电压的2.5V,+>-,比较器2脚输出高电平;黑暗的时候,光敏电阻阻值较大,分到的电压高,电压是大于2.5V的,所以+<-,输出低电平,LED灯D4点亮,单片机靠判断低电平来知道是黑暗状态。如图4.2所示。

图4.2 光线检测电路

4.3 红外对管检测电路

使用红外传感器的作用是通过其内部接收端接收由障碍物反射或发射回来的红外光,来判断是否有障碍物(有障碍物时,检测电路输出高电平,否则,电路输出低电平)。这里使用两组红外传感器(分别安装在教室门内外两侧)用来计数当前教室内的学生人数。两组红外传感器依据接收有障

第7页 ,共38页

陕西理工学院毕业论文

6. 安装与调试

6.1 软件的仿真与调试

Proteus是目前最好的模拟单片机外围器件的软件,和其它的单片机仿真软件不一样的是,它不仅能够仿真单片机CPU 的工作情况,还能够仿真单片机外围电路或者没有单片机参与的其它电路的工作情况。

Proteus是单片机课堂的教学助手。Proteus为电路测试提供了较为全面的、包括模拟信号和数字信号的测试信号。Proteus可以将单片机实例功能、单片机实例运行过程形象化。在相当程度上,前者可达到实物演示实验的效果,后者则很难达到实物演示实验的效果。在某种程度上,它的组件、连接等可以代替传统的单片机实验教学,因为它的硬件和传统的单片机实验高度对应。例:组件的选择、电路的连接、电路的检测、电路的修改、软件的调试、运行结果等。

毕业设计和课程设计对于毕业生就业而言是至关重要的。Proteus相比于实验室而言,在组件库、虚拟仪器仪表以及修改电路的灵活性方面都有着无法比拟的优点,尤其是各类仪器质量优,数量大,完全可以满足设计需求。科技随着时代迅速地发展,“计算机仿真技术”也越来越实用,在各个设计部门已成为不可缺少的设计手段。由于Proteus设计非常灵活,并且设计过程以及结果高度统一,使其耗资减少,时间缩短,也可以降低工程制造的风险。相信在单片机开发应用中Proteus也能获得愈来愈广泛的应用[9]。 6.1.1 仿真图

系统可以对教室光照强度进行检测,同时对教室人数进行统计,并且LCD可以显示年、月、日以时间及星期,还可以设置实时时间和教室照明灯亮的时间。当在时间范围内时,照明灯是处于智能状态,超出时间范围则自动切换成手动状态,而且自动、手动状态是可以随时切换的,以防自动状态出现问题,对电能造成浪费。当光线强度高于设定值范围时,不管LCD统计的人数是多少,照明灯都是不打开的;当光线强度低于设定值范围时,根据教室人数的多少,打开相应数量的照明灯,以达到智能节能的目的。仿真图如图6.1所示。

图6.1 仿真图

6.1.2 调试与功能实现

首先使用Keil软件对程序进行设计与编译。软件设计首先创建一个工程选择芯片,本设计基于STC89C52单片机,工程创建完后编写程序代码,单击菜单中的【Save】选项,本设计采用C语言编写,因此代码扩展名必须为.C,然后保存,之后在文件编辑窗口编写代码。开始编译,成功后生成Hex文件。通过软件向单片机烧录程序,然后接通电路进行调试,若调试过程出现状况,可通过详细查找、仔细验证来找出并修改错误,最终达到预期结果。

第13页 ,共38页

陕西理工学院毕业论文

步骤为:

1.启动keil uVision,编写教室自动感应照明控制系统C语言程序,然后点击Project菜单——〉New project ,新建一个工程,接着选择CPU类型,我们选择的是STC89C52。

2.在工程中加入文件。新建一个文件教室自动感应照明控制系统.C保存,C语言文件建好后把文件加入到工程中。

3.编译工程及文件,发现错误更改后再重新编译文件,直到没有错误并且产生了xxx.hex的文件。 4.用单片机仿真软件Protues来仿真此次设计的单片机是否能够完成设计的要求。 6.2 硬件的安装与调试 6.2.1 原理图

图6.2 原理图

6.2.2 硬件的焊接

手工焊接技能是电子类专业的基本技能,必须反复地、严格地训练才能掌握,焊接工程中首先焊接PCB板上的跳线,然后焊接简单的电阻、电容和直插器件的底座,使用电烙铁将锡铅焊料加热后将器件与电路板焊接在一起,焊接时注意不要虚焊和短路。按照之前设计好的教室自动感应照明控制系统的原理图,详细计算系统中各个元件的参数,选择相应器件,并考虑万能板大小及元件之间连线及布局问题,进行实物焊接。焊接的实物图如图6.3所示。

图6.3 实物图 第14页 ,共38页

陕西理工学院毕业论文

6.2.3 硬件调试

正确连线后,开始硬件调试过程。首先应该在没通电的情况下检查元器件的规格和型号是否符合电路要求,再用万用表仔细反复检查线路是否正确。特别需要注意的是电源正负极的接连正确性,保证电源与各信号线之间都不会出现短路现象,地址、控制和数据总线是否出现相互间的短路现象也是本次检查的重点。晶体振荡器和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好地保证振荡器稳定可靠地工作。本系统中这一步如果检查不细致,通电后可能造成不可想象的后果。

通电后不插入芯片检查电路以及各器件引脚的电位,用万用表仔细测量电路和各点电位是否正常,注意测量电源电压是否为5V和3.3V。保证无误后可插入芯片等待进行软件程序调试。调试包含三大部分,第一是设置时间,第二是设置定时时间,第三是模式切换和手动开关。正常情况下,显示实时时间,当需要进行按键操作时,可按照下列步骤执行:长按选择按键一次后释放,出现:

再按下确定键表示进入实时时间的设置。按下选择按键二次,出现:

再按下确定按键表示进入设置定时时间。 (1)进入实时时间设置

进入设置界面如下,首先默认调节年,通过“加”“减”键来调节年的大小,调节完成后按确认键完成年的调节,然后光标跳到月的调节,表示调节月,同理按顺序可以调节日、时、分、秒、星期,最后设置完成,会到主界面显示实时时间;

(2)进入定时时间的设置:

进入设置界面如下,首先默认调节开始时间的时,通过“加”“减”键来调节时的大小,调节完成后按确认键完成时的调节,然后光标跳到分的调节,同理可调节分和秒;

完成开始时间的设置后,进入设置结束时间,界面如下,首先默认调节结束时间的时,通过“加”“减”键来调节时的大小,调节完成后按确认键完成时的调节,然后光标跳到分的调节,同理可调节分和秒;

第15页 ,共38页

陕西理工学院毕业论文

(3)模式切换和手动开关:

可以通过按下“切换”按键来切换模式:在自动模式下,在定时时间内,如果光线黑暗,系统根据人数来开启灯的数量,人数小于10人亮一个灯,10-20人亮二个灯,20-30人亮三个灯,大于30人则全亮四个灯。在手动模式下,可以通过“手动开关”按键来开关四个照明灯。

总结

本设计对教室自动感应照明控制系统的控制部分进行了研究,以光照强度、教室人数等因素作为控制器的输入参数,比单纯的人员管理教室灯光更合理,更能有效的降低教室电能的浪费;同时还加入了时间参数,使教室灯光的控制更加的符合学校的作息时间,也更加的智能。本系统的设计对于各类院校的教室灯光管理具有重要的意义,也适用于各类办公室的灯光控制。

设计中应用了学过的数字电子、模拟电子、单片机、传感器等课程,不仅丰富了已学知识,而且理论联系实际,使我的实践能力有了很大的提高。

本设计是基于单片机STC89C52的教室自动感应照明控制系统,分析了教室灯光智能控制的原理与实现的方法,在此基础上开发了智能控制系统硬件装置和相应的软件。系统硬件包括时钟电路、红外对管电路、光线检测电路、显示模块电路、独立按键操作电路和LED灯控制电路等,软件设计包括人数统计软件设计、光线亮度软件设计以及总体软件设计等。让学校教室的用电合理化,节约了电能并且改善了对教室灯光的管理,实现了教室照明控制系统的自动化、智能化。

致谢

本论文的工作是在老师的悉心指导下完成的,老师严谨的治学态度和科学的工作方法给了我极大的感染和影响,使我受益匪浅,老师给我的设计工作和论文都提出了许多的宝贵意见,电路设计上遇到了好多麻烦,通过上网查阅资料以及老师和同学的耐心帮助下,我不但完成了这次毕业设计而且使我的模拟电子电路和数字电子电路、单片机等有了很大的提高,在此表示衷心的感谢。 感谢母校——陕西理工学院的辛勤培育之恩!感谢电信系给我提供的良好学习及实践环境,使我学到了许多新的知识,掌握了一定的操作技能,适应了社会发展的需要。 大学即将毕业,人生最美好的大学生活即将结束,感谢学校,感谢这一路走过来的所有人。 在撰写论文期间,同学们对我论文的研究工作给予了热情帮助,在此向他们表达我的感激之情。 最后,非常荣幸能在母校四年的学习,使我增长了知识开阔了眼界,最重要的是认识了我的良师益友,感谢这一切的一切。

参考文献

[1]张振昭,许锦标.楼宇智能化技术[M].北京:机械工业出版社.2003. [2]马小军.智能照明控制系统[M].东南大学出版社.2009. [3]周巧仪,戎小戈.智能建筑照明技术.电子工业出版社. [4]张国熊.测控电路[M].北京:机械工业出版社,2003.

[5]胡汉才.单片机原理及接口技术[M].北京:清华大学出版社,2004. [6]靳达.单片机应用系统开发实例导航[J].北京:人民邮电出版社,2005.

[7]谢静,胡耀斌,何霖.教学楼照明系统的智能控制研究[J].机电工程技术,2009(11). [8]贾正松.基于单片机实现智能照明控制系统的设计[J].现代电子技术,2009(17). [9]王松武,于鑫,武思军.电子创新设计与实践[J].北京:国防工业出版社,2003. [10]ISD1Date book voice recoding & p layback Ics.Beijing,2000.

[11]Dallas Corp,DS18B20 Programmable Resolution One-Wire Digital Thermometer.2000.

第16页 ,共38页

陕西理工学院毕业论文

附录A 器件清单

类型 排阻 瓷片电容 插件电容 瓷片电容 插件电容 LED灯

注释 8*10K 104 2.2uF/16V 30 100uF/25V LED

标志符 A1 C1,C6 C3 C4,C5 C7

D1,D4,LED1, LED2,LED3, LED4,LED5, LED10

LED灯 纽扣电池座 开关 XH2pin座 液晶屏 红外接收管 红外发射管 光敏电阻 蓝白可调电阻 插件电阻 插件电阻

LED POWER2 SW POWER LCD1602 RECEIVE SEND 100k 10K 4.7K 510

D2,D3 J1 J3 J4 LCD1 LED6,LED7 LED8,LED9 LIGHT1 R1 R2,R3,R4 R5,R7,R8, R9,R14,R15, R16,R17, R18,R19

插件电阻

10K

R6,R11,R12, R13, AXIAL0.4 R20

插件电阻 插件电阻 按键

100k 100 SW-PB

R10 R21, R22 S1,S2, S3,S4, S5,S6, S7

万用板 电池盒 电池 时钟芯片 单片机 运放 晶振 晶振

9*15cm 四位一体 5号 DS1302 STC89C52 LM339 32768Hz 12M

U1 U2 U4 Y1 Z1

DIP8 DIP40 DIP14 RAD0.1 JZ

第17页 ,共38页

配8Pin IC座 配40Pin IC座 配14Pin IC座

1 1 4 1 1 1 1 1

AXIAL0.4 AXIAL0.4 BUTTON

1 2 7

5

LED3 CR2032 SW-6 XH254-2 LCD1602 LED5 LED5 R_1/4W_L RP3 R_1/4W_L AXIAL0.4

配16Pin排座和排针 黑色 透明

配电池

2 1 1 1 1 2 2 1 1 3 10

覆盖区 SIP-9 RAD0.1 CD5-L RAD0.1 CD5 LED5

注解

LED2~LED5为白色

数量 1 2 1 2 1 8

陕西理工学院毕业论文

附录B 主程序

#include #include

#define uchar unsigned char #define uint unsigned int

//uchar time_data[7]={13,5,10,18,0,30,50}; //年周月日时分秒 ,初始化 uchar time_data[7];

uchar code write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80}; //数据的地址 uchar code read_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};

uchar code table1[]=%uchar code table2[]=\ |00:00:00 0%uchar code table3[]=\ //清屏内容 uchar code table4[]=\ Set Real Time %uchar code table5[]=\ Set Open Time %uchar code table6[]=\ Start Time: %uchar code table7[]=\ 00:00:00 %uchar code table8[]=\ End Time: %uchar code table9[]=%uchar code table0[]=\

bit Adjust; //调节标志位,=1表示进入调节模式,=0是正常模式 bit Auto_flg; //自动模式标志位,=1表示手动模式,=0是自动模式 sbit rs=P1^0; //LCD1602 sbit rw=P1^1; //LCD1602 sbit e=P1^2; //LCD1602 sbit sck=P2^5; //时钟端口 sbit io=P2^6; //时钟端口 sbit rst=P2^7; //时钟端口 sbit SELT =P1^6; //选择键 sbit ENTER=P1^7; //确认键 sbit UP =P3^0; //加键 sbit DOWN =P3^1; //减键

sbit MODE =P3^2; //切换按键接口 sbit SWITCH=P3^3; //手动开关

sbit AUTO_LED=P1^3; //自动模式灯接口 sbit HAND_LED=P1^5; //手动灯接口 sbit LAMP1=P3^4; //灯接口 sbit LAMP2=P3^5; //灯接口 sbit LAMP3=P3^6; //灯接口 sbit LAMP4=P3^7; //灯接口 sbit LIGHT1=P2^0; //光线检测端口 sbit IN1=P2^2; sbit OUT1=P2^1;

第18页 ,共38页

陕西理工学院毕业论文

uchar Select_num; //选择按键按下次数 uchar Enter_num; //确认按键按下次数 float Year,Month,Day,Hour,Minute,Second; //时间设置值 uchar Week;

float Hour_H,Minute_H,Second_H; //设置开始时间 float Hour_L,Minute_L,Second_L; //设置结束时间 int Value1; //人数 uchar IN1_flag=0; uchar OUT1_flag=0; void read_rtc();

/*********************************************************************************************************************/

void delay1(uint z) //延时函数 { uint x,y; for(x=z;x>0;x--) for(y=10;y>0;y--); }

void write_com(uchar com) //写指令函数 { rw=0; delay1(5); rs=0; delay1(5); e=1; delay1(5); P0=com; delay1(5); e=0; delay1(5); }

void write_date(uchar date) //写数据函数 { rw=0; delay1(5); rs=1; delay1(5); e=1; delay1(5); P0=date; delay1(5); e=0; delay1(5);

第19页 ,共38页

陕西理工学院毕业论文

}

void init() //初始化函数 { uchar num; Year=16; Month=1; Day=1; Hour=15; Minute=30; Second=50; Week=6; Hour_H=22; Minute_H=0; Second_H=0; Hour_L=18; Minute_L=0; Second_L=0; e=0; // 时序表e初始为0 write_com(0x38); //设置16*2显示,5*7点阵,8位数据接口 write_com(0x0c); //设置光标 write_com(0x06); //光标自动加1,光标输入方式 write_com(0x01); //清屏 write_com(0x80); //设置初始显示位置 for(num=0;num<16;num++) { write_date(table1[num]); delay1(5); } write_com(0x80+0x40); for(num=0;num<16;num++) { write_date(table2[num]); delay1(5); } }

void SetTime_dispaly(uchar add,uchar dat) //第一个:参数的地址,第二个:参数的内容 { uchar shi,ge; shi=dat/10; //把十位提取出来 ge=dat; //把个位提取出来 write_com(add); //要写的地址 write_date(0x30+shi); //十位的内容 1602字符库 write_date(0x30+ge); //个位的内容 1602字符库 }

第20页 ,共38页

陕西理工学院毕业论文

void Week_dispaly(uchar add,uchar dat) //第一个:参数的地址,第二个:参数的内容 { write_com(add); //要写的地址 write_date(0x30+dat); //十位的内容 1602字符库 }

void Date_dispaly(uchar add,uchar dat) //第一个:参数的地址,第二个:参数的内容 { uchar shi,ge; shi=dat/16; //把十位提取出来 ge=dat; //把个位提取出来 write_com(add+3); //要写的地址 write_date(0x30+shi); //十位的内容 1602字符库 write_date(0x30+ge); //个位的内容 1602字符库 }

void LCD_Clean(uchar i) //液晶屏清除显示 { uchar num; if(i==1) { write_com(0x80); //设置初始显示位置 for(num=0;num<16;num++) //显示第一行内容 { write_date(table3[num]); delay1(1); } } if(i==2) { write_com(0x80+0x40); for(num=0;num<16;num++) //显示第二行内容 { write_date(table3[num]); delay1(1); } } }

void LCD_Display_String(unsigned char line,unsigned char *string) { //液晶屏显示内容,把要显示的内容写到对应的位置 unsigned char i; unsigned char address=0; if(line==1) { address=0x80; //0X80是第1行的第1个位置 ,0x81第2位

第21页 ,共38页

陕西理工学院毕业论文

}

else if(line==2) { address=0x80+0x40; //0X80+0x40是第2行的第1个位置,0X80+0x40+1是第2行第2

} for(i=0;i<16;i++) { write_com(address); write_date(string[i]); address++; } }

void Time_Display(void) { read_rtc(); Date_dispaly(0x80+0x40+9,time_data[6]); //显示秒 Date_dispaly(0x80+0x40+6,time_data[5]); //显示分 Date_dispaly(0x80+0x40+3,time_data[4]); //显示时 Date_dispaly(0x80+11,time_data[3]); //显示日 Date_dispaly(0x80+8,time_data[2]); //显示月 Week_dispaly(0x80+0x40+15,time_data[1]); //显示周 Date_dispaly(0x80+5,time_data[0]); //显示年 // Year/10*16+Year Hour=time_data[4]/16*10+time_data[4];; Minute=time_data[5]/16*10+time_data[5];; Second=time_data[6]/16*10+time_data[6];; }

void write_ds1302_byte(uchar dat) { uchar i; for(i=0;i<8;i++) { sck=0; io=dat&0x01; //准备数据,从最低位开始 dat=dat>>1; sck=1; } }

void write_ds1302(uchar add,uchar dat) {

第22页 ,共38页

陕西理工学院毕业论文

rst=0; _nop_(); //CPU原地踏步 sck=0; _nop_(); rst=1; _nop_(); write_ds1302_byte(add); //传地址 write_ds1302_byte(dat); //传数据 rst=0; //不受其他影响 _nop_(); io=1; sck=1; }

uchar read_ds1302(uchar add) { uchar i,value; rst=0; _nop_(); //CPU原地踏步 sck=0; _nop_(); rst=1; _nop_(); write_ds1302_byte(add); for(i=0;i<8;i++) { value=value>>1; sck=0; if(io) value=value|0x80; sck=1; } rst=0; _nop_(); sck=0; _nop_(); sck=1; io=1; return value; }

void set_rtc() { uchar i,j; for(i=0;i<7;i++) {

//释放 //设置时间 //转换BCD码 第23页 ,共38页

陕西理工学院毕业论文

j=time_data[i]/10; time_data[i]=time_data[i]; time_data[i]=time_data[i]+j*16; } write_ds1302(0x8e,0x00); //去除写保护 for(i=0;i<7;i++) { write_ds1302(write_add[i],time_data[i]); } write_ds1302(0x8e,0x80); //加写保护 }

void read_rtc() { uchar i; for(i=0;i<7;i++) { time_data[i]=read_ds1302(read_add[i]); //最终读出来的数 16进制 } }

/*************************************************按键

****************************************************************/

void Keyscan(void) { if(SELT==0) { delay1(2); if(SELT==0) { while(!SELT); Select_num++; //选择键按下一次 Adjust=1; //进入调节模式 } if(Select_num==1) { LCD_Clean(1); LCD_Clean(2); LCD_Display_String(1,table4); LCD_Display_String(2,table5); write_com(0x80+0); //写 >> write_date(0x3e); write_com(0x80+1); //写 >> write_date(0x3e); Enter_num=0; }

第24页 ,共38页

陕西理工学院毕业论文

if(Select_num==2) { LCD_Clean(1); LCD_Clean(2); LCD_Display_String(1,table4); LCD_Display_String(2,table5); write_com(0x80+0x40+0); //写 >> write_date(0x3e); write_com(0x80+0x40+1); //写 >> write_date(0x3e); Enter_num=0; } if(Select_num==3) { LCD_Clean(1); LCD_Clean(2); LCD_Display_String(1,table1); LCD_Display_String(2,table2); Select_num=0; Enter_num=0; Adjust=0; } write_com(0x0c); Enter_num=0; }

if(ENTER==0) { delay1(2); if(ENTER==0) { while(!ENTER); Enter_num++; } if(Select_num==1) //设置实时时间 { if(Enter_num==1) { LCD_Clean(1); LCD_Clean(2); LCD_Display_String(1,table9); LCD_Display_String(2,table0); SetTime_dispaly(0x80+8,Year); SetTime_dispaly(0x80+11,Month); SetTime_dispaly(0x80+14,Day); SetTime_dispaly(0x80+0x40+6,Hour);

第25页 ,共38页

//光标不再闪烁

陕西理工学院毕业论文

SetTime_dispaly(0x80+0x40+9,Minute); SetTime_dispaly(0x80+0x40+12,Second); Week_dispaly(0x80+0x40+15,Week); write_com(0x80+8); //光标闪烁地址,停留在年的位置上

//光标闪烁

write_com(0x0f); }

if(Enter_num==2) { write_com(0x80+11);

//光标闪烁地址,停留在月的位置上

write_com(0x0f); }

if(Enter_num==3) { write_com(0x80+14);

//光标闪烁

//光标闪烁地址,停留在日的位置上

write_com(0x0f); //光标闪烁 }

if(Enter_num==4) { write_com(0x80+0x40+6); //光标闪烁地址,停留在时的位置上 write_com(0x0f); //光标闪烁 }

if(Enter_num==5) { write_com(0x80+0x40+9); //光标闪烁地址,停留在分的位置上 write_com(0x0f); //光标闪烁 }

if(Enter_num==6) { write_com(0x80+0x40+12); //光标闪烁地址,停留在秒的位置上 write_com(0x0f); //光标闪烁 }

if(Enter_num==7) { write_com(0x80+0x40+15); //光标闪烁地址,停留在星期的位置上 write_com(0x0f); }

if(Enter_num==8) { Enter_num=0;

//光标闪烁

第26页 ,共38页

陕西理工学院毕业论文

}

}

write_com(0x0c); //光标不再闪烁 LCD_Clean(1); LCD_Clean(2);

LCD_Display_String(1,table1); LCD_Display_String(2,table2);

time_data[0]=Year;///10*16+Year; time_data[1]=Week;///10*16+Week; time_data[2]=Month;///10*16+Month; time_data[3]=Day;///10*16+Day; time_data[4]=Hour;///10*16+Hour; time_data[5]=Minute;///10*16+Minute; time_data[6]=Second;///10*16+Second; set_rtc(); //设置时间 Select_num=0; Adjust=0;

if(Select_num==2) //设置开关锁时间 { if(Enter_num==1) { LCD_Clean(1); LCD_Clean(2); LCD_Display_String(1,table6); LCD_Display_String(2,table7); SetTime_dispaly(0x80+0x40+4,Hour_L); SetTime_dispaly(0x80+0x40+7,Minute_L); SetTime_dispaly(0x80+0x40+10,Second_L); write_com(0x80+0x40+4); //光标闪烁地址,停留在时的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==2) { write_com(0x80+0x40+7); //光标闪烁地址,停留在分的位置上 write_com(0x0f); //光标闪烁 } if(Enter_num==3) { write_com(0x80+0x40+10); //光标闪烁地址,停留在秒的位置上

write_com(0x0f); }

if(Enter_num==4)

//光标闪烁

第27页 ,共38页

本文来源:https://www.bwwdw.com/article/m4hg.html

Top