基于单片机的智能台灯毕业论文 - 图文 下载本文

机械与材料工程学院

本科毕业论文(设计)

题 目 基于单片机的多功能智能台灯 专业班级 测控技术与仪器1班 学 号

学生姓名 指导教师 设计所在单位

年 月

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

摘要:

社会在不断进步,人类在不断追求,市场在不断变化,高科技应用含量决定着产品发展的新趋势和前景,智能化技术在电子产品领域的应用意义深远。随着电子产品的快速发展,家用电器也越来越偏向智能化,已经应用于实际中的有智能洗衣机,智能电饭锅,智能电磁炉等,而所用的智能化家用电器都用一个共同的特点,都是利用单片机作为中央控制单元。结合了单片机的智能家用电器和普通家用电器相比,功能上更强,使用更方便,安全可靠性也更高,最重要的是更节省电能,提高了家用电器的品质。

智能台灯以专门感应人体红外信号的热释电红外传感器为基础,以BISS0001信号处理电路,利用单片机进行处理,以达到便于控制的目的。当房间亮度不够时,且有人在附近时,台灯便会自动点亮,省去了黑暗中摸开关麻烦;当学习时由于靠桌面太近,造成坐姿不正,系统就会提示,以纠正坐姿,防止近视;学习太累了时,趴在桌子上睡会儿时,台灯就会自动熄灭;当无人在时,系统也会使台灯自动熄灭,以达到节省能源的目的。

关键词:智能台灯、BISS0001、单片机STC89C51

Intelligent dest lamp desgin based on MCU

Abstract:

Social progress and human in the constant pursuit, the market in a constantly changing, high-tech application content decided the new trend of development of the product and prospects, intelligent technology in the electronic products in the fields of application of meaning. With the rapid development of electronic products, household appliances, has more and more is also turn to intelligent applied in practice of intelligent washing machine, intelligent electric, intelligent induction cooker etc, and the intelligent household appliances are used with a common characteristics, are using single chip microcomputer as the central control unit. Combined with MCU intelligent household appliances and ordinary household appliances, stronger than on the function, use more convenient, safety reliability also higher, the most important is the more to save electric energy, improve the quality of the household appliances.

Intelligence desk lamp for specifically induction human heat-releasing infrared signal based on infrared sensors, BISS0001 signal processing circuit, using single chip computer processing, in order to achieve the purpose of easy control. When the room and someone when insufficient brightness around, desk lamp will be lighted, tell the darkness touch switch trouble; When learning on the desktop is too close, due to causes posture is not straight, the system will hint, in order to correct posture, preventing myopia; Learning too tired, sleep on his desk lamp when, it will automatically out; When no one in, the system also can make desk lamp extinguishes, in order to achieve automatic save energy purposes

Keywords:Intelligence desk lamp、BISS0001、microcontroller STC89C51

目录

第1章 绪论 ........................................................ 1 1.1 智能台灯系统概述 ................................................. 1 1.2 毕业设计内容 ..................................................... 3 第2章.系统主要器件介绍 ............................................ 4 2.1主控芯片介绍 .................................................... 4 2.2 BISS0001 ......................................................... 8 2.3 ADC0809 .......................................................... 8 第3章 系统组成及电路设计 ......................................... 12 3.1 系统组成部分 .................................................... 12 3.2 电路设计部分 .................................................... 13 3.3传感器部分 ..................................................... 16 第4章 软件程序设计 .............................................. 19 4.1主程序流程图 .................................................... 19 4.2主函数流程图 .................................................... 19 第5章 结束语 ................................................... 20 致谢 .............................................................. 22 参考文献 .......................................................... 23 附录 .............................................................. 24

第 1 页

西安文理学院本科毕业设计(论文)

第1章 绪论

1.1 智能台灯系统概述

随着科技的高速发展,各种各样的科技产品、家用电器开始走入人们的生活,这一切都大大地提高了人们的工作效率、改善了人们的生活,现在电器的发展趋势是智能化,这样会使人们使用起来更加方便。随着智能控制理论和人工智能研究的深入,各种更加逼真地模拟人类智能的家用电器会更多地出现,而单片机和智能理论的结合,将来不但更多地改进现行家用电器,而且将会产生全新的家用电器。 家用电器因为单片机的加入而走向智能化,并且随着人们生活水平的提高日益走向平民化,我们的生活也随着家用电器的发展越来越方便、舒适。随着家用电器的发展,作为家用电器当中的小台灯也要顺应科技的发展步伐走向智能化。

台灯是人们生活中用来照明的一种家用电器。它一般分为两种,一种是立柱式的,一种是有夹子的。它的工作原理主要是把灯光集中在一小块区域内,集中光线,便于工作和学习。一般台灯用的灯泡是白炽灯或者节能灯泡,有的台灯还有应急功能,用于停电时无电照明。

目前,灯具市场上出售的灯具种类繁多,一般台灯均采用220V交流电源供电,日光灯管、白炽灯泡为光源,手动开关或触摸感应式开光来控制。但这类台灯存在很多弊端,一是电压是不安全电压,给人们使用带来不安全因素;二是日光灯还具有频闪效应,经常使用会给人的眼睛带来一定的伤害;三是耗电量大、台灯通常都是以日光灯为主,在几瓦到几十瓦之间;四是人工化,人们由于手工操作,往往会忘记关灯,这也造成电能的浪费,到目前为止,在灯具市场上,很少见到采用+5V的直流电源供电的一种人体智能台灯,它具有既不会出现触电,使用寿命长、无辐射、又不污染等优点,有许多普通按键台灯所无法比及的优势,智能化台灯一方面可以更节省电能,有利于环保,另一方面可以纠正使用者的坐姿,预防脊椎变形和眼睛近视。同时,智能台灯在黑暗的时候自动开关灯的功能也让使用者使用起来更方便,省去黑暗摸灯的麻烦。

智能台灯可分为自动和手动两种模式。在自动模式下,台灯能根据环境光的明暗与人是否被台灯所检测到来自动开启台灯。在这里设计了以人体红外辐射(波长为9.5um)传感控制电路。当人体在台灯的范围内时,台灯自动感应环境光线,调节发光亮度,自动感应开灯;当人体太靠近桌面时,台灯自动感应,警告纠正坐姿,若在一定时间内未离开桌面则自动熄灭。当人离开时则自动关灯,达到节约能源的目的。手动模式是灯光亮度不随环境光线变化而变化,可以手动按下调节亮度按键来调节灯光亮度。本设计还有学习时间计时的功能,可手动设置学习时间,当时间到时,台灯报警,提醒学习时间到了该休息了,此时可以用手或者其它障碍物在红外测距传感器前晃一下或者按一下任意按键就可以停止报警。

台灯是一般家庭的生活必需品,但由于经常忘记关灯而造成巨大的能源浪费。全球这么多台灯,估算一下,消耗能源可观。另一个是作为一个必需品,当然要使生活变得更方便,省去了黑暗中开灯的麻烦,并且可以纠正坐姿。本系统在实验室进行了实物实验。热释电红外探测器1的距离是4m左右(距离可调),主要是因为般来说是门离书桌的距离;以便黑暗中时人一到门口则启动,省去了开灯的麻烦,用户可以根据自己的实际情况进行距离调节。红外测距探测器的距离是20cm左右(距离可调),主要考虑是当学习时,有时坐姿不正,引起身体离桌面太近,

第 1 页

西安文理学院本科毕业设计(论文)

容易引起近视,此时台灯发出警告,提醒注意,若在设定的时间内未离开,则强制熄灭。有时人学习累了,趴在桌子上睡觉,而忘了关灯,这时系统就会检测到,从而启动延时程序,一段时间过后,台灯就会自动熄灭。

第 2 页

西安文理学院本科毕业设计(论文)

1.2 毕业设计内容 1.2.1 设计内容和实现功能

名称:基于STC89C51的智能台灯

内容及要求: 设计并制作一种智能台灯,主要是以BISS0001和单片机组成的红外传感控制电路。其特点是在有人时根据环境光线调节灯光的亮度,无人时关灯,节约能源;且能纠正坐姿,防止近视。具体要求如下:

1.以专门感应人体红外信号的热释电红外传感器为基础,以BISS0001信号处理电路,利用单片机进行处理,以达到便于控制的目的;

2.有人在附近时,台灯便会根据环境光线调节灯光亮度,省去了黑暗中摸开关麻烦;

3.当学习时由于靠桌面太近,造成坐姿不正,系统就会提示,以纠正坐姿,防止近视;

4.学习太累了时,趴在桌子上睡会儿时,台灯就会自动熄灭;

5.当无人在时,系统也会使台灯自动熄灭,以达到节省能源的目的

1.2.2 系统分析

台灯已是千家万户的必需生活用品,经常由于忘记关灯而造成巨大的能源浪费。当夜晚来临时,人们又摸黑去开灯,非常不方便。在这里设计了以人体红外辐射(波长为9.5um)传感控制电路。当人体在台灯的范围内且环境光强较弱时,自动感应开灯;当人体太靠近桌面时,台灯自动感应,警告纠正坐姿,若在一定时间内未离开桌面则自动熄灭。当人离开时则自动关灯,达到节约能源的目的。单片机在本次智能节能台灯设计中的主要控制单元,主要控制电路灯光,控制电路是在单片机的控制下工作。

第 3 页

西安文理学院本科毕业设计(论文)

第2章.系统主要器件介绍 2.1主控芯片介绍

STC89C51是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。

1234567891011121314151617181920U1P10P11P12P13P14P15P16P17RESETP30/RXDP31/TXDP32/INT0P33/INT1P34/T0P35/T1P36WRP37/RDX2X1GNDSTC89C52VCCP00P01P02P03P04P05P06P07EA/VPALE/PPSENP27P26P25P24P23P22P21P204039383736353433323130292827262524232221 图2.1 STC89C51单片机引脚图

单片机是美国STC公司最新推出的一种新型51内核的单片机。片内含有Flash程序存储器、SRAM、UART、SPI、PWM等模块。 (一)STC89C51主要功能、性能参数如下:

(1)内置标准51内核,机器周期:增强型为6时钟,普通型为12时钟; (2)工作频率范围:0~40MHZ,相当于普通8051的0~80MHZ; (3)STC89C51RC对应Flash空间:4KB;

第 4 页

西安文理学院本科毕业设计(论文)

(4)内部存储器(RAM):512B; (5)定时器\\计数器:3个16位; (6)通用异步通信口(UART)1个; (7)中断源:8个;

(8)有ISP(在系统可编程)\\IAP(在应用可编程),无需专用编程器\\仿真器; (9)通用I\\O口:32\\36个; (10)工作电压:3.8~5.5V;

(11)外形封装:40脚PDIP、44脚PLCC和PQFP等。 (二)STC89C51单片机的引脚说明: VCC:供电电压。 GND:接地。

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.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入)

第 5 页

西安文理学院本科毕业设计(论文)

P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。这是由硬件自动完成的,不需要我们操心,1然后再实行读引脚操作,否则就可能读入出错,为什么看上面的图,如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1,该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1,也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1。若先执行置1操作,则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入,由于在输入操作时还必须附加一个准备动作,所以这类I/O口被称为准双向口。89C51的P0/P1/P2/P3口作为输入时都是准双向口。

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

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

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

第 6 页

西安文理学院本科毕业设计(论文)

2.1.1 时钟电路

STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。内部时钟方式如图3所示。在STC89C51单片机内部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5~30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2~12MHz间选择,典型值为12MHz和6MHz。

C21830pFY1C311.0592MHz1930pF 图2.2 STC89C51内部时钟电路

2.1.2 复位电路

当在stc89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。 复位电路通常采用上电自动复位和按钮复位两种方式。

最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充放电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。

除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST(9)端与电源Vcc接通而实现的。按键手动复位电路见图4。时钟频率用11.0592MHZ时C取10uF,R取10kΩ。

VCCS49C1R110uF10k 图2.3 89C52 复位电路

第 7 页

西安文理学院本科毕业设计(论文)

2.2 BISS0001

BISS0001是一款具有较高性能的传感信号处理集成电路。它配以热释电红外传感器和少量外接元器件即可构成被动式热释电红外开关,故能自动快速开启各类白炽灯、荧光灯、蜂鸣器、自动门、电风扇、烘干机和自动洗手池等装置,特别适用于企业、宾馆、商场、库房及家庭的过道等敏感区域,或用于安全区域的自动灯光、照明和报警系统。BISS001的主要功能如下:

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

2.3 ADC0809

2.3..1ADC0809的引脚及功能介绍

逐次比较型A/D转换器在精度、速度、和价格上都适中,是最常用的A/D转换器件。芯片采用的是ADC0809,以下介绍ADC0809的引脚及功能。芯片如图3-4所示。

图2.4 ADC0809的引脚图

ADC0809是一种逐次比较式8路模拟输入、8位数字量输出的A/D转换器。由图可见,ADC0809共有28个引脚,采用双列直插式封装。主要引脚功能如下:

⑴ IN0-IN7是8路模拟信号输入端。 ⑵ D0-D7是8位数字量输入端。

⑶ A、B、C与ALE控制8路模拟通道的切换,A、B、C分别与3根地址线或

第 8 页

西安文理学院本科毕业设计(论文)

数据线相连,3位编码对应8个信道地址端口。

ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。下面说明各引脚功能。

IN0~IN7:8路模拟量输入端。 2-1~2-8:8位数字量输出端。

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。

START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地。

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。

转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。 (1)定时传送方式

对于一种A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已 经完成了,接着就可进行数据传送。 (2)查询方式

A/D转换芯片有表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。

第 9 页

西安文理学院本科毕业设计(论文)

(3)中断方式

把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。

需要注意的是:ADC0809虽然有8路模拟通道可以同时输入8路模拟信号,但每个瞬间只能换1路,共享一个A/D转换器进行转换,各路之间的切换由软件改变C、A、B引脚上的代码来实现。地址锁存与译码电路完成对 A、B、C 3个地址位进行锁存和译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线相连,下图为通道选择表。

图2.5 (2)通道选择表

⑷ OE、START、CLK为控制信号端,OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端。

⑸ VR(+)和VR(-)为参考电压输入端。

第 10 页

西安文理学院本科毕业设计(论文)

2.3.2 ADC0809的结构及转换原理

ADC0809的结构框图如图2.6。ADC0809采用逐次比较的方法完成A/D转换的,由单一的+5V电源供电。片内有锁存功能的8路选1的模拟开关,由C、B、A引脚的功能来决定所选的通道。0809完成一次转换需100μs左右,输出具有TTL三态锁存缓冲器,可直接连接到MCS-51的数据总线上。

通过适当的外接电路,0809可对0-5V的模拟信号进行转换。

START CLK

IN7 …. IN0

8 路模拟量开 8位A/D三态输出锁存器 EOC D0 . . . C B A

转换地址锁存与密器 VCC GND VR(+) VR(-) 图2.6 ADC0809的结构框图

OE

2.3.3 ADC0809连线图

U22627C410428123VCC4513161112IN-0IN-1IN-2IN-3IN-4EOCIN-5IN-6IN-7ALEref(-)ref(+)ADC0809ENABLESTARTCLOCKADD-AADD-BADD-Cmsb2-12-22-32-42-52-62-7lsb2-82120191881514177252423229OE610ALESTAD7AD6AD5AD4AD3AD2AD1AD0EOCR64.7kVCC 图2.7 ADC0809的连线图

第 11 页

西安文理学院本科毕业设计(论文)

第3章 系统组成及电路设计

本系统制作的主要设计源泉来源于生活,因此创新之处也在于处理生活中一些比较常见的问题。以专门感应人体红外信号的热释电红外传感器为基础,以BISS0001信号处理电路,利用单片机进行处理,以达到便于控制的目的。

3.1 系统组成部分 3.1.1 系统工作原理

STC89C51 热释电红外传感器1 晶振电路 红外测距传感器 光敏电阻 蜂鸣器提醒电路 复位电路 灯光控制电路

图3.1 系统示意图

本系统组成如图3.1所示,主要由四部分组成:

1.传感器部分:热释电传感器、红外测距传感器、光线传感器 ; 2.以STC89C51组成的中央处理单元:处理信号并发出控制命令;

3.灯光控制电路部分:根据STC89C51给出的命令控制灯光亮灭和亮度; 4.蜂鸣器报警部分,用于学习时间到达报警和坐姿矫正报警。

3.1.2 系统控制核心

该智能台灯的系统主要由传感器、MCU单元、蜂鸣器、显示部分、按键和灯等部分组成。信号检测与处理部分由热释电红外传感器、光敏电阻和红外测距传感器组成;传感器的作用是感知是否有人在,故采用的是热释电红外传感器,该传感器只对波长为10μm(人体辐射红外线波长)左右的红外辐射敏感,而对除人体以外的其它物体不会引发探头动作;光敏电阻的作用是感知台灯周围环境的光照强

第 12 页

西安文理学院本科毕业设计(论文)

度;MCU部分采用的是89C5l单片机,该单片机具有价格低廉、开发简单、操作方便及可以加密等优点,因此市场占有量非常大。该单片机作用是接收传感器返回信号,处理后控制显示、报警、灯等电路工作;蜂鸣器单元主要是根据MCU单元发出的命令给出警告信号; 灯的控制是有三极管驱动,通过单片机的IO口输出PWM脉冲,控制灯的亮度。坐姿矫正传感器是有红外测距传感器测量障碍物与系统距离,小于报警距离时,蜂鸣器就会报警。显示部分是由4位1体共阳数码管,通过9012三极管驱动构成。

图3.1.2单片机控制电路图

3.2 电路设计部分

3.2.1传感器组成的信号检测及处理部分

在电路设计部分中,单片机在本次智能节能台灯设计中的主要控制单元,主要控制电路灯光,控制电路是在单片机的控制下工作。传感器在设计中起着重要的作用,传感器组成的信号检测及处理部分电路原理如图3.2所示。

图3.2是由热释电红外传感器、光敏电阻、BISS0001组成的信号检测及处理电路。红外热释电红外传感器只对波长为10μm(人体辐射红外线波长)左右的红外辐射敏感,所以除人体以外的其它物体不会引发探头动作。探头内包含两个互相串联或并联的热释电元,而且制成的两个电极化方向正好相反,环境背景辐射对两个热释组件几乎具有相同的作用,使其产生释电效应相互抵消,于是探测器无信号输出。一旦人侵入探测区域内,人体红外辐射通过部分镜面聚焦,并被热释电元接收,但是两片热释电元接收到的热量不同,热释电也不同,不能抵消,于是输出检测信号。 BISS0001是由运算放大器、电压比较器、状态控制器、延迟时间定时器以及封锁时间定时器等构成的数模混合专用集成电路。当外界光强较强时,光敏电阻阻值很小,BISS0001检测到低电平,从而封锁14脚,禁止传感器infare1的信号。当外界光强较弱时,光敏电阻阻值很大,BISS0001检测到低

第 13 页

西安文理学院本科毕业设计(论文)

电平,开启14脚;infare1检测到人体信号时,产生微弱的信号输出,经R5、R1005、R4、C1、C6、C7组成的信号放大滤波电路。R1000、R1001、C1000和C1001组成的延时电路。信号经处理后从2脚输出。

图3.2.1传感器组成的信号检测及处理系统

单片机灯光控制电路如图所示。

VCCVCCD1Q8SS8550R12R1310k2.2KD5D9LEDLEDD2LEDD6LEDD10R112.2kQ7SS8050LEDD3LEDD7LEDD11LEDD4LEDD8LEDD12LEDLEDLED

图3.3.1(2)单片机灯光控制电路

图3.3是由单片机组成的灯光控制电路。LED的负极接地,所有灯并联,正极接在三极管Q8的集电极,当单片机的io口LED输出高电平时,Q7导通,Q8的基极被导通的Q7拉低,Q8导通,并联的LED灯的正极就接在了电源上,灯就亮了,当单片机的io口led低电平时,Q7截止,Q8的基极被R12的10k电阻拉高,Q8截止,并联LED的正极不接电源,LED熄灭。当单片机的IO口很快的变化时,就可以通过PWM的占空比控制灯的亮度了。

第 14 页

西安文理学院本科毕业设计(论文)

3.2.2数码管显示

数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管:按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。由于它的价格便宜使用简单在电器特别是家电领域应用极为广泛。本设计采用共阴极数码管来显示时间。

12S11110AFS29S387BU34-LEDS1afS2S3CGS4EdpD123456 图3.2.2数码管显示

第 15 页

cgS4edpb西安文理学院本科毕业设计(论文)

3.3传感器部分

3.3.1传感器的原理特性

热释电红外传感器和热电偶都是基于热电效应原理的热电型红外传感器。不同的是热释电红外传感器的热电系数远远高于热电偶,其内部的热电元由高热电系数的铁钛酸铅汞陶瓷以及钽酸锂、硫酸三甘铁等配合滤光镜片窗口组成,其极化随温度的变化而变化。为了抑制因自身温度变化而产生的干扰 该传感器在工艺上将两个特征一致的热电元反向串联或接成差动平衡电路方式,因而能以非接触式检测出物体放出的红外线能量变化 并将其转换为电信号输出。热释电红外传感器在结构上引入场效应管的目的在于完成阻抗变换。由于热电元输出的是电荷信号,并不能直接使用 因而需要用电阻将其转换为电压形式 该电阻阻抗高达104MΩ,故引入的N沟道结型场效应管应接成共漏形式 即源极跟随器 来完成阻抗变换。热释电红外传感器由传感探测元、干涉滤光片和场效应管匹配器三部分组成。设计时应将高热电材料制成一定厚度的薄片,并在它的两面镀上金属电极,然后加电对其进行极化,这样便制成了热释电探测元。由于加电极化的电压是有极性的,因此极化后的探测元也是有正、负极性的。

3.3.2传感器的工作原理

在该探测技术中,所谓“被动”是指探测器本身不发出任何形式的能量,只是靠接收自然界能量或能量变化来完成探测目的。被动红外报警器的特点是能够响应入侵者在所防范区域内移动时所引起的红外辐射变化,并能使监控报警器产生报警信号,从而完成报警功能。图4所示是该报警器的工作电路原理图。

当人体辐射的红外线通过菲涅尔透镜被聚焦在热释电红外传感器的探测元上时,电路中的传感器将输出电压信号,然后使该信号先通过一个由C1、C2、R1、R2组成的带通滤波器,该滤波器的上限截止频率为16Hz,下限截止频率为0.16Hz。由于热释电红外传感器输出的探测信号电压十分微弱(通常仅有1mV左右),而且是一个变化的信号,同时菲涅尔透镜的作用又使输出信号电压呈脉冲形式(脉冲电压的频率由被测物体的移动速度决定,通常为0.1~10Hz左右),所以应对热释红外传感器输出的电压信号进行放大。本设计运用集成运算放大器LM324来进行两级放大,以使其获得足够的增益。

3.3.3光敏电阻

光导管,常用的制作材料为硫化镉,另外还有硒、硫化铝、硫化铅和硫化铋等材料。这些制作材料具有在特定波长的光照射下,其阻值迅速减小的特性。这是由于光照产生的载流子都参与导电,在外加电场的作用下作漂移运动,电子奔向电源的正极,空穴奔向电源的负极,从而使光敏电阻器的阻值迅速下降。

3.3.4光敏电阻的作用与功能

环境光检测是比较重要的一个部分,其中关键的元件有两个,一个是光敏二极管,一个是50K的可变电阻(电位器)。光敏二极管的检测能力的强弱(灵敏度)是根据那个可变电阻来控制的,有的人认为天色还挺亮的,灯就开了,那你就把电阻变大些,光敏二极管的灵敏度就下降了,这样就可以达到等天再暗些再开灯。同样的,如果你觉的天色已经很暗了,灯还不亮,那你把电阻调小些就可以了。这样多调几次,你就能把智能台灯调到一个最理想的最适合你的状态了。

第 16 页

西安文理学院本科毕业设计(论文)

3.3.5测距传感器

图3.3.4 环境光的检测

测距采用光电传感器,是一种集发射与接收于一体的光电传感器。检测距离可以根据要求进行调节。该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。

光电传感器是采用光电组件作为检测组件的传感器。它首先把被测量的变化转换成光信号的变化,然后借助光电组件进一步将光信号转换成电信号。光电传感器一般由光源、光学通路和光电组件三部分组成。

光电检测方法具有精度高、反应快、非接触等优点,而且可测参数多,传感器的结构简单,形式灵活多样,因此,光电式传感器在检测和控制中应用非常广泛。

光电传感器是各种光电检测系统中实现光电转换的关键组件,它是把光信号(红外、可见及紫外光辐射)转变成为电信号的器件。

光电式传感器是以光电器件作为转换组件的传感器。它可用于检测直接引起光量变化的非电量,如光强、光照度、辐射测温、气体成分分析等;也可用来检测能转换成光量变化的其它非电量,如零件直径、表面粗糙度、应变、位移、振动、速度、加速度,以及物体的形状、工作状态的识别等。光电式传感器具有非接触、响应快、性能可靠等特点,因此在工业自动化装置和机器人中获得广泛应用。新的光电器件不断涌现,特别是CCD图像传感器的诞生,为光电传感器的进一步应用开创了新的一页。

光电传感器是通过把光强度的变化转换成电信号的变化来实现控制的。光电传感器在一般情况下,有三部分构成,它们分为:发送器、接收器和检测电路。发送器对准目标发射光束,发射的光束一般来源于半导体光源,发光二极管(LED)、激光二极管及红外发射二极管。光束不间断地发射,或者改变脉冲宽度。接收器有光电二极管、光电三极管、光电池组成。在接收器的前面,装有光学组件如透

第 17 页

西安文理学院本科毕业设计(论文)

镜和光圈等。在其后面是检测电路,它能滤出有效信号和应用该信号。

本设计所用传感器平时输出高电平,当检测到被测物体时会输出低电平,将低电平信号给单片机处理,实现测距报警。

MKVCCOUTGNDHWCJVCCHW1kR3

图3.3.5模块电路图

第 18 页

西安文理学院本科毕业设计(论文)

第4章 软件程序设计

4.1主程序流程图

主程序流程图如图5.1

4.2主函数流程图

开始 系统初始化 进入while循环 调用按键和显示函数 结束 图5.1主程序流程图

开始 系统初始化 进入while循环 调用按键和 显示函数 结束第 19 页 西安文理学院本科毕业设计(论文)

第5章 结束语

首先,通过本次智能台灯系统的设计,在各方面能力上都有着很大程度上提高,单片机方面的专业知识也有很深的了解,也深刻了解写一篇设计报告的步骤和格式,有过这样的一次训练,相信在以后的毕业设计报告中会起到很大的帮助,而且学会良好的格式会为将来的工作提供较好的基础。

本系统的主要设计思想来源于生活。台灯是一般家庭的生活必需品,但由于经常忘记关灯而造成巨大的能源浪费。全球这么多台灯,估算一下,消耗能源可观。另一个是作为一个必需品,当然要使生活变得更方便,省去了黑暗中开灯的麻烦,并且可以纠正坐姿。本系统在实验室进行了实物实验。热释电红外探测器1的距离是4m左右(距离可调),主要是因为般来说是门离书桌的距离;以便黑暗中时人一到门口则启动,省去了开灯的麻烦,用户可以根据自己的实际情况进行距离调节。热释电红外探测器1的距离是10cm左右(距离可调),主要考虑是当学习时,有时坐姿不正,引起身体离桌面太近,容易引起近视,此时台灯发出警告,提醒注意,若在设定的时间内未离开,则强制熄灭。有时人学习累了,趴在桌子上睡觉,而忘了关灯,这时系统就会检测到,从而启动延时程序,一段时间过后,台灯就会自动熄灭。

本系统的主要技术难点在于对人体红外信号的采集及处理。由于采用的是热释电红外传感器,当人体进入其感应范围时,传感器就会产生几mV信号,然后通过以BISS0001为中心的信号处理电路,对信号进行二次放大,并滤波,以防止外界的信号产生干扰。信号经过BISS0001后从而转化为数字信号输出,便于用单片机进处理。

本系统制作的主要设计源泉来源于生活,因此创新之处也在于处理生活中一些比较常见的问题。以专门感应人体红外信号的热释电红外传感器为基础,以BISS0001信号处理电路,利用单片机进行处理,以达到便于控制的目的。当房间亮度不够时,且有人在附近时,台灯便会自动点亮,省去了黑暗中摸开关的麻烦;当学习

第 20 页

西安文理学院本科毕业设计(论文)

时由于靠桌面太近,造成坐姿不正,系统就会提示,以纠正坐姿,防止近视;当学习太累了时,趴在桌子上睡会儿时,台灯就会自动熄灭;当无人在时,系统也会使台灯自动熄灭,以达到节省能源的目的。

虽然本系统以达到了使生活方便的目的,但是电路还是不够简单。因为当有多个热释电红外传感器时,就需要相应的信号检测电路。改进之处在于用一个信号处理电路同时控制多个传感器。还有一个不足之处在台灯开启时,产生的光强容易干扰光敏电阻对环境光强的判别,引起误判,现在的处理方法是传感器部分与控制部分单独分开放置。 第 21 页

西安文理学院本科毕业设计(论文)

致谢

通过这一阶段的努力,我的毕业设计终于完成了,这意味着我的大学生活即将结束。在大学阶段,我在学习上和思想上都受益匪浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。

在本论文的完成过程中,我的指导老师陈琪师大量的心血,从选题到开题报告,从写作提纲到一遍又一遍地指出每稿中的具体问题,严格把关,循循善诱,在此我衷心感谢。同时我还要感谢在我学习期间给我极大关心和支持的各位老师以及关心我的同学和朋友。

写作毕业论文是一次在系统学习的过程,毕业论文的完成,同样也意味着新的学习生活的开始,我会铭记学校里学到的在未来工作生活中不断进步。

感谢各位专家的批评指导。

第 22 页

西安文理学院本科毕业设计(论文)

参考文献

[1] 赵国强.智能台灯.科学启蒙.2007, 第Z1期

[2]赵继文.传感器与应用电路设计.北京科学出版社,2002. [3]黄继昌.电子元器件应用手册.北京人民邮电出版社, 2004 [4]赵辉.Protel99电子线路CAD.北京邮电大学出版社,2007 [5]毕淑娥.电工与电子技术基础.哈尔滨工业大学出版社,2008 [6]李全利.单片机原理及应用.清华大学出版社,2006.2

[7]黄长艺.机械工程测试技术基础,机械工业出版社,2009.3,68-124 [8]金发庆.传感器技术与应用. 机械工业出版社, 2004.8,281-290 [9]王港元.电子技能基础.成都科技大学出版社,1999

[10]热释电红外传感器.http://baike.http://www.32336.cn//view/1788636.htm [11]光敏电阻.http://baike.http://www.32336.cn//view/55997.htm

[12]夏路易.单片机在控制系统中的应用.北京希望电子出版社,2006 [13]李朝青.单片机原理及接口技术.北京航空航天大学出版社,2004

[14]位永辉.杨威. 基于BISS0001的智能台灯设计.电子元器件应用,2010

第 23 页

西安文理学院本科毕业设计(论文)

附录

Pcb电路图

第 24 页

西安文理学院本科毕业设计(论文)

原理图:

VCCS11211102627C4R610414.7k23VCC451316111228IN-1IN-2IN-3IN-4S1fS2S3IN-5IN-6IN-7ALEref(-)ref(+)ADC0809VCCENABLESTARTCLOCKADD-AADD-BADD-C252423229OE610ALESTY112MHZC130PC230PEDDPHW15LED14+53119189P3.717P3.616T1T0EA/VPX1X2RESETRDWRSTC89C51/52CGS4INT1INT0P20P21P22P23P24P25P26P27123456EOC7EOCR110kOE13EOC122122232425262728subaddsetchangeW4W3W2W110kcgS4edpba+C310ufAD0AD1AD2AD3AD4AD5AD6AD712345678P10/TP11/TP12P13P14P15P16P17P00P01P02P03P04P05P06P073938373635343332AFBEDDPCG987IN-0msb2-12-22-32-42-52-62-7lsb2-8212019188151417AD7AD6AD5AD4AD3AD2AD1AD0U1123456789BU2VCC103AFS2S3U34-LEDVCCVCCQ190121011ST30ALE29W1Q29012R32.2kR42.2kS2S3Q39012R52.2kS4W4Q49012P121POWER3S1531531642642RXDTXDALE/PPSENR22.2kS1W2K4U4VCC24VCC人体感应模块U5GNDVCCOUTVCCsub13红外接近传感器K3GNDOUTVCCD1add1324LEDD5W3D9VCCQ69012Q8SS8550R12R1310k2.2KLEDD2LEDD6LEDD10K2R7R810k2.2kQ59013VCCR102.2kset1324HWR112.2kQ7SS8050LEDD3LEDD7LEDD11R91kP3.7K1change1324LEDD4LEDD8LEDD12P3.6光敏LEDLEDLED

第 25 页

西安文理学院本科毕业设计(论文)

多功能智能台灯c语言程序: #define uint unsigned int #define uchar unsigned char #define DUAN P0 //头函数

#include unsigned

0-9的编码//gc.debfa unsigned

带点的数字0-9的编码//gc.debfa uchar pdata tt[51]; char min,sec;

//定义空数组用于AD0809取平均值

//定义占空比比例,热释电计时秒变量 //定义计时分秒

uchar scale=20,rsd_sec;

char

code

tab_dian[]={0x80,0x9b,0x42,0x0a,0x19,0x0c,0x04,0x9a,0x00,0x08,0xdf}; //

code

#include

char

tab[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28,0xff}; //数字

bit bdata flag_auto,ss,flag_bs,flag_rsd,flag_jiejin=1; //位定义自动切换的,闪烁标志,报警位标志,热释电动作标志,接近传感器标志 uchar flag_set=0; uint lum; //函数声明

void delay(uchar i); //管脚声明

sbit LED = P3^4; //灯光控制输出 sbit change= P2^3;

//自动模式切换按键

sbit set = P2^2; //设置按键 sbit add = P2^1; //加按键 sbit sub = P2^0; //减按键 sbit rsd = P3^6; //热释电 sbit jiejin=P3^5; //接近开关 sbit buzz=P3^7;

sbit W0=P2^7; sbit W1=P2^6;

//设置变量:0 正常 1 调分 2 调秒 //ad0809读出值

第 26 页

西安文理学院本科毕业设计(论文)

sbit W2=P2^5;

sbit W3=P2^4; //数码管位端 /***********显示函数*************/ void display() {

if(flag_set==0) { }

else if(flag_set==1) {

if(ss==1) {

DUAN=tab[min/10]; W0=0; delay(1); W0=1;

DUAN=tab_dian[min]; W1=0;

//闪烁标志 ss=1 正常显示 //设置模式下闪烁相应位

DUAN=tab[min/10]; //送入段码 W0=0; W0=1; W1=0; delay(1); W1=1;

DUAN=tab[sec/10]; W2=0; delay(1); W2=1;

DUAN=tab[sec]; W3=0; delay(1); W3=1;

//打开位地址 //小延时 //关闭位地址

delay(1);

//正常模式下

DUAN=tab_dian[min]; //下同

第 27 页

西安文理学院本科毕业设计(论文)

}

delay(1); W1=1;

else //闪烁标志 ss=0 熄灭相应位 达到闪烁效果 ss在定时器里500ms取反一次

{ DUAN=tab[10]; W0=0; delay(1); W0=1;

DUAN=tab_dian[10]; W1=0; delay(1); W1=1;

}

DUAN=tab[sec/10]; W2=0; delay(1); W2=1;

DUAN=tab[sec]; W3=0; delay(1); W3=1;

}

else {

DUAN=tab[min/10]; W0=0; delay(1); W0=1;

DUAN=tab_dian[min]; W1=0;

delay(1);

第 28 页

西安文理学院本科毕业设计(论文)

}

}

W1=1; if(ss==1) { } else { }

DUAN=tab[10]; W2=0; delay(1); W2=1;

DUAN=tab[10]; W3=0; delay(1); W3=1;

DUAN=tab[sec/10]; W2=0; delay(1); W2=1;

DUAN=tab[sec]; W3=0; delay(1); W3=1;

/*****************按键函数*****************/ void KEY() {

uint lum_mean,lum_all; uchar b,c; if(change==0) {

delay(10);

//去抖

//再次判断按键按下

if(change==0)

//自动切换按键按下

第 29 页

西安文理学院本科毕业设计(论文)

}

{ }

while(!change) display();buzz=1; //按键释放 松开按键后关闭蜂鸣

buzz=0;

//蜂鸣器鸣响

flag_auto=!flag_auto; //自动模式标志位取反

if(flag_auto==1) //当切换到手动模式时 首先将LED发光比例scale=20;

设置在50%

if(jiejin==0&&flag_jiejin==1) //接近传感器检测到障碍时 开启报警 { }

if(jiejin!=flag_jiejin) { }

if(set==0) {

delay(10); if(set==0) { }

buzz=0; flag_set++; flag_set=0; flag_bs=0;

//按下设置 关闭报警

//设置变量++

//加到3时回复回正常模式

if(flag_set==3)

//设置键按下时

buzz=1; flag_jiejin=1;

//接近传感器检测不到障碍时 关闭

buzz=0; flag_jiejin=0;

报警

第 30 页

西安文理学院本科毕业设计(论文)

}

while(!set) display(); buzz=1; //按键释放

//加键按键只有在设置状态

if(flag_set==1) { }

if(flag_set==2) {

{ }

if(sub==0) { }

delay(10); if(sub==0) { }

buzz=0; min--; if(min<0) min=59;

delay(10); if(add==0) { }

buzz=0; min++; min=0;

(flag_set!=0)时按下才有效

//调分时 //加按键按下时

if(add==0)

//分++

if(min>=60)

while(!add) display(); buzz=1;

//减按键按下时

//分--

while(!sub) display(); buzz=1;

//调秒时

第 31 页

西安文理学院本科毕业设计(论文)

} {

if(add==0) { }

if(sub==0) { }

while(!sub);

//加键按下

delay(10); if(add==0) { }

while(!add) display(); buzz=1;

//减键按下

buzz=0; sec++; sec=0;

//秒++

if(sec>=60)

delay(10); if(sub==0) { }

while(!sub) display(); buzz=1;

buzz=0; sec--; if(sec<0) sec=59;

//秒--

if(flag_auto==0)

//自动模式时

//且有人在范围内时

//将空数组tt【】内数值整体左移一

if(flag_rsd==1) {

for(b=0;b<49;b++)

第 32 页

西安文理学院本科毕业设计(论文)

} else {

if(flag_set==0) {

if(add==0) {

delay(10); if(add==0) {

// buzz=0;

scale++; if(scale>=41)

//灯光比例++

//加键按下

//正常模式下

//手动模式下

} else scale=1;

//没有人在范围内时 将灯光亮度调至0%

{ }

tt[49]=ADC0809(); for(c=0;c<50;c++) { }

lum_mean=lum_all/50; lum_all=0;

//判断取出平均值大小 //大于150 发光强度 //其他值时将其计算得到

//将总数/50取出平均值 //将总数清零

lum_all=lum_all+tt[c];

//将读出的ad0809数值放入tt【49】 //将tt【】内数值相加

tt[b]=tt[b+1];

//将后一数值放到前一位置

if(lum_mean<=30) scale=1;

小于30 发光强度0%

else if(lum_mean>=150) scale=41; else scale=((lum_mean-30)/3)+1;

100%

发光强度 (计算目的是为了得到一个1-41之间的数值 控制灯光变化)

第 33 页

西安文理学院本科毕业设计(论文)

}

}

}

}

}

scale=41; display();

// while(!add) display(); buzz=1; if(sub==0) { }

delay(10); if(sub==0) {

// buzz=0; }

while(!sub) display(); buzz=1;

scale--; if(scale<=1) scale=1; display();

//灯光比例--

//减键按下时

//

/*********定时器初始化函数**********/ void init() {

TMOD=0x11; //工作方式 TH1=0x3c;

TL1=0xb0; //T1赋初值50ms TH0=0xff; TL0=0xe7; ET0=1; ET1=1; EA=1; TR0=1; TR1=1;

//定时器定时开关 //打开中断允许开关 //中断总开关

//T0赋初值25us

第 34 页

西安文理学院本科毕业设计(论文)

}

/****************主函数**********************/ void main() { }

/*****************延时函数:大约1ms************************/ void delay(uchar i) {

uchar j,k; for(j=i;j>0;j--) for(k=125;k>0;k--); }

/******************定时器T0服务函数:脉冲发生函数*******************/ void time0() interrupt 1 {

uchar n; TH0=0xff; TL0=0xe7; n++; { }

LED=1;

if(n

//重新赋初值 //每25us n++

//n<设置比例时,打开灯

while(1) //循环 { }

KEY();

//调用按键函数

display(); //调用显示函数 init(); rsd=0;

//调用初始化函数

flag_auto=1; //初始化手动模式

//热释电引脚置低(有信号时时高电平)

//延时500ms后开机

delay(500);

第 35 页

西安文理学院本科毕业设计(论文)

}

else if(n>=scale)//n大于等于设置比例时 关闭灯 { }

if(n==40) { } else ;

n=0;

//n=0

//n==40 :25us*40=1ms 1kHZ

LED=0;

/********************定时器T0服务函数:计时和闪烁控制********************/ void time1() interrupt 3 {

uchar m;

uchar flag_BJ=0; TH1=0x3c; TL1=0xb0; m++; { }

if(m==20) {

m=0;

//m=0

//热释电无信号时 //热释电计时秒++

//热释电计时秒小于等于30 并且 热

if(rsd==0) rsd_sec++;

//到达1s时

ss=!ss;

//闪烁变量取反

//重新赋初值 //50ms m++

if((m==10||m==20)&&flag_set!=0) //每过500ms 并且 在设置状态时

if(rsd_sec<=30&&rsd==1) {

rsd_sec=0; flag_rsd=1;

释电有信号时

//将热释电秒清零

//标志位置1 控制AD0809采集数值

调节灯光亮度

第 36 页

西安文理学院本科毕业设计(论文)

}

else if(rsd_sec>30&&rsd==0) //热释电计时秒大于30 并且 热释电{ }

if(flag_BJ==1) {

buzz=1; flag_BJ=0;

//正常模式下

flag_rsd=0; rsd_sec=0;

//标志位置0 停止ad0809转换 关闭

无信号时

灯光

//热释电计时秒清零

/*

} */

if(flag_set==0&&flag_bs==0&&((min+sec)!=0)) { }

else buzz=1;

sec--; if(sec<0) { }

if(min<=0&&sec==0) { }

min=0; flag_bs=1; flag_BJ=1; buzz=0;

//分和秒都减到零

sec=59; min--;

//复位到59秒 //分--

//定时秒-- 小于0时

&&未报警&&定时时间不为零时

//蜂鸣器报警提示时间到

//

} }

第 37 页