文档库 最新最全的文档下载
当前位置:文档库 › 呼吸灯和温度传感器

呼吸灯和温度传感器

呼吸灯和温度传感器
呼吸灯和温度传感器

目录

课程设计目的 (1)

(一)呼吸灯 (2)

一、设计要求 (2)

1、基本要求 (2)

2、相关原理 (2)

3、功能作用 (2)

二、论证分析 (3)

三、硬件原理 ................................................................................................ 错误!未定义书签。(1)80C51单片机 (4)

(2)时钟电路 (5)

四、系统设计 (6)

1、PWM控制原理 ........................................................................................ 错误!未定义书签。

2、单片机程序 (7)

3、仿真图............................................................................................... 错误!未定义书签。

4、实物图 (8)

五、软件设计及系统仿真调试 (9)

(二)温度传感器 (10)

课程设计目的 (10)

一、设计目的 (11)

二、方案选择与论证 (11)

(1)温度传感模块 (11)

(2)显示模块 (12)

三、测温系统硬件设计................................................................................. 错误!未定义书签。

四、DS18B20元件分析............................................................................... 错误!未定义书签。(1)DS18B20背景概述. (14)

(2)DS18B20的原理及特性介绍 (15)

(3) DS18B20 的控制方法 (16)

(4) ROM 操作命令的执行 (17)

五、系统软件设计 ........................................................................................ 错误!未定义书签。

仿真图 (18)

实物图 (19)

温度传感器程序 (20)

六、心得体会 (22)

课程设计目的

电子技术是一门实践性很强的课程,加强工程训练,特别是技能的培养,对于培养工程人员的素质和能力具有十分重要的作用。在电子信息类本科教学中,单片机技术课程设计是一个重要的实践环节,它包括程序编写、电子电路设计、组装、调试和编写总结报告等实践内容。通过课程设计要实现以下两个目标:第一,让学生初步掌握电子线路的试验、设计方法。即学生根据设计要求和性能参数,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能指标;第二,课程设计为后续的毕业设计打好基础。毕业设计是系统的工程设计实践,而课程设计的着眼点是让学生开始从理论学习的轨道上逐渐引向实际运用,从已学过的定性分析、定量计算的方法,逐步掌握工程设计的步骤和方法,了解科学实验的程序和实施方法,同时,课程设计报告的书写,为今后从事技术工作撰写科技报告和技术资料打下基础。

(一)呼吸灯

一、设计要求

1、基本要求

在单片机程序编写上正确,并且可以运用到单片机上可以实现呼吸灯的效果(呼吸灯就是让LED灯的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED的余辉和人眼的暂留效应,看上去和人的呼吸一样)

2、相关原理

呼吸灯就是灯的亮度按照一定的规律逐渐从灭到亮再到灭。

单片机可以控制LED灯的亮度,简单的一般是用PWM控制。

单片机控制LED灯的亮度按照一定的规律进行变化,从灭到亮再到灭,这就是呼吸灯。

3、功能作用

呼吸灯是现在很多智能手机上都配备的一种部件,它其实是一种以闪光作为视觉提示的提示器。当手机上存在未处理信息时,如新发入信息未读,未接来电,新QQ信息等,呼吸灯都会在手机处于待机状态时闪烁提醒以便于及时处理。另外当手机电量下降到一定水平时呼吸灯也会以红色再次闪烁,以提醒及时充电以防止发生设备因为没电发生数据丢失的情况。

二、论证分析

程序流程图:

三、硬件原理 (1)80C51单片机

1.单片机定义

“单片机”就是将计算机的基本部件集成到一块芯片上,包括CPU 、ROM 、RAM 、并行口、串行口、定时器/计数器、中断系

灯控制字置初值

延时次数置初值 延时次数暂存与A

从暗到亮输出0从亮道到输出1

延时 开始

结束

延时次数递增(递减)

反转灯控制字

统、系统时钟等。

MCS-51的微处理器是由运算器和控制器构成所的。

运算器:主要用来对操作数进行算术、逻辑运算和位操作。主要包括算术逻辑运算单元ALU 、累加器A 、寄存器B 、位处理器、程序状态字寄存器PSW 以及BCD 码修正电路等。

控制器:单片机的指挥控制部件,控制器的主要任务是识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。

XTAL2

18

XTAL1

19

ALE 30EA

31

PSEN 29RST

9

P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78

P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD

17

P3.6/WR 16P3.5/T115U1

80C51

(2)时钟电路

外部时钟方式是使用外部振荡脉冲信号,常用于多片MCS-51单片机同时工作,以便于同步。

外部时钟电路,是由一个12MHz晶振和两个瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用,外接晶振频率精确度直接影响电子钟计时的准确性。(外部时钟方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间。)

2.单片机电子钟利用内部定时/计数器溢出产生中断(12M晶振一般为50ms)再乘以相应的倍率来实现秒、分、时的转换。从定时/计数器产生中断请求到响应中断需要3-8个机器周期,定时中断子程序中的数据入栈和重装定时/计数器的初值还需要占用数个机器周期,还有从中断入口转到中断子程序也要占用一定的机器周期。

四、系统设计

C51单片机的输出是一个数字信号,只有0和1两种状态,也就是说只有大电流和小电流,不能直接对LED进行控制,此时需要一个相应的电路来将这个数字信号转化为模拟信号。如果在RCL电路的R1和L1串联一个发光二极管,而在电容两端加上高低的数字逻辑电平,则可以控制发光二极管上电流的变化。

1、PWM控制原理

虽然RCL电路能将对应的数字逻辑高低电平转换为模拟信号,并且能控制电流的大小变化,但还是需要51单片机提供这个数字逻辑电平,此时可以应用PWM控制原理来实现转换功能。PWM是脉冲宽度调制,简称脉宽调制,是一种使用51单片机或者其他处理器的数字输出来对模拟电路进行控制的方法,这种方法可用数字方式来控制模拟电路,能大幅度降低系统的成本和功耗。在采样控制理论中有一个重要的结论:冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。PWM控制技术就是以该结论为理论基础,利用51单片机的I/O引脚输出一系列幅值相等而宽度不相等的脉冲,来代替正弦波或其他所需要的波形,并按一定的规则对各脉冲的宽度进行调制,既可改变电路输出电压的大小,,也可改变输出频率。其关键参数有两个:脉冲的频率和脉冲的宽度。在呼吸灯实例中,修改PWM的输出波形,可以改变外加在RCL电路的电源时间长度和对

RCL电路进行充电的频率,从而可以分别控制吸气和呼气的长度以及呼吸的频率。

2、单片机程序

呼吸灯程序:

#include"reg52.h"

sbit P36=P3^6;

sbit P37=P3^7;

void delay(int n){

int i;

for(i=0;i<5*n;i++){}

}

void main(){

int k=1;

while(1){

P2=0xff;

delay(k);

P2=0;

delay(100-k);

if(P36==0){if(k<99){k++;};};

if(P37==0){if(k>1){k--;};}; }

}

3、仿真图

4、实物图

五、软件设计及系统仿真调试

(1)调试方法:利用keil软件进行C语言程序编写及调试,再利用Proteus仿真软件进行仿真实验。

(2)调试过程所遇问题:

1、由于呼吸灯的程序在仿真软件Proteus中实现的效果不明显,很难辨别LED是否具有呼吸的效果。所以边用keil调试程序边用STC烧写软件直接写入开发板,从而很明显看出LED是否具有呼吸效果;

2、程序运行时,出现LED闪烁过快,由于人眼的暂留效应看似LED 全部一直亮着,经调试,修改延时时间,实现呼吸效果。

呼吸灯的软件是系统设计的重点:其主要功能是要输出合适的PWM 波形来驱动三极管开关以使得RCL电路上获得适当的电源,而输出PWM波形的重点是对于52单片机的定时器/计数器的控制。

利用Proteus和Keil uVision对51单片机进行仿真

(1)新建一个Proteus ISIS电路图文件,并绘制对应的电路。(2)在Keil uVision中新建一个新的工程文件输入对应的C语言代码,并且编译生成对应的.hex文件。

(3)双击Proteus电路中的AT89C52,弹出对话框。

(4)单击运行。

发光二极管(LED):52单片机系统中发光二极管的典型应用电路可分为“灌电流“和“拉电流”两种。

(二)温度传感器

课程设计目的

通过基于MCS-51系列单片机AT89C51和DS18B20温度传感器检测温度,熟悉芯片的使用,温度传感器的功能,数码显示管的使用,汇编语言的设计;并且把我们这一年所学的数字和模拟电子技术、检测技术、单片机应用等知识,通过理论联系实际,从题目分析、电路设计调试、程序编制调试到传感器的选定等这一完整的实验过程,培养了学生正确的设计思想,使学生充分发挥主观能动性,去独立解决实际问题,以达到提升学生的综合能力、动手能力、文献资料查阅能力的作用,为毕业设计和以后工作打下一个良好的基础

一、设计目的

1.复习掌握Protues,keil软件的使用

2.了解掌握DS18B20的工作原理以及编程方法

二、方案选择与论证

根据设计任务的总体要求,本系统可以划分为以下几个基本模块,针对各个模块的功能要求,分别有以下一些不同的设计方案:

(1)、温度传感模块

方案一:采用热敏电阻,热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的,也不能满足测量范围。在温度测量系统中,也常采用单片温度传感器,比如AD590,LM35等。但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使测温系统的硬件结构较复杂。另外,这种测温系统难以实现多点测温,也要用到复杂的算法,一定程度上也增加了软件实现的难度。

方案二:采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。便于单片机处理及控制,节省硬件电路。且该芯片的物理化学性很稳定,此元件线形性能好,在0—100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C51构成的温度装置,它直接输出温度的数字信号到微控制器。每只DS18B20具有一个独有的不可修改的64位序列号,根据序列号可访问不同的器件。这样

一条总线上可挂接多个DS18B20传感器,实现多点温度测量,轻松的组建传感网络。

(2)显示模块

方案一:采用8位段数码管,将单片机得到的数据通过数码管显示出来。该方案简单易行,但所需的元件较多,且不容易进行操作,可读性差,一旦设定后很难再加入其他的功能,显示格式受限制,且大耗电量大,不宜用电池给系统供电。

方案二:采用液晶显示器件,液晶显示平稳、省电、美观,更容易实现题目要求,对后续的园艺通兼容性高,只需将软件作修改即可,可操作性强,也易于读数,采用RT1602两行十六个字符的显示,能同时显示其它的信息如日期、时间、星期、温度。

*方案选择:根据实验的的条件和实验过程中的便利,在温度传感模块选择方案二,在显示模块选择方案一

三、测温系统硬件设计

本系统选择体积小、成本低、内带2K EEPROM的89C2051作为控制芯片,晶振采用12MHZ,用74LS07,74LS04驱动三个LED 数码管和一个继电器线圈从而驱动电加热设备。P3.5口作为采集温度信号线,P1口作为显示数据线,与P3.3,P3.4组成显示的个位、十位及符号位,采用动态扫描显示。在本系统中测控一路温度信号,DS18B20通过单总线方式连接在单片机的P3。5.引脚上,用户可设

定所需的温度测定值(包括上限值和下限值),P3.1引脚控制电热设备启动与停止,从而达到控制温度效果。整个硬件系统简单、明晰。

*DS18B20测温硬件原理图

四、DS18B20元件分析

(1)DS18B20背景概述

测量温度的关键是温度传感器。随着技术飞速发展,传感器已进入第三代数字传感器。本测温系统采用的DS18B20就是属于这种传感器。DS18B20是美国DALLAS半导体公司生产的单总线数字温度传感器,它可以实现数字化输出和测试,并且有控制功能强、传输距离远、抗干扰能力强、接口方便、微功耗等优点,因而被广泛应用在工业、农业、军事等领域的控制仪器、测控系统中。

(2) DS18B20的原理及特性介绍

1.DS18B20的几个特点:

a. DS18B20因为采用了单总线技术,可通过串行口线,也可通过其他I/O口线与微机直接接传感器直接输出被测温度值(二进制数)。

b.其测量温度范围为:-55℃————+125℃,

c.测量分辨率为:0.0625℃,是其他传感器无法相比的。

* DS18B20外形及管脚

d.内含64位只读存储器ROM,(内存出厂序列号,是对应每一个器件的唯一号),还又RAM 存有温度当前转换值及符号。

e.用户可分别设定每个器件的温度上、下限。

f.内含寄生电源。

2. DS18b20的结构:

a. 64位光刻ROM ,可以看作是DS18B20的地址序列号,如表一所示。

b.高速暂存器RAM共占0、1两个单元:

两个8位的RAM中,存放二进制的数,高五位是符号位,如果温度大于0OC,这五位数为0,将测到的数值乘以0.0625,即得到实际的温度值;如果温度小于0OC,高五位为1,测到的数值需要取反加1,再乘以0.0625 ,才得到实际的温度值。

c. 九个寄存器的名称及作用:

(3) DS18B20 的控制方法

DS18B20的操作是通过执行操作命令实现的,其控制程序是按照DS18B20的通讯协议编制的。单片机与DS18B20交换数据,CPU 按照单总线协议在总线上产生复位时序和读写时序来实现的。其中包含复位脉冲、响应脉冲、读、写时序,只有响应脉冲是DS18B20发出的,其他都有单片机发出。时序的具体要求如下:

1. 复位脉冲:单片机发出一个宽为480—960μs的负脉冲之后再发出5—60μs的正脉冲,此时DS18B20会发出一个60—240μs 的响应脉冲,复位时序结束。也就是呼应阶段。

2. 写时间片:写一位二进制的信息,周期至少为61μS,其中含1μS的恢复时间,单片机启动写程序后15—60μs期间DS18B20自动采样数据线,低电平为“0”,高电平为“1”。单片机写“0”

时,要持续低电平60—120μs,写“1”时,要在启动后15μs之内使数据线变为高电平。

3. 读时间片:读一位二进制数据,周期及恢复时间要求与写时间片相同。单片机启动读时序之后,至少保持1μs低电平,然后在接近启动后15μs之前读入数据。低电平为“0”,高电平为“1”。

*初始化时序

*读/写时序

(4) ROM 操作命令的执行:

在 ROM 操作命令中,有两条命令专门用于获取传感器序列号:读ROM命令(33H)和搜索ROM命令(FOH)。读ROM命令只在总线上只有一个传感器的情况下使用。具体的搜索过程为:(1)单片机发出复位脉冲进行初始化,连接在P3。5口上的传感器则发

出存在脉冲做出响应。(2)单片机在单总线上发出搜索ROM命令。(3)单片机从单总线上读一位数据。ds18b20的工作时序分别有初始化时序、写时序、读时序、转换时序等,根据传感器的这些时序要求编写出子程序、主程序

五、系统软件设计:

系统对温度检测控并实时显示温度值。所选用的温度传感器芯片DS18B20属于新一代适配微处理器的智能温度传感器,时序复杂,在编程及运行中均须严格安照时序进行。

测温系统的工作流程:初始化——-获取序列号的ROM操作命令——-写存储器操作命令——-读转换数据——-处理数据—-显示温度—-启动控制设备。主程序功能是调用各功能子程序、控制电热设备开启与停止。子程序包括:对DS18B20初始化子程序、读子程序、写子程序、温度转换子程序、数值计算子程序、显示子程序。

程序方框图系统仿真图

程序加载成功实物图

单片机温度传感器程序:

#include"reg52.h"

#include"DS18B20.h"

unsigned char led_seg[]={0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e };

unsigned char dispbuf[]={0,0,0,0};

sbit P10=P1^0;

sbit P11=P1^1;

LED呼吸灯C51源程序

* 【使用说明】: 晶振为11.0592M 利用定时器控制产生占空比可变的PWM 波 按K3,PWM值增加,则占空比减小,LED 灯渐亮 按K4,PWM值减小,则占空比增加,LED 灯渐暗 当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警 ******************************************************************************* ***/ #include #include sbit K1 =P3^4 ; //PWM值增加键 sbit K2 =P3^5; //PWM值减少键 sbit BEEP =P0^4; //蜂鸣器 unsigned char PWM=0x7f ; //赋初值 void Beep(); void delayms(unsigned char ms); void delay(unsigned char t); /*********************************************************/ void main() { P1=0xff; TMOD=0x21 ; TH0=0xfc ; //1ms延时常数 TL0=0x66 ; //频率调节 TH1=PWM ; //脉宽调节 TL1=0 ; EA=1; ET0=1; ET1=1; TR0=1 ; while(1) { do{ if(PWM!=0xff) {PWM++ ;delayms(10);} else Beep() ;

} while(K1==0); do{ if(PWM!=0x02) {PWM-- ;delayms(10);} else Beep() ; } while(K2==0); } } /*********************************************************/ // 定时器0中断服务程序(频率) /*********************************************************/ void timer0() interrupt 1 { TR1=0 ; TH0=0xfc ; TL0=0x66 ; TH1=PWM ; TR1=1 ; P1=0x00 ; //启动输出 } /*********************************************************/ // 定时器1中断服务程序(脉宽) /*********************************************************/ void timer1() interrupt 3 { TR1=0 ; P1=0xff ; //结束输出 } /*********************************************************/ //蜂鸣器子程序 /*********************************************************/ void Beep() { unsigned char i ; for (i=0 ;i<100 ;i++) { delay(100) ;

555定时器的典型应用电路

555定时器的典型应用电路 单稳态触发器 555定时器构成单稳态触发器如图22-2-1所示,该电路的触发信号在2脚输入,R和C是外接定时电路。单稳态电路的工作波形如图22-2-2所示。 在未加入触发信号时,因u i=H,所以u o=L。当加入触发信号时,u i=L,所以u o=H,7脚内部的放电管关断,电源经电阻R向电容C充电,u C按指数规律上升。当u C上升到2V CC/3时,相当输入是高电平,5 55定时器的输出u o=L。同时7脚内部的放电管饱和导通是时,电阻很小,电容C经放电管迅速放电。从加入触发信号开始,到电容上的电压充到2V CC/3为止,单稳态触发器完成了一个工作周期。输出脉冲高电平的宽度称为暂稳态时间,用t W表示。 图22-2-1 单稳态触发器电路图 图22-2-2 单稳态触发器的波形图 暂稳态时间的求取: 暂稳态时间的求取可以通过过渡过程公式,根据图22-2-2可以用电容器C上的电压曲线确定三要素,初始值为u c(0)=0V,无穷大值u c(∞)=V CC,τ=RC,设暂稳态的时间为t w,当t= t w时,u c(t w)=2 V CC/3时。代入过渡过程公式[1-p205]

几点需要注意的问题: 这里有三点需要注意,一是触发输入信号的逻辑电平,在无触发时是高电平,必须大于2 V CC/3,低电平必须小于 V CC/3,否则触发无效。 二是触发信号的低电平宽度要窄,其低电平的宽度应小于单稳暂稳的时间。否则当暂稳时间结束时,触发信号依然存在,输出与输入反相。此时单稳态触发器成为一个反相器。 R的取值不能太小,若R太小,当放电管导通时,灌入放电管的电流太大,会损坏放电管。图22-2-3是555定时器单稳态触发器的示波器波形图,从图中可以看出触发脉冲的低电平和高电平的位置,波形图右侧的一个小箭头为0电位。 图22-2-3 555定时器单稳态触发器的示波器波形图 [动画4-5] 多谐振荡器 555定时器构成多谐振荡器的电路如图22-2-4所示,其工作波形如图22-2-5所示。 与单稳态触发器比较,它是利用电容器的充放电来代替外加触发信号,所以,电容器上的电压信号应该在两个阈值之间按指数规律转换。充电回路是R A、R B和C,此时相当输入是低电平,输出是高电平;当电容器充电达到2 V CC/3时,即输入达到高电平时,电路的状态发生翻转,输出为低电平,电容器开始放电。当电容器放电达到2V CC/3时,电路的状态又开始翻转。如此不断循环。电容器之所以能够放电,是由于有放电端7脚的作用,因7脚的状态与输出端一致,7脚为低电平电容器即放电。

最新51单片机花样呼吸灯程序

#include /*-----------定义单片机引脚--*/ sbit LED0=P1^0; sbit LED1=P1^1; sbit LED2=P1^2; sbit LED3=P1^3; sbit LED4=P1^4; sbit LED5=P1^5; sbit LED6=P1^6; sbit LED7=P1^7; void Delay(unsigned int t); //函数声明 unsigned int z,y; void main (void)//主函数 { unsigned int CYCLE=1000,PWM_LOW=0;//定义周期并赋值 while (1) //主循环 { /*--------整排LED灯呼吸---------*/ P1=0x00; Delay(1000); //加延时,可以看到熄灭的过程(下面程序同理) for(PWM_LOW=1;PWM_LOW0;PWM_LOW--) //与逐渐变亮相反的过程 { P1=0x00; //点亮LED Delay(PWM_LOW); P1=0xff; //熄灭LED Delay(CYCLE-PWM_LOW); //主循环中添加其他需要一直工作的程序,延时长度,600次循环中从599减至1 } /*--------第一颗LED灯呼吸---------*/ /* LED0=1; Delay(1000); for(PWM_LOW=1;PWM_LOW

三路PWM呼吸灯程序及原理图

PWM三路呼吸灯系统 主要是靠定时器产生最小时间,通过定时中断重装定时值和置位标记位22H。 总原理图 中断按钮可以调节灯一(D3)的呼吸时间

两位数码管显示灯的呼吸时间 复位电路和晶振电路

程序如下: ORG 0000H LJMP S00 ORG 0003H LJMP AN ORG 000BH LJMP DSQ ORG 0030H S00: SETB P2.0 CLR P2.1 CLR P2.2 MOV IE,#83H SETB IT0 MOV TMOD,#01H MOV TL0,#0DCH MOV TH0,#0BH SETB TR0 MOV 30H,#00H //30H保存幅值 MOV 31H,#00H MOV 32H,#00H MOV 33H,#04H CPL P2.4 SETB 20H SETB 21H SETB 22H SETB 23H SS00: MOV C,22H //判断总刷新 JNC S003 CLR 22H SJMP S001 S003: LJMP S030 S001: CLR C //判断31H值,每段的加/减值MOV R2,30H CJNE R2,#00H,SS01 SETB 20H MOV 31H,#5 LJMP S019 SS01: MOV A,30H SUBB A,#50 JNC S010 MOV 31H,#5

S010: CLR C MOV A,30H SUBB A,#130 JNC S012 MOV 31H,#4 SJMP S019 S012: CLR C MOV A,30H SUBB A,#220 JNC S013 MOV 31H,#3 SJMP S019 S013: CLR C MOV A,30H SUBB A,#240 JNC S014 MOV 31H,#2 SJMP S019 S014: CLR C MOV R2,30H CJNE R2,#0FAH,S015 CLR 20H S015: MOV 31H,#1 S019: NOP S020: MOV C,20H //执行加/减JNC S021 CLR C MOV A,30H ADD A,31H MOV 30H,A MOV R2,A CJNE R2,#0FAH,S022 CLR 20H LJMP S029 S022: JNC S004 SJMP S029 S004: LJMP S00 S021: CLR C MOV A,30H SUBB A,31H MOV 30H,A JC S100

555定时器构成的多谐振荡器

一、用555定时器构成的多谐振荡器 1.电路组成: 用555定时器构成的多谐振荡器电路如图6-11(a)所示:图中电容C、电阻R1和R2作为振荡器的定时元件,决定着输出矩形波正、负脉冲的宽度。定时器的触发输入端(2脚)和阀值输入端(6脚)与电容相连;集电极开路输出端(7脚)接R1、R2相连处,用以控制电容C 的充、放电;外界控制输入端(5脚)通过0.01uF电容接地。 2.工作原理: 多谐振荡器的工作波形如图6-11(b)所示: 电路接通电源的瞬间,由于电容C来不及充电,Vc=0v,所以555定时器状态为1,输出Vo为高电平。同时,集电极输出端(7脚)对地断开,电源Vcc对电容C充电,电路进入暂稳态I,此后,电路周而复始地产生周期性的输出脉冲。多谐振荡器两个暂稳态的维持时间取决于RC充、放电回路的参数。暂稳态Ⅰ的维持时间,即输出Vo的正向脉冲宽度T1≈0.7(R1+R2)C;暂稳态Ⅱ的维持时间,即输出Vo的负向脉冲宽度T2≈0.7R2C。 因此,振荡周期T=T1+T2=0.7(R1+2R2)C,振荡频率f=1/T。正向脉冲宽度T1与振荡周期T

之比称矩形波的占空比D,由上述条件可得D=(R1+R2)/(R1+2R2),若使R2>>R1,则D≈1/2,即输出信号的正负向脉冲宽度相等的矩形波(方波)。 二、多谐振荡器应用举例: 1.模拟声响发生器: 将两个多谐振荡器连接起来,前一个振荡器的输出接到后一个振荡器的复位端,后一个振荡器的输出接到扬声器上。这样,只有当前一个振荡器输出高电平时,才驱动后一个振荡器振荡,扬声器发声;而前一个振荡器输出低电平时,导致后面振荡器复位并停止震荡,此时扬声器无音频输出。因此从扬声器中听到间歇式的"呜......呜"声响。 2.电压——频率转换器: 由555定时器构成的多谐振荡器中,若定时器控制输入端(5脚)不经电容接地,而是外加一个可变的电压源,则通过调节该电压源的值,可以改变定时器触发电位和阀值电位的大小。外加电压越大,振荡器输出脉冲周期越大,即频率越低;外加电压越小,振荡器输出脉冲周期越小,即频率越高。这样,多谐振荡器就实现了将输入电压大小转换成输出频率高低的电压—频率转换器的功能。

呼吸灯课程设计

郑州科技大学 《数字电子技术》课程设计 题目LED 呼吸灯 学生姓名 专业班级 学号 院(系) 指导教师 完成时间 2013年 3 月13日

目录 1 课程设计目的 (1) 2 课程设计任务与要求 (2) 3 设计方案与论证 (4) 3.1 设计任务分析 (4) 3.2 设计电路 (4) 3.3 调试 (5) 4 设计原理及其功能 (6) 5 单元电路的设计 (7) 5.1 LED日光灯 (7) 5.2 电阻 (8) 5.3 电容 (8) 5.4 三极管 (9) 5.5 LM358 (11) 6 硬件的制作与调试 (13) 6.1 电路焊接 (13) 6.2 功能实现 (13) 6.3 外观 (13) 7 设计总结 (14)

参考文献 (16) 附录一:总体电路原理图 (17) 附录二:元器件清单 (18)

1 课程设计目的 电子技术是一门实践性很强的课程,加强工程训练,特别是技能的培养,对于培养工程人员的素质和能力具有十分重要的作用。在电子信息类本科教学中,电子技术课程设计是一个重要的实践环节,它包括选择课题、电子电路设计、组装、调试和编写总结报告等实践内容。通过课程设计要实现以下两个目标:第一,让学生初步掌握电子线路的试验、设计方法。即学生根据设计要求和性能参数,查阅文献资料,收集、分析类似电路的性能,并通过组装调试等实践活动,使电路达到性能指标;第二,课程设计为后续的毕业设计打好基础。毕业设计是系统的工程设计实践,而课程设计的着眼点是让学生开始从理论学习的轨道上逐渐引向实际运用,从已学过的定性分析、定量计算的方法,逐步掌握工程设计的步骤和方法,了解科学实验的程序和实施方法,同时,课程设计报告的书写,为今后从事技术工作撰写科技报告和技术资料打下基础。

呼吸灯代码

写一段程序,使单片机上LED红·蓝·绿三种颜色的灯呼吸 #include"STC89C5xRC.h" void delay100Us(unsigned int cnt) { unsigned int i; while(cnt--) {i=6; while(i--) ; } } void delayMs(unsigned int cnt) { unsigned int i; while(cnt--) {i=82; while(i--) ; } } void delay(unsigned int t) { while(t--); } void main(void) { unsigned int CYCLE=600,PWM_LOW=0; P2=0; while(1) { delay(40000); for(PWM_LOW=1;PWM_LOW

for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--) { P20=1; P21=1; P22=0; delay(PWM_LOW); P20=1; P21=1; P22=1; delay(CYCLE-PWM_LOW); } delay(40000); for(PWM_LOW=1;PWM_LOW0;PWM_LOW--) { P20=1; P21=0; P22=1; delay(PWM_LOW); P20=1; P21=1; P22=1; delay(CYCLE-PWM_LOW); } delay(40000); for(PWM_LOW=1;PWM_LOW

51单片机PWM呼吸灯源程序

51单片机PWM-呼吸灯源程序 /** ************************************************* *************** * @file : main.c * @xu ran * @date : 2014年5月23日20:55:19 - 2014年5月23日22:32:12 * @version : V2.0 * @brief : PWM脉冲宽度调制技术实现呼吸灯 ************************************************* *************** * @attention * 实验平台 : 51hei开发板 * 单片机 : STC89C52RC MCU 晶振 : 11.0592 MHZ ************************************************* *************** */ #include //使用STC89C52库 /* 三八译码器74HC138 */ sbit ADDR3 = P1^3;

sbit ENLED = P1^4; sbit PWMOUT = P0^0; //LED0 /* PWM占空比 */ unsigned char code pwmTable[] = { 3, 5, 8, 11, 13, 16, 21, 24, 27, 30, 33, 36, 40, 45, 49, 53, 55, 57, 61, 65, 67, 69, 72, 75, 79, 82, 86, 89, 91, 93, 96, 99 }; // dc% /* PWM的高电平和低电平的定时器的重载值 */ unsigned char Highthr0, Hightlr0; unsigned char Lowthr0, Lowtlr0; /* 定时器T1计数装载值 */ unsigned char thr1, tlr1; /* PWM 频率计数值 */ unsigned long tmp = 0; /******************local function defines**************************/ void ConfigPWM(unsigned int fr, unsigned char dc); void ConfigTimer1(unsigned int xms); /************************************************

555定时器的电路结构与功能

一、555定时器的电路结构与功能 555定时器是一种多用途的数字-模拟混合集成电路,利用它能极方便地构成施密特触发器、单稳态触发器和多谐振荡器。由于使用灵活、方便,所以555定时器在波形的产生与变换、测量与控制、家用电器、电子玩具等许多领域中都得到了应用。 图6.25是国产双极性定时器CB555的电路结构图。它由比较器C1 和C2 、基本RS触发器和集电极开路的放电三极管三部分组成。 图6.25 CB555的电路结构图 :比较器C1 的输入端(也称阈值端,用TH标注) :比较器C2 的输入端(也称触发端,用标注) C 和C 的参考电压(电压比较的基准)和由V 经三个5kΩ电阻分压给出。(在控制电压输入端悬空时,,。如 果外接固定电压,则 ) 是置零输入端,则输出端,不受其他输入状态的影响。正常 工作时必须使。图中的数码1~8为器件引脚的编号。通过分析可以得到如下所示的CB555的功能表。 CB555的功能表

低 低 不变 高 高 为了提高电路的带负载能力,还在输出端设置了缓冲器G4 。如果将端经过 电阻接到电源上,那么只要这个电阻的阻值足够大,为高电平时也一定 为高电平,为低电平时也一定为低电平。555定时器能在很宽的电源电压范围内工作,并可承受较大的负载电流。双极性555定时器的电源电压范围为5~16 V,最大的负载电流达200mA。CMOS型7555定时器的电源电压范围为3~18 V,但最大负载电流在4mA以下。 可以设想,如果使和的低电平信号发生在输入电压信号的不同电平,那么输出与输入之间的关系将为施密特触发特性;如果在加上一个低电平触发信号以后,经过一定的时间能在端自动产生一个低电平信号,就可以得到单 稳态触发器;如果能使和的低电平信号交替地反复出现,就可以得到多谐振荡器。 二、用555定时器接成的施密特触发器 将555定时器的阈值输入端和触发输入端连在一起,便构成了施密特触发器,如下图。 图6.26 用555定时器接成的施密特触发器图6.27 图6.26的电压传输特性 当输入如图6.27所示的三角波信号时,则从施密特触发器的端可得到方波输出。

358呼吸灯CAD设计报告

《电子线路CAD》课程论文题目:358呼吸灯电路的设计

1 电路功能和性能指标 由LM358及外围电路构成了一个三角波信号发生器;三极管构成一个共射电路,将加在基极的三角波信号进行放大,并且由于基极的电压是一个三角波加在直流信号上,导致发射级的输出电压是一个上移的三角波信号,可以控制LED 灯的亮度,形成呼吸的效果。 2 原理图设计 2.1原理图元器件制作 图1 选择文件-创建-库-原理图库,然后进入原理图元器件编辑界面,放置矩形和引脚,并编辑引脚名画好图后如图1,然后点击工具-新器件编辑器件名,最后编辑它的名字和标注并添加如库中,或者直接放置到原理图中就行了。 2.2 原理图设计 新建一个项目后,保存为358呼吸灯,然后新建原理图添加入项目中,然后设置绘图环境就OK了。

绘制原理图如图二所示。 编译后发现有几个错误如图3,然后修改元器件名之后就可以了如图2。

图4 在原理图中,点击设计-生成集成库,然后就得到元器件库如图4。在设计过程中可能有的元器件在第一个库中没有,就需要在路径中搜索,如果还是没有就需要自己画原理图,就好像图中的J1原件。 2.3 原理图报表 图5

图 6 点击报告-元器件报,得到网络表如图5和图6。元器件报表可以使用户掌握本项目或某个元器件库中元器件的相关信息。元器件中以D1为例,它的封装名和标识符都可以看到。网络以NETC1_1为例,C1-1,JP1-1,R9-2引脚都属 于该网络。 图7 元器件清单如图7所示。 3 PCB设计 3.1元器件封装制作

图8 点击文件-创建-库-PCB库,然后选择版层来确定封装颜色,然后画好轮廓后,添加焊盘然后修改焊盘名与原理图元器件相对应,并修改封装名添加如封装库或直接放置如PCB图中即可。 3.2 PCB设计 图9 先新建一个PCB文件,并保存为358呼吸灯PCB,放入项目内,然后设置绘图环境,即可。在原理图界面点击设计-update-使变化生效,看有无错误,如果有就找到有错误的元器件然后在原理图中修改其封装,再检验错误,如果没有就点击执行变化,就可导入原理图中,然后自己摆放封装位置,确定物理边界和

001_雾盈FPGA笔记之一呼吸灯简单实验(Verilog)

基于FPGA的呼吸灯简单实验程序(Verilog) 2016-07-27雾盈 1.呼吸灯 呼吸灯最早是由苹果公司发明并应用于笔记本睡眠提示上,一经展出,立刻吸引众多科技厂商争相效仿。将其广泛用于各种电子产品中,尤其是智能手机。 呼吸灯其实是微电脑控制下,由暗渐亮,然后再由亮渐暗,模仿人呼吸方式的LED灯 2.呼吸灯原理 LED的亮度与流过的电流成正比。在一定的频率之下,如果占空比是0,则LED不亮;如果占空比是100%,则LED最亮;如果占空比刚好是50%,则LED亮度适中。如果我们让占空比从0~100%变化,再从100%~0不断变化,就可以实现LED一呼一吸的效果。 其波形占空比示意图如下所示:

3.呼吸灯程序设计思路 (1)首先确定PWM的频率为1Khz (2)由频率算出周期T = 1/f = 1ms (3)根据每次呼1s,吸1s,算出计数值1s/1ms=1000 (4)然后将1ms分成1000份,每一份是1us (5)写三个1us、1ms、1s的3个计数器count1、count2、Count3,最后count2和count3进行比较 4.程序框图 5.状态机设计 可以将呼吸灯运行过程归为两个状态:S0:由灭渐亮;S1:由亮渐灭。 这里就会有两个问题需要我们解决, 1.状态的翻转 2.在一个状态里如何使pwm波的占空比实现逐增或逐减。

先说第一个问题,两个状态的翻转 由下面的时序图可以看出来,两个状态的翻转只是由时间决定的,S0状态和S1状态分别持续1s, 可以将它看成周期为2s的时钟信号,每当flag_1s信号到来一次,状态就翻转一次。

基于STM32的呼吸灯

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

555定时器的结构和工作原理

13.1 555定时器的结构和工作原理本节重点: (1)脉冲的基本知识 (2)555电路的组成结构和工作原理 (3)555芯片引脚图 (4)555电路功能表 (5)555电路的典型应用 本节难点: (1)555的内部电路组成和工作原理 (2)555电路的典型应用 引入:555定时器电路是一种中规模集成定时器,目前应用十分广泛。通常只需外接几个阻容元件,就可以构成各种不同用途的脉冲电路,如多谐振荡器、单稳态触发器以及施密特触发器等。555定时电路有TTL集成定时电路和CMOS集成定时电路,它们的逻辑功能与外引线排列都完全相同。双极型产品型号最后数码为555,CMOS型产品型号最后数码为7555。 一、555电路的结构组成和工作原理 (1)电路组成及其引脚

(2)555的工作原理 它含有两个电压比较器,一个基本RS 触发器,一个放电开关T ,比较器 的参考电压由三只5K Ω的电阻器构成分压,它们分别使高电平比较器C1同相比 较端和低电平比较器C2的反相输入端的参考电平为Vcc 32和Vcc 3 1 。C1和C2的 输出端控制RS 触发器状态和放电管开关状态。当输入信号输入并超过Vcc 3 2 时, 触发器复位,555的输出端3脚输出低电平,同时放电,开关管导通;当输入信 号自2脚输入并低于Vcc 3 1 时,触发器置位,555的3脚输出高电平,同时放电, 开关管截止。 D R 是复位端,当其为0时,555输出低电平。平时该端开路或接Vcc 。 Vco 是控制电压端(5脚),平时输出Vcc 3 2 作为比较器A1的参考电平,当5 脚外接一个输入电压,即改变了比较器的参考电平,从而实现对输出的另一种控制,在不接外加电压时,通常接一个0.01F μ的电容器到地,起滤波作用,以消除外来的干扰,以确保参考电平的稳定。 T 为放电管,当T 导通时,将给接于脚7的电容器提供低阻放电电路. (3)555电路的引脚功能 二、555电路的应用 (1)用555电路构成施密特触发器

LED呼吸灯C源程序

L E D呼吸灯C源程序 The latest revision on November 22, 2020

* 【使用说明】: 晶振为 利用定时器控制产生占空比可变的 PWM 波 按K3,PWM值增加,则占空比减小,LED 灯渐亮 按K4,PWM值减小,则占空比增加,LED 灯渐暗 当PWM值增加到最大值或减小到最小值时,蜂鸣器将报警 ************************************************************************ **********/ #include<> #include<> sbit K1 =P3^4 ; //PWM值增加键 sbit K2 =P3^5; //PWM值减少键 sbit BEEP =P0^4; //蜂鸣器 unsigned char PWM=0x7f ; //赋初值 void Beep();

void delayms(unsigned char ms); void delay(unsigned char t); /*********************************************************/ void main() { P1=0xff; TMOD=0x21 ; TH0=0xfc ; //1ms延时常数 TL0=0x66 ; //频率调节 TH1=PWM ; //脉宽调节 TL1=0 ; EA=1; ET0=1; ET1=1; TR0=1 ; while(1)

{ do{ if(PWM!=0xff) {PWM++ ;delayms(10);} else Beep() ; } while(K1==0); do{ if(PWM!=0x02) {PWM-- ;delayms(10);} else Beep() ; } while(K2==0); } } /*********************************************************/

STM32f103定时器输出PWM波驱动LED的呼吸灯

STM32f103 定时器输出PWM波控制LED输出呼吸灯 (根据正点原子程序) 定时器部分:time.c 与time.h Time.h函数 #ifndef __TIME_H #define __TIME_H void TIME_PWM_Init(u16 arr,u16 psc); #endif Time.c 函数 #include "time.h" // 定时器输出PWM波,控制LED(PD12),重映射到TIME4_CHI //******************************************************// void TIME_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_OCInitTypeDef TIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); // RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO,ENABLE);// GPIO_PinRemapConfig(GPIO_Remap_TIM4,ENABLE); //重映射TIM4使能

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOD,&GPIO_InitStructure); // 初始化GPIO口为复用推完输出 // 初始化TIM4 TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;//向上计数 TIM_TimeBaseInitStructure.TIM_Period=arr; // TIM_TimeBaseInitStructure.TIM_Prescaler=psc;//预分频系数 TIM_TimeBaseInitStructure.TIM_ClockDivision = 0; TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure); // 初始化TIM4_CHI—pwm模式 TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;// 极性选择 TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;// TIM_OC1Init(TIM4,&TIM_OCInitStructure); // TIM_OC1PreloadConfig(TIM4,TIM_OCPreload_Enable); // 使能TIM4在ccr1上的预装载寄存器 TIM_Cmd(TIM4,ENABLE); //使能TIM4 } Main函数 #include "stm32f10x.h"

555定时器构成的多谐振荡器

创作编号: GB8878185555334563BT9125XW 创作者:凤呜大王* 多谐振荡器是一种能产生矩形波的自激振荡器,也称矩形波发生器。“多谐”指矩形波中除了基波成分外,还含有丰富的高次谐波成分。多谐振荡器没有稳态,只有两个暂稳态。在工作时,电路的状态在这两个暂稳态之间自动地交替变换,由此产生矩形波脉冲信号,常用作脉冲信号源及时序电路中的时钟信号。 一、用555定时器构成的多谐振荡器 1.电路组成: 用555定时器构成的多谐振荡器电路如图6-11(a)所示:图中电容C、电阻R1和R2作为振荡器的定时元件,决定着输出矩形波正、负脉冲的宽度。定时器的触发输入端(2脚)和阀值输入端(6脚)与电容相连;集电极开路输出端(7脚)接R1、R2相连处,用以控制电容C的充、放电;外界控制输入端(5脚)通过0.01uF电容接地。 2.工作原理:

多谐振荡器的工作波形如图6-11(b)所示: 电路接通电源的瞬间,由于电容C来不及充电,Vc=0v,所以555定时器状态为1,输出Vo为高电平。同时,集电极输出端(7脚)对地断开,电源Vcc对电容C充电,电路进入暂稳态I,此后,电路周而复始地产生周期性的输出脉冲。多谐振荡器两个暂稳态的维持时间取决于RC充、放电回路的参数。暂稳态Ⅰ的维持时间,即输出Vo的正向脉冲宽度T1≈0.7(R1+R2)C;暂稳态Ⅱ的维持时间,即输出Vo的负向脉冲宽度T2≈0.7R2C。 因此,振荡周期T=T1+T2=0.7(R1+2R2)C,振荡频率f=1/T。正向脉冲宽度T1与振荡周期T之比称矩形波的占空比D,由上述条件可得D=(R1+R2)/(R1+2R2),若使R2>>R1,则D≈1/2,即输出信号的正负向脉冲宽度相等的矩形波(方波)。 二、多谐振荡器应用举例: 1.模拟声响发生器: 将两个多谐振荡器连接起来,前一个振荡器的输出接到后一个振荡器的复位端,后一个振荡器的输出接到扬声器上。这样,只有当前一个振荡器输出高电平时,才驱动后一个振荡器振荡,扬声器发声;而前一个振荡器输出低电平时,导致后面振荡器复位并停止震荡,此时扬声器无音频输出。因此从扬声器中听到间歇式的"呜......呜"声响。 2.电压——频率转换器: 由555定时器构成的多谐振荡器中,若定时器控制输入端(5脚)不经电容接地,而是外加一个可变的电压源,则通过调节该电压源的值,可以改变定时器触发电位和阀值电位的大小。外加电压越大,振荡器输出脉冲周期越大,即频率越低;外加电压越小,振荡器输出脉冲周期越小,即频率越高。这样,多谐振荡器就实现了将输入电压大小转换成输出频率高低的电压—频率转换器的功能。

呼吸灯程序

#include #define uInt unsigned int #define uchar unsigned char uchar PWM_T = 0; //占空比控制变量 //////////////////主程序入口////////////////////// void main(void) { bit flag = 1; //控制灯渐亮渐熄方式 uInt n; TMOD=0x02; //定时器0,工作模式2,8位定时模式 TH0=210; //写入预置初值(取值1-255,数越大PWM频率越高) TL0=210; //写入预置值(取值1-255,数越大PWM频率越高) TR0=1; //启动定时器 ET0=1; //允许定时器0中断 EA=1; //允许总中断 P2=0xff; //初始化P1 while(1) { for(n=0;n<600;n++); //延时,将响应定时器中断,灯会自动加/减一个档次的亮度//取值0-65535,数字越大变化越慢 if(flag==1) //灯渐亮 PWM_T++; else //灯渐熄 PWM_T--; if(PWM_T>=100) //设置灯亮度级别为10 flag=0; if(PWM_T==0) //限定最低亮度级别为0 flag = 1; } } ///////////////////定时器0中断模拟PWM//////////////////// timer0() interrupt 1 using 2 { static uchar t ; //PWM计数 t++; //每次定时器溢出加1 if(t==100) //PWM周期 { t=0; //使t=0,开始新的PWM周期 P2=0x00; //使LED灯亮 }

呼吸灯程序

呼吸灯(简单易懂) 如题呼吸灯就是让LED灯的闪烁像呼吸一样,时呼时吸,时亮时暗,利用LED的余辉和人眼的暂留效应,看上去和人的呼吸一样。二、设计原理:用C语言编程实现 PWM(脉宽调制)输出驱动LED,逐渐增加PWM 的占空比从而实现LED模拟呼吸的过程,即渐亮再渐暗再渐亮再渐暗……如此往复,再利用LED的余辉和人眼的暂留效应,看上去就和人的呼吸一样。三、整体方案设计8个LED按照顺序逐个实现呼吸效果。加以其他闪烁花样增加更炫彩的效果。四、实验元件及器材(1)元件:LED(发光二极管)8个1KΩ电阻8个1nf电容2个晶振 1个 AT89C51芯片1个(2)器件:Atmega128开发板1块计算机1台五、硬件原理(1)主电路:8个LED分别连接AT89C51的P1口,使用共阳方式,并加以1kΩ的电阻接入电源。 #include //包含头文件,一般情况不需要改动, //头文件包含特殊功能寄存器的定义 /*-------------------------IO口定义 ----------------------------*/

sbit LED0=P0^0;// 用sbit 关键字定义 LED到P0.0端口,LED是自己任意定义且容易记忆的符号 sbit wei=P1^1; sbit duan=P1^0; sbit lcden=P1^7; sbit dianzhen=P1^3; sbit leden=P1^2; void Delay(unsigned int t); //函数声明 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { unsigned int CYCLE=600,PWM_LOW=0;//定义周期并赋值 lcden=0; P0=0x00; dianzhen=0; P0=0xff; wei=0; duan=0;

msp430呼吸灯程序

/******uestc*****/ //******************************************************************* //MSP430G2553 呼吸灯演示程序- 使用Timer_A,Up Mode, DCO SMCLK // // 介绍: 该程序利用TIMER A 的UP模式在P1.6脚产生PWM输出 // 将CCR0设置为1500来定义PWM的周期,利用循环不断改变CCR1的值,// 实现利用改变PWM的占空比来改变LED亮度. // ACLK = na, SMCLK = MCLK = TACLK = default DCO // // MSP430G2553 // ----------------- // /|\| XIN|- // | | | // --|RST XOUT|- // | | // | P1.6/TA1|--> CCR1 - PWM // // 使用MSP430 LaunchPad , MSP430G2553芯片 // 在IAR Embedded Workbench for MSP430 5.40下编译测试通过 //******************************************************************* #include "msp430g2553.h" // ************************************************************* // 延时函数,对于1M主频,约延时1ms // ************************************************************* void delay_1ms(void) { unsignedint k; for (k=0;k<195;k++); } // ************************************************************* // 延时函数,延时n*ms // ************************************************************* voiddelay_nms(unsigned int n) { unsignedint j; for (j=0;j

相关文档