基于51单片机的智能台灯设计 - 图文

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

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

摘要

LED台灯作为LED绿色照明光源产品,作为国家绿色照明推广使用的产品。随着时代发展,节能环保、健康与人们的日常生活变得密不可分,科技的进步,也使家电更加智能化和人性化。台灯作为家电中基础的,也是必不可少的,所以,提出PWM调光灯设计。

该设计是以STC89C51RC单片机为控制核心的集多种功能于一体的智能LED台灯。该台灯实现了光亮度具有手动、自动两种调节方式;具有呼吸模式功能,还具有红外遥控功能。硬件设计部分分为单片机控制模块、按键模块、照明模块、光敏模块、LED指示模块、遥控模块等多个部分。单片机主控制芯片选用STC89C51RC,LED指示模块选用三种不同颜色的小LED来指示不同的工作模式,通过按键模块来调整工作模式和LED的亮度,照明模块选用12草帽型白光LED,光敏模块选用ADC0809芯片实现对光敏信号的采集,并利用PWM调光技术对LED进行光度的自动调节。可以通过红外遥控远距离无线遥控,通过单片机C语言编程进行软件设计,综合实现了全部控制功能。

关键词

LED台灯 光度 PWM调光 自动调节

Abstract

LED lamp as LED green lighting products, as the country to promote the use of green lighting products. With the development of the times,energy saving and environmental protection, health and the peopledaily life are inseparable, the progress of science and technology,also makes home appliances more intelligent and humanized. The lamp as home appliances based, so is also essential,, put forward PWM dimming the lights design.

The design is based on STC89C51RC SCM as control core and multi functions in one of the intelligent LED lamp. The table lamp realizes the brightness with manual, automatic two types of regulation;respiratory mode function, but also has the function of infrared remote control. The design of the hardware part consists of MCU control module, keyboard module, lighting module, photosensitive module,LED module, remote control module instruction. The MCU main control chip STC89C51RC, LED indicating module with three kinds ofdifferent colors of small LED to indicate different working modes,brightness through the key module to adjust the working mode and the LED lighting module, using 12 straw hat type white LED,photosensitive module uses ADC0809 chip implementation of a signal acquisition, automatic regulation and luminosity of LED using PWM dimming technology. Through the infrared remote control, wireless remote control, software design of the MCU C language programming,integrated control functions are realized by.

Key word

LED lamp dimming automatically adjust luminosity of PWM

2

目录

第1章 绪论.................................................................................................................. 5 1.1 课题研究背景......................................................................................................... 5 1.2 系统方案的提出..................................................................................................... 5

1.2.1 LED优势 ...................................................................................................... 5 1.2.2 方案简述....................................................................................................... 6 第2章 系统方案的选择............................................................................................... 7 2.1 控制芯片的选择方案............................................................................................. 7

2.1.1 STC89C51RC ............................................................................................... 7 2.1.2 AVR单片机 .................................................................................................. 7 2.1.3 FPGA ............................................................................................................ 8 2.1.4 主控制芯片的确定....................................................................................... 8 2.2 照明模块的选择..................................................................................................... 8

2.2.1 三极管驱动................................................................................................... 8 2.2.2 PWM芯片控制 ............................................................................................ 9 2.2.3 照明方案的确定......................................................................................... 10 2.3 遥控模块的选择................................................................................................... 10

2.3.1 超再生无线模块......................................................................................... 10 2.3.2 红外遥控.................................................................................................... 11 2.3.3 遥控方案的确定......................................................................................... 11 第3章 硬件设计........................................................................................................ 12 3.1 单片机STC89C51芯片简介............................................................................. 12 3.2 LED驱动电路 .................................................................................................... 16 3.3 按键控制电路....................................................................................................... 18 3.4 LED指示电路 .................................................................................................... 19 3.5自动控制电路........................................................................................................ 19

3.5.1 光敏电路................................................................................................... 20 3.5.2 ADC0809模数转换 ................................................................................. 20 3.6遥控电路................................................................................................................ 21 第4章 软件设计........................................................................................................ 23 4.1 Keil C51 .............................................................................................................. 23 4.2 Protel99SE .......................................................................................................... 23 4.3 程序流程图........................................................................................................... 25 第5章 调试................................................................................................................ 26 5.1 硬件调试............................................................................................................... 26 5.2 软件调试............................................................................................................... 26 第6章 总结................................................................................................................ 27 参考文献...................................................................................................................... 28 附录一:protel99se 原理图 ....................................................................................... 29 附录二:源程序.......................................................................................................... 30

3

前言

LED照明又称固态照明,作为继白炽灯、荧光灯后的第三代照明技术,具有节能、环保、安全可靠的特点,固态光源是被业界看好的未来十年替换传统照明器具极具潜力的新型光源,代表照明技术的未来。发展新固态照明,不仅是照明领域的革命,而且符合当前政府提出的“建设资源节约型和环境友好型社会”的要求。

LED台灯就是以LED(Light Emitting Diode)即发光二极管为光源的台灯,LED是一种固态的半导体器件,它可以直接把电转化为光。LED台灯是典型的绿色照明光源产品,作为国家绿色照明推广使用的产品,具有广阔的应用前景。

随着时代发展,节能、环保、健康等一系列话题被人们日益关注,照明是人们生活必不可少的一部分,我国年用电量5185.9万兆瓦,其中照明占到总用电量的12%,并且以每年3.44%的速度持续增长,如何更好地节约能源?作为照明,照明灯具的损耗,剩余材料丢弃,势必会造成环境的污染,如何才能使照明更加环保?据统计,我国39.3%的人有不同程度视力问题,由于不正确的用眼方式造成近视人数占到总人数的30%左右,因此用眼健康越来越被人重视。如何才能使照明更加健康,保护视力?

本文介绍了以STC89C51为控制核心,通过光敏电阻感应光度,并利用PWM调光技术对LED进行光度的自动调节。同时设置手动控制。该LED台灯电路简单,很大程度上节省电能,延长LED灯寿命,适宜阅读。

4

第1章 绪论

1.1 课题研究背景

台灯已是千家万户的必需生活电器,经常由于忘记关灯而造成巨大的能源浪费。在我国,照明耗电占年发电总量的12% (超过100亿千瓦每小时) , 现在的台灯绝大部分是采用普通的白炽灯、荧光灯、节能灯和螺旋节能灯 ,并且控制方式多采用手动开关,不能连续调节,更不能自动调节。当夜晚来临时,人们又摸黑去开灯,非常不方便,与现在家电的智能化,人性化,低碳设计理念相违背。

LED被认为是21世纪的照明光源。LED发光器件是冷光源,光效高,工作电压低,而且能耗低,可控制好、无辐射,同样亮度下,LED能耗为白炽灯的10%,荧光灯的50%。LED寿命可达10万小时,是荧光灯的10倍,白炽灯的100倍。随着能源紧缺、电价越来越高、环保要求及LED的光效的提高,用LED替代现在台灯普遍使用的白炽灯或荧光灯,环保无污染。另外,LED的光谱几乎全部集中于可见光频段,其发光效率可达80~90%,并且传统的台灯中的光源体使用的是交流电,所以每秒钟会产生100-120次的频闪。LED灯是把交流电直接转换为直流电,不会产生闪烁现象,保护眼睛,可以获得“柔和”的灯光环境。

另外一个情况是现在中国约30%的人有不同程度的视力问题,其中近视是主要问题,近年来,我国的近视率已上升为全球第二,仅次于日本,但近视的总人数确是全球第一。引起近视的主要原因是用眼不健康,如看书的光线不在正常范围时,学习时的坐姿不正确等。

解决以上问题迫在眉睫。

1.2 系统方案的提出

通过采用LED照明,提高电能利用率,利用传感器检测,微处理器控制,实现自动调光、视力保护、安全合理多项功能的智能台灯。

1.2.1 LED优势

相较于普通照明,LED照明有以下主要优点:

(1)较长的使用寿命。白炽灯的发光机理是:通电时,电能流过发光钨丝,产生热能,使钨丝加热发光。因此,当经过相当长时间加热,钨丝就会发生老化甚至烧断,那么,白炽灯的寿命也就告终了。发光二极管(LED)的发光机理是由它的特殊结构决定的,它是由PN结晶片、两个电极和光学系统构成,当在电极两端加上正向偏置电压时,空穴和电子分别被注入到P区和N区,非平衡少数载流子和多数载流子发生复合,多余的能量以辐射光子的形式转化为光能,二极管是依赖于载流子的不断移动发光的,所以不存在老化或烧断,它的发光寿命可长达5~10万小时。

(2)发光效率高。实验测定,当LED通电发光时,可以把10%左右的电能转成光能,而普通白炽灯的转化效率仅有7%~8%,所以,当需要达到同等的照明效果时,LED灯比普通白炽灯更节能。

(3)发光响应速度快。LED灯的响应时间为10-7~10-9S,具有很好的高频特性,能显示脉冲信号,而白炽灯响应时间在ms级,高频特性差; (4)发光有较强的方向性,适用于定向照明。

(5)易控制。LED驱动可采用模拟调光、PWM脉宽调制、TRICA双向晶闸管调光方式、

5

带总线接口LED驱动器、适配微控制(单片机或其他微处理器)等多种方式进行调光。 (6)绿色环保。普通节能灯(如荧光灯)工作原理是加热电阻丝,所以容易产生汞或其他重金属污染。

(7)使用灵活。因为LED的体积较小,所以可根据应用需求对LED灯进行灵活组合,其颜色也可进行灵活搭配。

(8)尺寸较小,防震动及抗冲性能好。

因此,我们提出新型LED智能多功能台灯方案。

1.2.2 方案简述

针对上述节能、环保、健康等问题研究,基于C51单片机和PWM调光的LED台灯以STC89C51作为主控芯片,设置了手动控制、自动控制和呼吸模式。在手动控制时,分为十个档,输出不同的PWM占空比对LED的电流进行控制,从而实现了对光度的手动调节。

在自动控制时,通过ADC0809模拟-数字转换芯片不断检验光敏电阻的电压来间接测量感应光度,将电压和预设的阈值进行对比,调整PWM的占空比对LED的电流进行控制,从而实现了对光度的自动调节。总体框图如下(图1.1):

图1.1

6

第2章 系统方案的选择

2.1 控制芯片的选择方案

选择嵌入式微处理器主要考虑因素有以下几个方面:

应用领域:一个产品的功能、性能一旦定制下来,其所在的应用领域也随之确定。应用领域的确定将缩小选型的范围。

自带资源:芯片自带资源越接近产品的需求,产品开发相对就越简单。可扩展资源,要求芯片可扩展存储器。

低功耗:低功耗的产品即节能又节财,甚至可以减少环境污染,还能增加可靠性,它有如此多的优点,因此低功耗也成了芯片选型时的一个重要指标。 芯片的可延续性及技术的可继承性,芯片的价格和供货也是必须考虑的因素,所以选型时尽量选择有量产的芯片,选择市面上使用较广的芯片,将会有比较多的共享资源,给开发带来许多方便。

2.1.1 STC89C51RC

STC89C51RC为40引脚双列直插式芯片,增强型8051单片机,工作电压3.3V~5.5V,片内集成4K字节ROM和256字节RAM,具有EEPROM功能,两个定时/计数器,具有看门狗功能,工作频率范围为0~40MHz,实际工作频率可达48MHz,有32个通用I/O口,可采用在系统编程(In system programming,简称ISP)或在应用编程(In application programming,简称IAP),无需专用编程器和仿真器,指令代码完全兼容传统8051。具有价格低廉、兼容性强、超强抗干扰能力、超低功耗等优点。

2.1.2 AVR单片机

AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。提高了指令执行速度(1Mips/MHz),克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。故AVR单片机在软/硬件开销、速度、性能和成本诸多方面取得了优化平衡,是高性价比的单片机。

AVR单片机内嵌高质量的Flash程序存储器,擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。内嵌有长寿命EEPROM,可长期保存关键数据,避免断电丢失。片内大容量的RAM不仅能满足一般场合的使用,同时也更有效的支持使用高级语言开发系统程序,并可像MCS-51单片机那样扩展外部 RAM。

AVR单片机的I/O线全部带可设置的上拉电阻、可单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得I/O口资源灵活、功能强大、可充分利用。

AVR单片机片内具备多种独立的时钟分频器。

AVR单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多个复位源(自动上电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了嵌入式系统的可靠性。

AVR单片机具有多种省电休眠模式,且可宽电压运行(5-1.8V),抗干扰能

7

力强,可降低一般8位机中的软件抗干扰设计工作量和硬件的使用量。

AVR单片机技术体现了单片机集多种器件(包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗抗干扰的休眠模式、品种多门类全的中断系统、具输入捕获和比较匹配输出等多样化功能的定时器/计数器、具替换功能的I/O端口)于一身,充分体现了单片机技术的从“片自为战”向“片上系统SOC”过渡的发展方向。

2.1.3 FPGA

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。是专门作为(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。

FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,但是功耗较低。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。

2.1.4 主控制芯片的确定

STC89C51RC可以满足系统开发需要,而且使用普遍,开发编程环境容易实现,与其他系统兼容性强,开发成本低,较AVR和FPGA具有明显的价格优势,超强抗干扰能力、超低功耗、价格低廉等优点,最终选择作为系统控制芯片。

2.2 照明模块的选择

LED功率的大小,首先要选择具有足够的输出功率的芯片,能够驱动所要求的LED功率。输入电压的高低 ,输入电压的稳定度 ,LED的连接通常可以是串联或是并联,串联的数目越多,所需的驱动芯片数目就越少。

LED驱动器通用要求,选择LED驱动方式 ,LED驱动器标准,进一步提高能效、 增加功能及功率密度。产品寿命周期及可靠性问题,考虑更好的散热功率管发热功率管的功耗分成两部分,开关损耗和导通损耗。工作频率降频,电感或者变压器的选择,LED电流大小。

2.2.1 三极管驱动

三极管是一种控制元件,主要用来控制电流的大小,以共发射极接法为例(信号从基极输入,从集电极输出,发射极接地),当基极电压UB有一个微小的变化时,基极电流IB也会随之有一小的变化,受基极电流IB的控制,集电极电流IC会有一个很大的变化,基极电流IB越大,集电极电流IC也越大,反之,基极电流越小,集电极电流也越小,即基极电流控制集电极电流的变化。但是集电极电流的变化比基极电流的变化大得多,这就是三极管的放大作用。IC 的变化

8

量与IB变化量之比叫做三极管的放大倍数β(β=ΔIC/ΔIB, Δ表示变化量。),三极管的放大倍数β一般在几十到几百倍。

三极管在放大信号时,首先要进入导通状态,即要先建立合适的静态工作点,也叫建立偏置,否则会放大失真。

选择合适放大倍数三极管,通过放大电流驱动LED,三级管放大有成本低,易实现,易控制等优点。

2.2.2 PWM芯片控制

LED的调光控制,传统上LED的调光是利用一个DC信号或滤液PWM对LED中的正向电流进行调节来完成的。减小LED电流将起到调节LED光输出强度的作用,然而,正向电流的变化也会改变LED的彩色,因为LED的色度会随着电流的变化而变化。许多应用(例如汽车和LCD 背光照明)都不能允许LED发生任何的色彩漂移。在这些应用中,由于周围环境中存在不同的光线变化,而且人眼对于光强的微小变化都很敏感,因此宽范围调光是必需的。通过施加一个PWM信号来控制LED亮度的做法允许不改变彩色的情况下完成LED的调光。

PWM是脉冲宽度调制信号,注意其中的“宽度”,就是脉冲的高电平的时间。PWM信号调节LED亮度时,信号频率是不变的,改变的是脉冲的高电平的时间,即LED的导通时间。这种信号调节亮度相当于调节LED的平均电流,所以电流会变化。

采用LM3410X串联驱动LED灯,具体电路图如图2.1所示。

图2.1 LM3410X串联驱动电路

LM3410恒流LED驱动器是单片频率,PWM升压型DC / DC转换器,5引脚或6引脚封装。它可以驱动典型2.5A峰值电流与内部160MΩ NMOS切换。开关频率在内部设置为525kHz或1.60MHz,允许使用极小的表面贴装电感器和片式电容器。即使操作频率高,高达88%的效率很容易实现的。外部关闭包括在内,具有超低待机电流为80nA。LM3410采用电流模式控制和内部补偿功能,提供高性曼斯在广泛的操作条件。额外功能包括调光,脉冲的脉冲电流限制,热

9

关断。

2.2.3 照明方案的确定

考虑照明需要,需要驱动电压5V,驱动电流3A,需要驱动16个大草帽白光LED,因为三极管驱动具有成本低,易控制,易实现等优点,而LM3410X成本高且不易寻找,最终选用大功率三极管SS8550驱动照明模块。

2.3 遥控模块的选择

本设计添加遥控功能,可以更加方便使用。遥控主要有红外式遥控,超外差式无线遥控等等都有很广泛的应用。

2.3.1 超再生无线模块

超再生无线模块是由编码发射模块和解码接收部分组成。无线信号的编码由SC2262集成电路完成,该电路具有8位地址信号和4位数据信号,不同的地址与数据的组合,可以编制上万种编码,完全可以满足同一区域内互不影响地工作。发射芯片地址编码输入有“1”、“0”和“开路”三种状态,数据输入有“1”和“0”两种状态。由各地址、数据的不同接脚状态决定,编码从输出端Dout输出,通过红外发射管发射出去。

Dout输出的编码信号是调制在38kHz载波上的,OSC1、OSC2外接的电阻决定载频频率,一般电阻可在430k—820k之间选择即可。

SC2262-IR是2262系列用于红外遥控的专用芯片,它是一种CMOS工艺制造的低功耗低价位通用编码电路,SC2262-IR最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码,SC2262-IR最多可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚串行输出,可用于遥控发射电路。

编码芯片SC2262-IR发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,当有按键按下时,SC2262-IR得电工作,其第17脚输出经调制的串行数据信号。SC2262-IR的管脚图如图1所示,管脚说明如表1所示,性能参数如表2所示。

SC2262-IR特点:CMOS工艺制造,低功耗,外部元器件少,RC振荡电阻,工作电压范围宽:2.6~15v ,数据最多可达6位,地址码最多可达531441种。应用范围:车辆防盗系统、家庭防盗系统、遥控玩具、其他电器遥控。

接收电路的无线接收与解调部分采用的是现成的高频接收模块,可以简化设计工作,而且可靠性较好,接收模块采用的是超再生接收,具体的解调过程为:当发射器发送1时,相应的发射高频电路工作,接收部分就会相应地收到一个315 M的高频信号,使模块输出为1,当发射部分发送的是0时,发射高频部分停止工作,接收部分就输出为0,这样就实现了无线信号的传输。

经高频接收且解调出来的信号是编码集成电路SC2262编码后的串行信号,必须经相应的解码电路解码才能还原出控制信号数据。SC2272就担任了这个解码任务。SC2262和SC2272是一对专用的编、解码集成电路,当接收部分SC2272

10

6)工作温度范围为-40~+85摄氏度。 7)低功耗,约15mW。

如下图所示,ADC0809的参考电压设置成5V,时钟信号通过单片机P3.3口利用定时器中断输出。光敏电阻的对地电压从IN0口输入, ADC0809将其转换成数字量后通过OUT1-7输出,以便单片机进一步处理。

+5光敏C4104U226272812345GND13161112IN-0IN-1IN-2IN-3IN-4EOCIN-5IN-6IN-7ALEref(-)ref(+)ADC0809ENABLESTARTCLOCKADD-AADD-BADD-CRD1103GNDmsb2-12-22-32-42-52-62-7lsb2-82120191881514177252423229610AD8AD7AD6AD5AD4AD3AD2AD1GND+5 图3.11 模数转换电路

3.6遥控电路

红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射雕红外光转换为相应的电信号,再送后置放大器。

发射机一般由指令键(或操作杆)、指令编码系统、调制电路、驱动电路、发射电路等几部分组成。当按下指令键或推动操作杆时,指令编码电路产生所需的指令编码信号,指令编码信号对载体进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定指令编码信号。

接收电路一般由接收电路、放大电路、调制电路、指令译码电路、驱动电路、执行电路(机构)等几部分组成。接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制(机构)。

红外线遥控是目前使用很广泛的一种通信和遥控技术。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可*而且能有效地隔离电气干扰。

21

红外线是太阳光线中众多不可见光线中的一种,由德国科学家霍胥尔于1800年发现,又称为红外热辐射,他将太阳光用三棱镜分解开,在各种不同颜色的色带位置上放置了温度计,试图测量各种颜色的光的加热效应。结果发现,位于红光外侧的那支温度计升温最快。因此得到结论:太阳光谱中,红光的外侧必定存在看不见的光线,这就是红外线。也可以当作传输之媒界。 太阳光谱上红外线的波长大于可见光线,波长为0.75~1000μm。红外线可分为三部分,即近红外线,波长为0.75~1.50μm之间;中红外线,波长为1.50~6.0μm之间;远红外线,波长为6.0~l000μm 之间。图 3.12为红外遥控器及编码。

图3.12 红外遥控器及编码

一体化红外线接收器是一种集红外线接收和放大整形于一体,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积又很小巧,它适合于各种红外线遥控和红外线数据传输,广泛用于电视机、卫星接收机、VCD、DVD、音响、空调等家用电器中接收红外信号。

D1红外一体123+C4100ufR8R9C5104GNDR410kR510k220220+5R610k 图3.13 一体化红外接器电路

22

第4章 软件设计

4.1 Keil C51

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 Keil_c软件界面如图

图4.1 Keil_c软件界面

4.2 Protel99SE

Protel99SE是PORTEL公司在80年代末推出的EDA软件。Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。 Protel99SE软件的特点:

23

(1) 可生成30多种格式的电气连接网络表; (2) 强大的全局编辑功能;

(3) 在原理图中选择一级器件,PCB中同样的器件也将被选中; (4) 同时运行原理图和PCB,在打开的原理图和PCB图间允许双向交叉

查找元器件、引脚、网络

(5) 既可以进行正向注释元器件标号(由原理图到PCB),也可以进行

反向注释(由PCB到原理图),以保持电气原理图和PCB在设计上的一致性;

(6) 满足国际化设计要求(包括国标标题栏输出,GB4728国标库); *

方便易用的数模混合仿真(兼容SPICE 3f5);

(7) 支持用CUPL语言和原理图设计PLD,生成标准的JED下载文件;

* PCB可设计32个信号层,16个电源-地层和16个机加工层; (8) 强大的“规则驱动”设计环境,符合在线和批处理的设计规则检查; (9) 智能覆铜功能,覆铀可以自动重铺; (10)

提供大量的工业化标准电路板做为设计模版;

Protel99SE的工作界面是一种标准的Windows界面,如图所示,包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。Protel99SE软件界面如图4.2

图4.2 Prtel99SE软件界面

24

4.3 程序流程图

开始 手动模式 Y 系统初始化 读取AD值 判断当前 工作模式 自动模式 判断按键 是否按下 N 判断遥控 是否按下 呼吸模式 Y 结束 25

第5章 调试

5.1 硬件调试

硬件调试是利用基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。

硬件调试可分为静态调试与动态调试两步进行。 静态调试是在用户系统未工作时的一种硬件检测。

第一步:目测。检查外部的各种元件或者是电路是否有断点。

第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。

第三步:加电检测。给板加电,检测所有插座或是器件的电源端是否符合要求的值。 第四步是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。 动态调试是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的 器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。

5.2 软件调试

软件调试是通过对程序的连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程,也可以通过keil软件进行仿真,能大大的减少设计过程中的错误。

26

第6章 总结

基于C51单片机的PWM调光台灯以STC89C51作为主控芯片,设置了手动控制、自动控制和呼吸模式。在手动控制时,分为十个档,输出不同的PWM占空比实现了对光度的手动调节。在自动控制时,通过ADC0809模拟-数字转换芯片不断检验光敏电阻的电压来间接测量感应光度,将电压和预设的阈值进行对比,调整PWM的占空比实现了对光度的自动调节。该LED台灯电路简单,很大程度上节省电能,延长LED灯寿命,适宜阅读。呼吸模式可以用于小夜灯。增加了遥控功能,更加方便使用。

同时,在本次课程设计中,主要有以下体会:

1、对LED的驱动有进一步的了解,明白了如何对LED进行规定电流驱动,并通过输出不同的占空比来调节LED的亮度,从而对LED的耗电进行相应的管理;

2、进一步掌握了AD转换原理以及相关芯片的应用,通过ADC0809对外界的模拟量进行转换。

3、熟悉了红外遥控的应用。

4、培养了自己的团队意识,能够比较好的和队员就项目进行及时的沟通,在分工和整合方面做的不错。

27

参考文献

1. 周明珠.无触点开关在控制中的应用[J].现代电子技术,2002,4(1):62-71 2. 赵玉安.人体热释电红外传感器介绍[J].中国电子制作,2006,9(1):35-40

3. 俞海珍,李宪章,冯浩.热释电红外传感器及其应用[J].电子照明技术,2006.(1):25-28 4. 曹巧媛.单片机原理及应用[M].北京:北京:电子工业出版社,1997

5. 谢晓军.红外遥控技术在付费率电度表中应用[J],电测与仪表,1996,4(1):24-26 6. 吴可久.8031单片机在遥控解码方面的应用[J].电子技术,1993,2:13-15 7. 张友德等.单片机原理应用与实验[M].上海:复旦大学出版社,1992

8. 王幸之.单片机应用系统抗干扰技术[M].北京:北京航空航天大学出版社,2001,69-78 9. 张义和,王敏男,许宏昌等.例说51单片机.北京:人民邮电出版社,2008

10. 刘坤,宋戈,赵波等.51单片机C语言应用技术开发技术大全.北京:人民邮电出版社,2008 11. 白延敏.51单片机典型系统开发实例精讲.北京:电子工业出版社,2009 12. 周丽娜.Protel99SE电路设计技术.北京:中国铁道出版社,2009

13. 王为青,程国钢.单片机Keil C×51应用开发技术.北京:人民邮电出版社,2007 14. 江志红.51单片机技术与应用系统开发案例精选.北京:清华大学出版社,2009

28

附录一:protel99se 原理图

C4104U226272812345GND13161112IN-0IN-1IN-2IN-3IN-4EOCIN-5IN-6IN-7ALEref(-)ref(+)ADC0809R8+C4100ufR9C5104GNDR410kR510kR610kD19stopD12dxD11nbD4+5220220K1GNDset1324add13+5GNDENABLESTARTCLOCKADD-AADD-BADD-CRD1103GNDmsb2-12-22-32-42-52-62-7lsb2-82120191881514177252423229610AD8AD7AD6AD5AD4AD3AD2AD1+5U1+C310uf123456781312GNDGND+5311918C230P917161514P10/TP11/TP12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWRSTC89C51/52K224dec13K324RXDTXDALE/PPSEN10113029P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P2739383736353433322122232425262728AD1AD2AD3AD4AD5AD6AD7AD8D1+510312345678910kR1LEDgD2R2LEDyD3R3LEDr2.2k2.2k1k+5R1110ksetadddec+5D1Y111.0592MHZC130P红外一体123LEDP121POWERGND+5R72.2kD18LEDD13LEDD10LEDD5LEDLEDD14LEDD9LEDD6135S1Q1SS8550D173135LEDLEDD15LEDD8LEDD7246D16246光敏LEDLEDLEDLED 29

附录二:源程序

//宏定义

#define uint unsigned int #define uchar unsigned char

uint X1=0; uint X2;

//头函数

#include #include

//时间计算

#define Imax 14000 //此处为晶振为11.0592时的取值, #define Imin 8000 //如用其它频率的晶振时, #define Inum1 1450 //要改变相应的取值。 #define Inum2 700 #define Inum3 3000 //解码变量

unsigned char Im[4]={0x00,0x00,0x00,0x00}; uchar show[2]={0,0};

//全局变量 uchar f;

unsigned long m,Tc; unsigned char IrOK;

//LED灯光强度 uchar LL=0; uint YK=0;

uint ZY=0,Xi=0,FZ=0;

uchar Mode=1;

//函数声明 void Init();

void delay(uchar i);

30

//管脚声明

sbit LED = P1^4; sbit LEDR= P2^2; sbit LEDG= P2^4; sbit LEDY= P2^6; sbit set = P1^5; sbit add = P1^6; sbit dec = P1^7;

//主函数 void main() { //定时器初始化100HZ Init(); m=0; f=0; //模式1 LEDR=1; LEDY=1; LEDG=1; delay(3); LEDR=0; LEDY=1; LEDG=1; //循环 while(1) { //读取亮度AD值 LL=ADC0809(); ////////////////////////////////////// //亮度控制 //光敏控制Ok if(Mode==2) { if(LL>50) { X1=0; } else { if(LL-1>0xf0) LL=1;

31

X1=1020-LL*20; } }

//遥控器ok

else if(Mode==1) { X1=YK; ZY++; else ZY--; } if(ZY==400) { FZ=1; } if(ZY==0) { { X1--; } LED=1;

X2=1000-X1; while(X2!=0) { X2--; }

/////////////////////////////////////// if(set==0) { delay(20); if(set==0) { Mode++; if(Mode==1) { LEDR=1; LEDY=1; LEDG=1; delay(100); LEDR=0; LEDY=1; LEDG=1; } if(Mode==2)

32

{ LEDR=1; LEDY=1; LEDG=1; delay(100); LEDR=1; LEDY=1; LEDG=0; } if(Mode==3) { LEDR=1; LEDY=1; LEDG=1; delay(3); LEDR=1; LEDY=0; LEDG=1; } if(Mode==4) { Mode=1; LEDR=1; LEDY=1; LEDG=1; delay(100); LEDR=0; LEDY=1; LEDG=1; } while(set==0); } }

if(add==0) { delay(20); if(add==0) { YK=YK+100; if(YK>1000) { YK=0; } while(add==0);

33

} }

if(dec==0) { delay(20); if(dec==0) { YK=YK-100; if(YK>1000) { YK=0; } while(dec==0); } }

if(IrOK==1) { //1键 if(Im[2]==0x0c) { LEDR=1; LEDY=1; LEDG=1; delay(100); LEDR=0; LEDY=1; LEDG=1; Mode=1; } //2键 else if(Im[2]==0x18) { LEDR=1; LEDY=1; LEDG=1; delay(100); LEDR=1; LEDY=1; LEDG=0; Mode=2; } //3键 else if(Im[2]==0x5e) {

34

LEDR=1; LEDY=1; LEDG=1; delay(3); LEDR=1; LEDY=0; LEDG=1; Mode=3; } //+ else if(Im[2]==0x40) { YK=YK+100; if(YK>1000) { YK=0; } } //- else if(Im[2]==0x19) { YK=YK-100; if(YK>1000) { YK=0; } } IrOK=0; } } }

//定时器初始化 void Init(void) {

EA=1;//开启总中断

IT1=1;//下降沿有效 EX1=1;//外部中断1开

TMOD=0x11;//定时器初始化 TH0=0;//T0赋初值

35

TL0=0;

TR0=0;//t0开始计时 }

//延时

void delay(uchar i) {

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

for(k=125;k>0;k--); }

//外部中断解码程序_外部中断0 void intersvr1(void) interrupt 2 using 1 {

LED=1; TR0=1;

Tc=TH0*256+TL0;//提取中断时间间隔时长 TH0=0;

TL0=0; //定时中断重新置零 if((Tc>Imin)&&(Tc

if(Tc>Inum1&&Tc

Im[m/8]=Im[m/8]>>1|0x80; m++; }

if(Tc>Inum2&&Tc

Im[m/8]=Im[m/8]>>1; m++; //取码 }

if(m==32) {

m=0; f=0;

if(Im[2]==~Im[3]) {

IrOK=1; TR0=0; }

else IrOK=0; //取码完成后判断读码是否正确 }

//准备读下一码 } }

36

TL0=0;

TR0=0;//t0开始计时 }

//延时

void delay(uchar i) {

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

for(k=125;k>0;k--); }

//外部中断解码程序_外部中断0 void intersvr1(void) interrupt 2 using 1 {

LED=1; TR0=1;

Tc=TH0*256+TL0;//提取中断时间间隔时长 TH0=0;

TL0=0; //定时中断重新置零 if((Tc>Imin)&&(Tc

if(Tc>Inum1&&Tc

Im[m/8]=Im[m/8]>>1|0x80; m++; }

if(Tc>Inum2&&Tc

Im[m/8]=Im[m/8]>>1; m++; //取码 }

if(m==32) {

m=0; f=0;

if(Im[2]==~Im[3]) {

IrOK=1; TR0=0; }

else IrOK=0; //取码完成后判断读码是否正确 }

//准备读下一码 } }

36

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

Top