欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機如何實現流水燈開的時候慢到快暗到亮,關的時候快到慢亮到暗。 [打印本頁]

作者: 菜鳥一個622    時間: 2022-1-19 17:35
標題: 單片機如何實現流水燈開的時候慢到快暗到亮,關的時候快到慢亮到暗。
麻煩大佬教一下
作者: munuc_w    時間: 2022-1-20 08:07
PWM,頻率取的高點。
作者: 菜鳥一個622    時間: 2022-1-20 12:23
munuc_w 發表于 2022-1-20 08:07
PWM,頻率取的高點。

那同時流水燈的速度慢到快呢?
作者: munuc_w    時間: 2022-1-20 13:56
亮暗用PWM的占空比控制,占空比由小到大,漸亮,反之,漸暗,頻率高的目的是人看著感覺不到閃或閃爍輕微。至于快慢不用說了吧。
作者: 菜鳥一個622    時間: 2022-1-20 14:23
munuc_w 發表于 2022-1-20 13:56
亮暗用PWM的占空比控制,占空比由小到大,漸亮,反之,漸暗,頻率高的目的是人看著感覺不到閃或閃爍輕微。 ...

就是逐漸流水速度慢到快,現在只會用delay固定速度,無法做到開始由慢逐漸到快,PWM不知道怎么取值,想的效果是開始的時候慢到快暗道亮, 關的時候才會快到慢亮到暗,現在學寫的PWM只能控制一個燈無法融入到流水效果里面,同時速度也是不知道怎么讓它慢到快并且保持住快,關的時候才會快到慢
#include <reg51.h>  
sbit LED = P0;
unsigned char CYCLE;
unsigned char PWM_ON ;

void delay(unsigned int cnt)
{
while(--cnt);
}

main()

{
bit Flag;

TMOD |=0x01;              
TH0=(65536-100)/256;
TL0=(65536-100)%256;     
IE= 0x82;               
TR0=1;

CYCLE = 10;               
while(!Flag)
  {
   delay(20000);         
   PWM_ON++;            
   if(PWM_ON == CYCLE)
}

void tim(void) interrupt 1 using 1
{
static unsigned char count;
TH0=(65536-100)/256;
TL0=(65536-100)%256;     

if (count==PWM_ON)
    {
     LED = 1;         
    }
  count++;
if(count == CYCLE)
    {
    count=0;
        if(PWM_ON!=0)        
           LED = 0;         
    }

}
作者: 保持微笑    時間: 2022-1-20 16:00
使用定時器產生PWM波,調節占空比就可以了




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1