简易呼吸灯c语言程序,呼吸灯 - 单片机教程 - C语言网

1.双定时器呼吸灯实现

呼吸灯的实现原理就是让小灯的IO端口在一段时间里PWM由大到小变化的占空比输出,接着又由小到大的占空比输出,小灯显示效果就是时亮时暗地交替闪烁。

首先我们用定时器0定时0.1ms,全局变量pwm在其中断函数里执行简单的从0到99的循环自加,这样周期就是10ms。

假如主函数里我们这样执行if(pwm<90)P0=0xFF;

else P0=0x00;

那么IO端口输出的一直是周期为10ms占空比为90%的波形,这样8盏小灯一直是处于较暗的显示状态不变,要想实现呼吸灯,就要不停改变PWM波形的占空比。

所以我们使用定时器1来做间隔10ms地改变占空比,我们再定义一个全局变量highval,这个变量每隔10ms就会在定时器1中断函数中实现加1或者减1,加到99时又从99减回到0,减回到0又从0开始加到99的这样循环过程,大家回去研究左右往复循环流水灯的代码就会明白都是一样的思路。

然后主函数这样执行if(pwm

else P0=0x00;

效果图如下

ed42c8ac010a69f84089947e88b0e7eb.png

······

2351fd67bc23e2d3f79b57ab282ce7cd.png

2.代码#include 

#include  //详见第六章第8讲

#include 

u8 pwm=0,highval=99;

void main()

{

LED_Init();          //初始化LED硬件模块

EA = 1;              //闭合总中断开关

TIM0_Init(100,9);    //定时0.1ms,9是微调使定时时间更精确

TIM1_Init(10000,10); //定时10ms,10是微调使定时时间更精确

while(1)

{

if(pwm

else P0=0x00;

}

}

void TIM0_IRQHandler() interrupt 1

{

TH0 = T0RH;        //重新加载重载值

TL0 = T0RL;

pwm++;

if(pwm>=100)pwm=0; //pwm在0~99之间间隔0.1ms变化,周期就为10ms

}

void TIM1_IRQHandler() interrupt 3

{

static u8 dir;

TH1 = T1RH;          //重新加载重载值

TL1 = T1RL;

if(dir==1)highval--; //占空比逐渐减少,小灯逐渐变亮

if(highval==0)dir=0;

if(dir==0)highval++; //占空比逐渐增加,小灯逐渐变暗

if(highval>=99)dir=1;

}

本章内容就告一段落了,定时器功能几乎是开发中必不可少的模块,灵活使用会使执行效率更加高效,大家有时想出的一些原创题目多使用定时器来训练,加强对这个工具的利用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485561.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python学习---面向对象的学习[深入]

类的深入学习 a. Python中一切事物都是对象 b. class Foo: pass obj Foo() # obj是对象&#xff0c;Foo类 # Foo类也是一个对象&#xff0c;type的对象 c. 类都是type类的对象 type(..) “对象”都是以类的对象 类() d. 类实际上是type类型的对象&#xff0c;所有的…

TCP/IP模型

应用层&#xff08;会话层&#xff0c;表示层&#xff0c;应用层&#xff09; HTTP FTP DNS 传输层&#xff08;传输层&#xff09; TCP UDP 网际层&#xff08;网络层&#xff09; IP 网络接口层(物理层…

c语言银行卡管理系统程序设计报告,《c语言程序设计》课程设计报告-职工信息管理系统.doc...

《c语言程序设计》课程设计报告-职工信息管理系统.doc还剩24页未读&#xff0c;继续阅读下载文档到电脑&#xff0c;马上远离加班熬夜&#xff01;亲&#xff0c;很抱歉&#xff0c;此页已超出免费预览范围啦&#xff01;如果喜欢就下载吧&#xff0c;价低环保&#xff01;内容…

今年,自动驾驶卡车将在无人驾驶的情况下上路

文章来源&#xff1a;IEEE电气电子工程师Photo: TuSimpleFirst in Freight: In 2021, San Diego–based startup TuSimple plans to deploy autonomous trucks that drive themselves from pickup to delivery without anybody on board.Tesla、Uber、Cruise和Waymo等公司承诺&…

线上服务CPU100%问题快速定位实战

功能问题&#xff0c;通过日志&#xff0c;单步调试相对比较好定位。 性能问题&#xff0c;例如线上服务器CPU100%&#xff0c;如何找到相关服务&#xff0c;如何定位问题代码&#xff0c;更考验技术人的功底。 58到家架构部&#xff0c;运维部&#xff0c;58速运技术部联合进行…

最新研究:超级人工智能,从理论上就无法控制

文章来源&#xff1a;机器之心作者&#xff1a;Charles Q. Choi 编辑&#xff1a;泽南、杜伟近日&#xff0c;一项新的研究发现&#xff0c;从理论上来看&#xff0c;人类不可能控制超级人工智能。更为糟糕的是&#xff0c;这项研究也明确了人类无法在这种 AI 生成之时发现它…

看懂2020年智能浪潮,我们从百度和谷歌的AI足迹出发

来源&#xff1a; 脑极体2020年已经过去&#xff0c;无论我们过得顺遂平安&#xff0c;还是过得无比艰难&#xff0c;我们应该都会记住这一年。回顾2020年&#xff0c;在这个不同寻常的疫情之年&#xff0c;科技成为人类抗击疫情的关键&#xff0c;而人工智能技术投入抗疫战争之…

2021年值得关注的人工智能与机器学习的五大趋势

文章来源&#xff1a;科技心时代人工进行智能和机器可以学习是市场上的热门专业技术&#xff0c;其重要性在2020年达到顶峰&#xff0c;这两种信息技术发展已经到了广泛应用在各行业领域&#xff0c;其范围从电子商务到量子计算管理系统&#xff0c;从医疗诊断分析系统到消费电…

城市生态的机器人革命

来源&#xff1a; 脑极体城市居民能看到绿色、与自然亲近的机会&#xff0c;被高楼大厦挤压得越来越少&#xff0c;如果有一天&#xff0c;连机器人、无人车和无人机都要来侵占人类的休闲空间&#xff0c;会发生什么呢&#xff1f;至少目前看来&#xff0c;如果不采取措施&…

数据通信基础知识

常用的两种入网方式&#xff1a; 1. 电话线入网 电话线发出来的是数字信号&#xff0c;需要用调制解调器(&#x1f431;)转换位模拟信号 例如&#xff1a;我计算机发 在吗 &#xff0c;电话线发出来是01011100&#xff0c; 调制解调器把数字信号转为模拟信号发到广域网 之…

android okhttpclient设置编码,Android之okhttp实现socket通讯(非原创)

文章大纲一、okhttp基础介绍二、socket通讯代码实战三、项目源码下载四、参考文章一、okhttp基础介绍二、socket通讯代码实战1. 添加依赖和权限app的build.gradle下添加okhttp依赖implementation com.squareup.okhttp3:okhttp:3.8.1AndroidManifest.xml文件添加网络权限2. 添加…

张小龙两小时演讲全文:微信十年的产品思考

来源&#xff1a;微信公开课&#xff08;ID&#xff1a;wx-gongkaike&#xff09;文&#xff1a;张小龙大家好&#xff01;谢谢来到公开课现场的朋友们&#xff0c;让我感受到这是一个面对面的交流&#xff0c;而不是一个人面对屏幕的直播。2020&#xff0c;对很多人来说都是很…

android url格式化,Android利用SpannableString实现格式化微博内容

前言在Android开发中&#xff0c;有许多信息展示需要通过TextView来展现&#xff0c;如果只是普通的信息展现&#xff0c;使用TextView setText(CharSequence str)设置即可&#xff0c;但是当在TextView里的这段内容需要截取某一部分字段&#xff0c;可以被点击以及响应响应的操…

2021年中国AIoT产业全景图谱

来源&#xff1a;物联网智库&#xff08;iot101&#xff09;编辑&#xff1a;蒲蒲日前&#xff0c;在“2020 AIoT产业年终盛典”上&#xff0c;物联网智库正式发布全新升级版的《2021中国AIoT产业全景图谱报告》&#xff08;以下简称“报告”&#xff09;。据悉&#xff0c;这是…

统计学权威盘点过去50年最重要的统计学思想,因果推理、bootstrap等上榜,Judea Pearl点赞...

来源&#xff1a;AI科技评论作者&#xff1a;陈彩娴、Mr Bear编辑&#xff1a;青暮近日&#xff0c;图灵奖得主、“贝叶斯网络之父”Judea Pearl在Twitter上分享了一篇新论文“What are the most important statistical ideas of the past 50 years?”&#xff08;过去50年中最…

自研芯片鸿蒙系统,华为智慧屏:自研智慧芯片鸿蒙系统 9月发布

7月26日消息 今日&#xff0c;华为在深圳举办媒体沟通会。华为消费者业务CEO余承东公布了华为智慧屏战略。华为全场景智慧化战略采用“18N”三圈层结构&#xff0c;覆盖家庭、办公、车载与运动四大场景&#xff0c;并以手机带动平板、PC、音箱、耳机等8个辅入口及更多外围生态设…

js下载文件

HTML与文件下载 如果希望在前端直接出发某些资源的下载&#xff0c;最方便快捷的方法就是使用HTML5原生的download属性&#xff0c; 例如&#xff1a; <a href"large.jpg" download>下载</a> 但显然&#xff0c;如果纯粹利用HTML属性来实现文件的下载&am…

二十世纪的十大科学骗局

来源&#xff1a;扬子晚报一般来说科学本是最讲求真实性的&#xff0c;但近些年来所谓轰动一时的科学“成果”中&#xff0c;却颇多假冒伪劣产品。1、百慕大“死亡三角”在众多科学骗局中&#xff0c;“百慕大”传说是影响最大且流传最广的一例&#xff0c;但它的起因只是第二次…

html 文本框 初始化,Flutter 文本框初始化时显示默认值

刚开始作Flutter文本框时候&#xff0c;使用的是TextField。彷佛大多数状况下都没有问题。代码形式以下&#xff1a;htmlclass _FooState extends State {TextEditingController _controller;overridevoid initState() {super.initState();_controller new TextEditingControl…

复杂性系统面临的难题

来源&#xff1a;人机与认知实验室1 什么是复杂性目前无法表述清楚在汉语中“复杂”一词的意思为“事物的种类、头绪等多而杂”。在《朗文当代英语词典》中&#xff0c;形容词complex被解释为&#xff1a;(1)难于理解、解释或处理&#xff0c;不清楚或不简单&#xff1b; (2)由…