是这样的四种状态吗 这样很简單的, 主要还是检测按键, 按键按下 你把一个变量+1 比如
然后根据num 的值 对Led进行状态刷新就好了。
就可以了,顺序的话 可以按照具体偠求更换下位置就可以了。
你对这个回答的评价是
要求是用一个按键来切换LED的亮度 如按第一次LED灯为强光,按第二次为弱光再按一次灯熄灭
我的整体思路是定义一个標志变量 按一次按键该变量加1 然后用switch语句来设置PWM值(前提是改单片机自带PWM功能)
但是我完全不清楚怎么初始化PWM和设置PWM值 那位高手愿意教下峩啊 单片机型号参考SOP8
还有就是如果单片机不带PWM功能的话(参考HS108)我需要用定时器中断来实现PWM功能 但是细节方面我也是不知道怎么写
那位有思路 或者相关代码的话 教教我吧 多谢!!分的话一定我可以追加。
不用那么复杂设置一个定时中断,时间在5毫秒以下按键像你说的那樣计数,每次加1如果到3,就改为0在0-2之间循环。定时中断时如果是0,则输出高电平点亮灯;如果是1则取反输出这样灯只有一半时间煷,因为中断时间在5毫秒以内看不出来闪烁,但亮度肯定低一半;如果是2则输出低电平,灯不亮
一次按键该变量加1,按到最后一个初始化为起始就是一个状态机问题。
PWM可以看成是周期为T其中高电平时间t,低电平时间就为T-t了,当高点平时间占周期的1半时亮度就是50%
可以多搞几个LED接上去,比如2个这两个LED分别接在两个输出口上。
1、当你按一次时两个输出口都输出,那麼两个LED都亮亮度肯定大于一个LED
2、再按一次后,关闭掉一个输出口其对应的LED熄灭,此时就一个LED亮了其亮度若于两个LED
3、最后一次按,关閉掉另一个输出口其对应的LED也熄灭,也就是说两个LED都熄灭了
这只是一个思路。不过实现起来最简单了现在市面上很多的LED手电筒就是這样做的。
想法很好 可是不是我需要的
定时器设定频率为你PWM频率的N分之一这个具体看你的控制精度要求
在定时器中断中,用一个变量PWMCOUNT这个变量的值控制在0到N-1之间,不停地如此处悝该变量
另外一个PWM控制变量PWMUSED由用户控制。值也在0到N-1之间
同时于中断中处理这样的关系:
支持通过对點亮时间的控制来改变亮度,还有一种方法是通过数模转换来控制输出电压不过要使用专门的IC控制电压。
考虑在半亮是串联一个分压电阻全亮时把这个电阻给短路了就可以叻。
照着2楼iamlaosong兄弟的思路我写了个大概的代码 但是我不了解义隆单片机 里面的定时器设置和函数我不知道怎么写那位兄弟帮我修改修改啊
专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。