標(biāo)題: 單片機(jī)如何實(shí)現(xiàn)流水燈開(kāi)的時(shí)候慢到快暗到亮,關(guān)的時(shí)候快到慢亮到暗。 [打印本頁(yè)]

作者: 菜鳥(niǎo)一個(gè)622    時(shí)間: 2022-1-19 17:35
標(biāo)題: 單片機(jī)如何實(shí)現(xiàn)流水燈開(kāi)的時(shí)候慢到快暗到亮,關(guān)的時(shí)候快到慢亮到暗。
麻煩大佬教一下
作者: munuc_w    時(shí)間: 2022-1-20 08:07
PWM,頻率取的高點(diǎn)。
作者: 菜鳥(niǎo)一個(gè)622    時(shí)間: 2022-1-20 12:23
munuc_w 發(fā)表于 2022-1-20 08:07
PWM,頻率取的高點(diǎn)。

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

就是逐漸流水速度慢到快,現(xiàn)在只會(huì)用delay固定速度,無(wú)法做到開(kāi)始由慢逐漸到快,PWM不知道怎么取值,想的效果是開(kāi)始的時(shí)候慢到快暗道亮, 關(guān)的時(shí)候才會(huì)快到慢亮到暗,現(xiàn)在學(xué)寫(xiě)的PWM只能控制一個(gè)燈無(wú)法融入到流水效果里面,同時(shí)速度也是不知道怎么讓它慢到快并且保持住快,關(guān)的時(shí)候才會(huì)快到慢
#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;         
    }

}
作者: 保持微笑    時(shí)間: 2022-1-20 16:00
使用定時(shí)器產(chǎn)生PWM波,調(diào)節(jié)占空比就可以了




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