三路8个led灯循环闪烁的灯是怎么闪的

第三节:累计主循环次数使LED灯闪烁
> 第三节:累计主循环次数使LED灯闪烁
第三节:累计主循环次数使LED灯闪烁
开场白:上一节鸿哥提到delay()延时函数消耗的时间太长了,其它任务根本没有机会执行,我们该怎么改善?本节教大家利用累计主循环次数的方法来解决这个问题。这一节要教会大家两个知识点:本文引用地址:第一点:利用累计主循环次数的方法实现时间延时第二点:switch核心语句之初体验。 鸿哥所有的实战项目都是基于switch语句实现多任务并行处理。(1)硬件平台:基于朱兆祺51单片机学习板。(2)实现功能:让一个LED闪烁。(3)源代码讲解如下:#include "REG52.H"/* 注释一:* const_time_level是统计循环次数的设定上限,数值越大,LED延时的时间越久*/#define const_time_level 10000 void initial_myself();
void initial_peripheral();void delay_long(unsigned int uiDelaylong);void led_flicker();sbit led_dr=P3^5; /* 注释二:* 吴坚鸿个人的命名风格:凡是switch语句里面的步骤变量后缀都是Step.* 前缀带uc,ui,ul分别表示此变量是unsigned char,unsigned int,unsigned long.*/unsigned char ucLedStep=0; //步骤变量unsigned int uiTimeCnt=0; //统计循环次数的延时计数器void main() { initial_myself();
delay_long(100);
initial_peripheral(); while(1)
led_flicker();
}}void led_flicker() ////第三区 LED闪烁应用程序{ switch(ucLedStep) {
case 0:/* 注释三:* uiTimeCnt累加循环次数,只有当它的次数大于或等于设定上限const_time_level时,* 才会去改变LED灯的状态,否则CPU退出led_flicker()任务,继续快速扫描其他的任务,* 这样的程序结构就可以达到多任务并行处理的目的。* 本程序基于朱兆祺51单片机学习板*/
uiTimeCnt++; //累加循环次数,
if(uiTimeCnt>=const_time_level) //时间到
uiTimeCnt=0; //时间计数器清零
ucLedStep=1; //切换到下一个步骤
uiTimeCnt++; //累加循环次数,
if(uiTimeCnt>=const_time_level) //时间到
uiTimeCnt=0; //时间计数器清零
ucLedStep=0; //返回到上一个步骤
} }}void delay_long(unsigned int uiDelayLong){ for(i=0;i<uiDelayLi++) {
for(j=0;j<500;j++) //内嵌循环的空指令数量
{ //一个分号相当于执行一条空语句
} }}void initial_myself() //第一区 初始化单片机{ led_dr=0; //LED灭}void initial_peripheral() //第二区 初始化外围{ ;
//本例为空}总结陈词:
在实际项目中,用累计主循环次数实现时间延时是一个不错的选择。这种方法能胜任多任务处理的程序框架,但是它本身也有一个小小的不足。随着主函数里任务量的增加,我们为了保证延时时间的准确性,要不断修正设定上限const_time_level 。我们该怎么解决这个问题呢?欲知详情,请听下回分解-----累计定时中断次数使LED灯闪烁。
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一后使用快捷导航没有帐号?
查看: 1466|回复: 5
三路同步循环怎么做
在线时间32 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 22, 距离下一级还需 178 积分
一粒金砂(中级), 积分 22, 距离下一级还需 178 积分
三路流水循环,式的,两盏各自的灯能同时亮灭。
我用CD4024从电网中分频提取同步信号,再用CD4017做三路输出,能实现。
觉的实现这么简单的原理要用两个IC有点麻烦,而且空脚很多,
请问大吓们,有没有更好的方法。
在线时间761 小时
威望3822分
芯币2040枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 3822, 距离下一级还需 2178 积分
五彩晶圆(中级), 积分 3822, 距离下一级还需 2178 积分
用分立原件也很简单的!参考电路
本帖子中包含更多资源
才可以下载或查看,没有帐号?
在线时间32 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 22, 距离下一级还需 178 积分
一粒金砂(中级), 积分 22, 距离下一级还需 178 积分
用4024的目的是能产生一致时序,
使两盏灯一起亮一起灭。
分立元件做不到,
在线时间2929 小时
威望13633分
芯币11533枚
E金币270枚
TA的帖子TA的资源
裸片初长成(初级), 积分 13633, 距离下一级还需 6367 积分
裸片初长成(初级), 积分 13633, 距离下一级还需 6367 积分
 愣是没看懂题意。如果要让两套灯同时亮灭,把它们串起来不就行了,还用啥子IC?
在线时间332 小时
威望3053分
芯币2827枚
TA的帖子TA的资源
五彩晶圆(初级), 积分 3053, 距离下一级还需 447 积分
五彩晶圆(初级), 积分 3053, 距离下一级还需 447 积分
请看官们注意了:
1、“从电网中分频提取同步信号”作为指示灯驱动信号源
2、“三路流水循环,式的”我认为就是三个交流电源中对应同相的一个指示灯
3、“两盏各自的灯能同时亮灭”就是指1、2或2、3或1、3,代表对应的那两个电源同步(电压相等的情况下可以并联,电力上叫并网送电,发电机应用上叫并车发电)
通常有个同步指示灯,是用差频驱动的,有差频就闪烁,同步就常亮
在线时间761 小时
威望3822分
芯币2040枚
TA的帖子TA的资源
五彩晶圆(中级), 积分 3822, 距离下一级还需 2178 积分
五彩晶圆(中级), 积分 3822, 距离下一级还需 2178 积分
楼主不是已经有电路吗?贴上来看看不就清楚了??用文字表达很难说的(理解)清楚??!!
Powered by
逛了这许久,何不进去瞧瞧?三路人行道的灯怎么了,全部都一闪一闪,好几天了。_新汶吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:33,692贴子:
三路人行道的灯怎么了,全部都一闪一闪,好几天了。收藏
就没有人管吗?视频来自:
上海张学友、王菲演唱会一站式购票!票品安全且真票!立即订购!
西都搅拌站往西段
他们在假装飞机
电压不稳或者有短路
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或搜索关键字:
如图所示是采用三只普通双向构成的三路闪烁灯串控制器,可使灯串循环点亮,每路最大输出功率可达,且电路简单,制作容易。VTH1~VTH3采用5A、600V双向,最大负载功率可达;VD1~VD3可用1型普通硅整流。
IC快速检索:

我要回帖

更多关于 hp6000 墨水灯循环闪 的文章

 

随机推荐