呼吸灯实训
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
呼吸灯
摘要:设计了灯光在51单片机的控制下完成由亮到暗变化的呼吸灯,本设计
是基于单片机的原理与接口设计,采用单片机I/O口,加以C语言编程实现LED 渐亮再渐暗,类似人的呼吸一样的效果。利用KEIL软件进行C语言程序编写及调试,再利用Proteus仿真软件进行仿真实验,
关键词:LED灯,51单片机。
1 系统设计 (3)
1.1 设计要求 (3)
1.1.1 设计任务 (3)
1.2 方案比较 (3)
1.2.1 计数存储方案 (3)
1.3 方案论证 (3)
1.3.1 总体思路 (3)
1.3.2 设计方案 (3)
2 单元电路设计 (4)
2.1 RCL响应电路 (4)
2.2 PWM控制 (5)
2.3 呼吸灯应用系统的硬件设计 (5)
2.3.1 呼吸灯硬件系统的模块划分 (5)
2.3.2 呼吸灯硬件系统的电路 (6)
2.3.3 硬件模块基础 (6)
3 软件设计 (7)
3.1 呼吸灯应用系统软件设计 (7)
3.1.1 呼吸灯应用系统的软件流程 (7)
4 呼吸灯应用系统的仿真 (7)
4.1利用Proteus和Keil uVision对51单片机进行仿真 (7)
4.1.1 Proteus中的虚拟示波器 (8)
4.1.2 呼吸灯的仿真 (8)
5 总结 (8)
1 系统设计
1.1 设计要求
呼吸灯就是让LED灯的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED 的余晖和人眼的暂留效应,看上去和人的呼吸一样。
1.1.1 设计任务
设计并制作一个在51单片机控制下完成由亮到暗变化的呼吸灯。
1.2 方案比较
1.2.1 计数存储方案
计数存储方案的选择主要是数据的准确性。
方案一:利用李氏无竞争计数实现的方案
李氏无竞争计数码既具有制约竞争编码的特点,即每次只允许一位数据发生变化,同时又具有适合计数方式的编码结构,可以采用特征序列的循环移位实现递增和递减的计数。又因为呼吸灯的明暗周期可调,则只需通过输入周期的变化控制李氏计数码的变化即可。
方案二:利用单片机计数实现的方案
单片机是在单一芯片上构成的微型计算机,CPU由控制器和运算器组成。控制器主要完成指令的读取,指令的译码和指令的执行等工作,并协调单片机内部各部分工作,运算器主要完成算数运算和逻辑运算。
上述两种方案从计数准确性来说,方案一对计数方式加以约束,每次计数只允许1bit发生变化,从跟不上限制了多位同时变化,有可能带来数据的不确定性。
1.3 方案论证
1.3.1 总体思路
(1)要发光,则需要一个合适的光源;
(2)需要一个能这个光源进行相应控制的驱动电路;
(3)作为控制系统的51单片机要能和这个驱动电路进行接口;
(4)需要设计合适的单片机软件
1.3.2 设计方案
系统工作流程如图1.3.1所示。
对于51单片机的应用系统而言,最常用的发光源是发光二极管(LED)。发光二极管的发光强弱和通过其的电流大小相关,当电流越大时,发光二极管的亮度就越大;反之灯光则变暗,通过控制这个电流的大小,即可实现发光二极管亮度的控制。
2 单元电路设计
2.1 RCL响应电路
51单片机的输出是一个数字信号,只有0和1两种状态,也就是说只有大电流和小电流,不能直接对LED进行控制,此时需要一个相应的电路来将这个数字信号转化为模拟信号。如果在RCL电路的R1和L1串联一个发光二极管,而在电容两端加上高低的数字逻辑电平,则可以控制发光二极管上电流的变化。
2.2 PWM控制
虽然RCL电路能将对应的数字逻辑高低电平转换为模拟信号,并且能控制电流的大小变化,但还是需要51单片机提供这个数字逻辑电平,此时可以应用PWM控制原理来实现转换功能。PWM是脉冲宽度调制,简称脉宽调制,是一种使用51单片机或者其他处理器的数字输出来对模拟电路进行控制的方法,这种方法可用数字方式来控制模拟电路,能大幅度降低系统的成本和功耗。在采样控制理论中有一个重要的结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。PWM控制技术就是以该结论为理论基础,利用51单片机的I/O引脚输出一系列幅值相等而宽度不相等的脉冲,来代替正弦波或其他所需要的波形,并按一定的规则对各脉冲的宽度进行调制,既可改变电路输出电压的大小,,也可改变输出频率。其关键参数有两个:脉冲的频率和脉冲的宽度。在呼吸灯实例中,修改PWM的输出波形,可以改变外加在RCL电路的电源时间长度和对RCL电路进行充电的频率,从而可以分别控制吸气和呼气的长度以及呼吸的频率。
2.3 呼吸灯应用系统的硬件设计
呼吸灯应用系统的硬件设计重点是如何使用RCL电路对发光二极管进行驱动。
2.3.1 呼吸灯硬件系统的模块划分
呼吸灯的硬件模块是由51单片机、三极管开关电路、RCL电路和发光二极管构成,如图所示,其各个部分的详细说明如下。
(1)51单片机:是呼吸灯系统的核心控制器。
(2)三极管开关电路:受到51单片机的PWM输出波形驱动,当输出为高电平时,三极管打开,电源给RCL电路充电;当输出为低电平时,三极管截止,电源从RCL电路上断开,RCL电路开始放电。
(3)RCL电路:利用充/放电原理将51单片机输出的数字信号转换为模拟信号后,用于对发光二极管进行控制。
(4)发光二极管:发光器件。
2.3.2 呼吸灯硬件系统的电路
呼吸灯硬件系统的电路如图所示,途中51单片机使用P2.0引脚驱动了一个由PNP和NPN三极管构成的三极管开关电路(Q1和Q2);一个5V的电源通过三极管开关电路给L1、C4和R2构成的RCL电路供电,在R2上串联了一个用于显示的发光二极管D1.
2.3.3 硬件模块基础
发光二极管(LED):51单片机系统中发光二极管的典型应用电路可分为“灌电流“和“拉电流”两种。
三极管:在呼吸灯应用系统中,使用两个三极管构成了一个开关电路,用于控制电源对RCL电路的充电。三极管是一种用电流来控制电流的半导体器件,是51单片机系统中最常用的功率驱动器件,其作用是把微弱信号放大成幅值较大的电信号,也常常用作无触点开关。(注意:控制端上的电阻必须选取合适,因为较小的电流将不足以使三极管导通。)