51单片机c语言呼吸灯程序,给你的51单片机作品加个呼吸灯(程序)
本帖最后由 xiashan 于 2015-4-5 18:30 编辑
看着笔记本待机的时候,电源灯变成忽明忽暗,手就不自在了。
研究了一番,写出了代码,加到自己做的“玩具”上。
可能会觉得这个东西没有什么实在意义,只不过看起来没闪烁那么单调而已。
如果觉得有用,也可以加到自己的作品上,据说某mp3用呼吸频率来表示系统电量得多少,咱觉得还是蛮创意的。
如果你的系统有空余的定时器,或者已经使用了定时器,那不妨试试,唯一就是要占用两个字节的ram,和几十微秒的时间。
unsigned char t1=0,t2=0,c1=1;
bit c=1;
void timer_1() interrupt 3 using 3 //呼吸灯程序
{
TL1 = 0x3C; //200us
TH1 = 0xFF;
t1++; t2++;
if(t1 <= cl) led = 0; //这三行通过t1与cl比较,控制led亮灭,也就是PWM调光。
if(t1 > cl) led = 1; //
if(t1 == 40) t1 = 0; //
if(t2 == 250) //250次中断以后,进入以下语句,更改cl值,改变亮度。改变比较的值(250)
{ //可以调整闪烁速度。
t2=0;
if(c)
{
cl++;
if(cl == 41) c=0; //由亮变暗标识
}
if(!c)
{
cl--;
if(cl == 3) c=1; //由暗变亮标识
}
}
}
下面以我的开发板为例作个具体的程序:
#include
#define uchar unsigned char
#define uint unsigned int
sbit led=P1^0; //位定义;定义led灯是接到P1^0;
unsigned char t1=0,t2=0,c1=1;
bit c=1;
sbit wela=P2^6;
uchar code table[]={0x06,0x5b,0x4f};
uchar temp,num;
delay(uchar);
display(uchar);
void main()
{
TMOD=0x01;
TH0=0x3C;
TL0=0xFF;
EA=1;
ET0=1;
TR0=1;
while(1)
{
P3=0x7f;
temp=P3;
temp=temp&0x7f;
if(temp!=0x7f)
{
delay(50);
if(temp!=0x7f)
{
switch(temp)
{
case 0x6f: num=0;
break;
case 0x5f: num=1;
break;
case 0x3f: num=2;
break;
}
}
}
display(num);
}
}
delay(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
for(b=200;b>0;b--);
}
display(uchar num1)
{
P0=table[num1];
wela=0;
}
void timer_0() interrupt 1 //呼吸灯程序
{
TL1 = 0x3C; //200us
TH1 = 0xFF;
t1++; t2++;
if(t1 <= c1) led = 0; //这三行通过t1与cl比较,控制led亮灭,也就是PWM调光。
if(t1 > c1) led = 1; //
if(t1 == 40) t1 = 0; //
if(t2 == 100) //250次中断以后,进入以下语句,更改cl值,改变亮度。改变比较的值(250)
{ //可以调整闪烁速度。
t2=0;
if(c)
{
c1++;
if(c1 == 41) c=0; //由亮变暗标识
}
if(!c)
{
c1++;
if(c1 == 41) c=1; //由暗变亮标识
}
}
}
51单片机c语言呼吸灯程序,给你的51单片机作品加个呼吸灯(程序)相关推荐
- 单片机c语言访问片外存储器,教你给51单片机扩展片外RAM
原标题:教你给51单片机扩展片外RAM 上一文中扩展了单片机的程序存储器,4KB存储空间提升到64KB.其实,4K的代码空间还凑合,但是51自带的256B数据存储空间使用起来还真紧张,其中留给用户的连 ...
- 郭惠,吴迅.单片机c语言程序设计完全自学手册出版时间,基于单片机的多路温度采集器设计...
时永宝 摘 要:伴随着时代的快速发展,智能将会成为今后的主流方向,按照设定好的思路,在特定的环境里自主工作,不需要人为的操控.在本次研究中,以STC89C51单片机作为核心控制器,用DS18B20温度 ...
- 单片机c语言程序设计中可以不分大小写,论单片机课程教学中C语言编程的规范性...
摘 要 文章针对"单片机C语言程序设计"教学中存在的编程困扰,提出在教学实践中重视引导学生进行模块化.规范性程序设计,强调规范化编程对学生理解程序的结构与功能的重要作用,并贯穿于课 ...
- 单片机c语言1ms 2ms 4ms方波,定时器使用:利用单片机内部定时器0通过P1.0端口输出一定周期的方波信号。 - 试题答案网问答...
相关题目与解析 使用定时/计数器0以工作方式2实现定时,在P1.0输出周期为200s的连续方波.已知晶振频率fosc=6MHz. 已知单片机的晶振频率为6MHz,下面程序用单片机内部定时器T0工作在方 ...
- 单片机c语言报错_asm啥意思,SPMC75系列单片机地C和ASM( - 控制/MCU - 电子发烧友网...
SPMC75系列单片机地C和ASM(汇编)混合编程的应用 本文主要介绍凌阳16位变频控制单片机SPMC75系列单片机地C和ASM(汇编)混合编程的应用. 关键词:SPMC75 嵌入式汇编 1 引言 支 ...
- 单片机c语言24小时的计时程序框图,电子时钟单片机课程设计(WIT)要点解析.doc
电气信息学院 单片机原理及应用课程设计报告 课题名称 电子时钟的设计 专业班级 电气自动化 学 号 学生姓名 指导教师 评 分 2014年12月22日至12月28日答辩记录 1.例举设计过程中遇到的问 ...
- 单片机 c语言 按键长按短按,求助:单片机一键长按与短按按键实现的c程序有问题...
单片机一键长按与短按按键实现的c程序有问题,实在不知道是哪里有问题,请帮助修改一下,谢谢! 功能如下:长按2秒灯全亮(我用的开发板),短按实现流水灯. 程序如下: #include #include ...
- 单片机c语言北航,【下载资料】《51单片机学习笔记》北航版
原标题:[下载资料]<51单片机学习笔记>北航版 如果手机下载有问题,请移步至电脑端,链接:https://forum.mianbaoban.cn/t/topic/36906 内容简介 本 ...
- 单片机c语言慧尾灯编码,(参考)基于单片机的智能尾灯开发文档.doc
基于单片机的智能尾灯的设计 摘要 本设计是基于单片机的自行车智能尾灯控制器,该设计为STC89S52单片机做为主控芯片的自行车尾灯控制电路的设计方法,用发光二极管模拟自行车尾灯,按键开关作为转弯等控制 ...
- 单片机c语言实训例子基于mega16,基于AVR单片机的mega16内部EEPROM操作C语言程序设计...
原标题:基于AVR单片机的mega16内部EEPROM操作C语言程序设计 #include #include #include #define uchar unsigned char #define ...
最新文章
- java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面
- 为什么倒排索引不采用zlib这样的字典压缩算法——因为没法直接使用啊
- ListView setOnItemClickListener无效原因分析
- [今日干货]短视频获得种子用户的途径
- Nexys4DDR+OV7670实现sobel算子边缘检测系统
- Apache中的Order Allow,Deny用法详解
- “ddl”有一个无效 SelectedValue,因为它不在项目列表中。
- Replace Parameter with Methods(以函数取代参数)
- 【云栖大会】与马云一起开启“飞天·进化”之旅
- ThirdServiceManager SDK
- flutter 一直loading_开源 | FLUI : Flutter 的组件扩展集
- (八)用于人脸识别的Web API
- C++ 遍历 iterator has no member named
- BZOJ4311:向量——题解
- 今晚折腾了好久,win7极限精简版239M在虚拟机未成功?
- 佐治亚理工计算机科学,Gatech的CS「佐治亚理工学院计算机科学系」
- 终极版Python打包exe文件,并修改图标,这将是你见过最详细的教程~
- Bert预训练新法则
- 【重磅来袭】这绝对是全网最全的Springboot面试题
- PyG搭建GAT实现节点分类
热门文章
- BW型模拟带通滤波器设计的Matlab仿真
- ​FMEA失效模式分析中风险评估「SOD」标准
- gcc下载地址(Linux/windows安装)
- 2011年浙江计算机二级vfp是什么,2011年计算机二级VFP考试基础教程(21)
- 计算机组成原理 透明性,计算机组成原理试题
- 防止phpddos攻击
- 股票历史数据-股票历史交易数据下载成Excel,股票历史交易数据查询
- Android移动应用开发大作业——日程管理+邮件反馈
- Web前端可视化绘图软件编辑器-汇总
- 如何批量将 Word 文档转为 TXT 文本文档格式