所谓的“呼吸灯”,就是通过程序控制led灯的闪烁过程,像呼吸一样有节奏。有亮度渐变的过程。
先来张效果图:
这图片有点大。。。。
这是未加修饰的样子,不过进行了简单的装饰后,就变身超级有爱的东西了
制作过程:
1 //******************************
2 // 51单片机模拟呼吸灯
3 // 2012.9.23
4 // menglei
5 // p0.0接一个LED灯,状态0为亮
6 //******************************
7
8
9 #include
10 #define N 2 //亮暗的速率
11 #define T 800 //PWM的周期
12 #define T1 1400
13 #define T2 900
14 //sbit led0=P0^0;
15 //======================
16 void pwm(int x)
17 {
18 while(x--);
19 }
20 //======================
21
22 void flash1(void){
23 int t = 0;
24 char f = 0;
25 int count = 5;//5次,每个函数执行的次数
26 while(1){
27 P0 = 0x00;
28 pwm(t); //Toff,亮的时间
29 //led0=1;
30 P0 = 0xff;
31 pwm(T-t+100);//Ton,暗的时间
32 if(!f) t+=N+1;//亮速率较快,模拟呼吸
33 else t-=N;//暗速率较慢
34 if(t>T) {f=1;t=T;}//超过最大值时,返回最大值,标志为暗
35 if(t<0) {f=0;t=0;}//超过最小值时,返回最小值,标志为亮
36 // count--;
37 }
38 }
39 void main()
40 {
41
42 while(1)
43 {
44 flash1();
45 }
46 }
程序不多,但是电路的制作的确很费时间和脑子,因为要考虑每条线的走线,还不能让线太过于繁琐
这是中间的一部分,像那个显像管电视的样子 哈哈哈
正面:
调试时的走线:(不堪入目啊)
最后的制作:
关键字:单片机 呼吸灯
引用地址:
自制“心形”单片机呼吸灯
推荐阅读最新更新时间:2024-03-16 15:28
基于单片机的电力变压器非电量智能测控保护装置系统的设计
1引言 电力变压器是电力系统中应用相当普遍而又十分重要的电气设备,它运行较为可靠,故障机率小。但是在运行中,还是可能发生箱内故障、箱外故障及出现不正常工作状态。其中,箱内故障是非常危险的,因为短路电流产生的电弧不仅会破坏绕组绝缘,烧坏铁芯,还可能使绝缘材料和变压器油受热而产生大量气体,引起变压器油箱爆炸。一旦发生故障,将给电力系统的运行带来严重的后果。 为了保证变压器的安全运行和防止扩大事故,根据变压器的容量大小及其重要程度安装灵敏、快速、可靠和选择性好的各种专用保护装置是极为重要的。 对变压器的保护主要分为电量型继电保护和非电量型保护。 电力变压器的电量型继电保护主要有:差动保护、电流速断保护、零序电流保护等,但这些保护
[单片机]
39-基于51单片机的热敏电阻测温设计
1、设计需求及目标 具有温度上下限范围,并可以手动调整; 初始化后显示温度信息与上下限信息; 模数转换芯片使用分辨率10位以上A/D芯片; 采用液晶显示; 2、设计思路及方案 本设计以51系列单片机STC89C52为控制核心,以液晶显示模块、键盘为人机接口,负温度系数热敏电阻器(NTC)为采样传感器,实现了一个基于51单片机的热敏电阻测温设计。
[单片机]
基于于HMR3000和MCU实现车辆模拟驾驶动感数据采集系统的设计
1、引言 车辆模拟驾驶训练系统是一种利用现代技术手段模拟真车驾驶的仿真系统,它可以使汽车驾驶训练更加安全、经济、高效和逼真。与现有车辆模拟驾驶训练系统相比,新型车辆模拟驾驶训练系统的独特之处是增加了动感系统。该动感系统可以使驾驶员在模拟驾驶室内真实感受到模型车所行驶的沙盘路面的状况,与实车在正常路面上行驶的感觉一样,从而弥补现有车辆模拟驾驶训练系统的不足,提高驾驶训练的效果。 2、 系统的组成及工作原理 新型车辆模拟驾驶训练系统中的动感系统主要由动感 数据采集 系统、动感数据无线发收系统、动感平台及其控制系统组成。 工作原理是:安装于模型车上的动感数据采集系统实时采集模型车行驶过程中姿态的动感数据,通过无线收发系统
[汽车电子]
采用多单片机的液位监控仪
摘要:介绍把多个单片机用于一个多路液位监控系统的方法。说明用多个单片机的原因及用单片机取代I/O接口的理由,并对系统的软硬件设计、调试也做了说明。
关键词:多单片机 液位 监控
采用单片机设计液位监控仪是很通用的做法。如果要测量的液位有很多路(16路以上),每路要求能滚动显示1年内每班、每日、每月的输入输出总量(1日3班),正常或意外停电数据不丢失,人机交互能力要强(要设置适当数量的按键及采用LCD显示),并且每路液位要求对应2路控制输出信号(液罐液体输入控制和输出控制),配置微型打印机端口,设置声音报警,所有这些无疑需要很多的I/O端口来支持,单凭一个单片机是办不到的,需要扩展I/O端口。在此设计中,笔者认为采用专用I/O
[应用]
单片机程序员一天学会Arduino
有人可能会说,一天太快了,当然也有人会说一天太慢了。 没错,的确是这样,因为对于学过51,和stm的地球人来说, 一天时间的确是太久了。但是对于没有学过的人来说, 只要你是一枚合格的程序员,那么你一天就可以学会。 因为芯片的封装了强大方便的API,和我们学完C++去学java是一种感觉。 首先我先学习一下Arduino的API 数字IO口 pinMode(pin,mode) 配置引脚为输人或输出 pin:引脚 mode:模式 INPUT OUTPUT digitalWrite(pin,value) 输出高低电平 pin:引脚 value:电平 HIGH LOW int digitalRead(pin)
[单片机]
51单片机简易计算器程序 实现数字的加减乘除运算
单片机源程序如下: #include reg51.h //头文件 #define uint unsigned int #define uchar unsigned char sbit lcden=P1^1; //LCD1602控制引脚 sbit rs=P1^0; sbit rw=P1^2; sbit busy=P0^7;//LCD忙 char i,j,temp,num,num_1; long a,b,c; //a,第一个数 b,第二个数 c,得数 float a_c,b_c; uchar flag,fuhao;//flag表示是否有运算符键按下,fuhao表征按下的是哪个运算符 //flag=1表示运算符键按
[单片机]
VL53L0X激光测距模块的单片机驱动程序
自己做的激光测距VL53L0X程序,拿出来和大家分享。这程序里面没有加显示设备,因为不知道大家要使用什么来显示,所以请根据个人情况来进行修改添加,但是附件里面的程序是我加上OLED后的程序 各位请按需使用。 单片机源程序如下: #include REGX51.H #include intrins.h #define uchar unsigned char #define uint unsigned int #define VL53L0X_REG_IDENTIFICATION_MODEL_ID 0xc0 #define VL53L0X_REG_IDENTIFICATION_REVISION_ID 0xc2 #d
[单片机]
Watchdog在Philips 8XC552系列单片机系统中的应用
1 引言 Philips公司的8XC552单片机以其体积小、功能强、价格低等优势而广泛地使用在工业控制、DCS控制和智能仪器等领域。笔者在智能配电监测仪的研制过程中,虽然采取了相应的抗干扰措施,但由于工业现场环境中电磁场、电网尖峰、谐波、浪涌及雷电辐射等影响,仍有可能出现程序死循环、跑飞等失控现象。为此,笔者采用Watchdog技术保证了系统的正常运行,通常Watchdog技术在单片机应用系统中可分为软件Watchdog和硬件Watchdog。Philips公司的8XC552、Intel的8098、Motorala的68C05以及Microchip的16C5X系列单片机本身已带有软件Watchdog功能,因此,只要
[应用]