標題: 關于led雙向來回閃爍中的小問題 感謝 [打印本頁]
作者: pinenut 時間: 2018-3-22 07:35
標題: 關于led雙向來回閃爍中的小問題 感謝
/*實現流水燈雙向循環,并且在每次來回滾動后添加全亮或者全滅的閃爍效果
#include"reg52.h"
#include"intrins.h"
#define uint unsigned int
#define uchar unsigned char
inti,j;
voiddelay1ms(uint) ;
void delay1ms(uint) ;
voidmain()
{
while(1)
{
P2=0xfe;
delay1ms(60);
for(i=0;i<7;i++) //注意左移六次而不是7次和8次。i=0為第一個燈跳到第二個燈后,第二個燈亮。所以為了跳到第八個燈,i=6;即i<7
{
P2=_crol_(P2,1);
delay1ms(60);
}
for(j=0;j<7;j++)
{
P2=_cror_(P2,1);
delay1ms(60);
}
P2=0xff;
P2=0x00;
P2=0xfe; //為什么不能實現先全亮再全滅的效果?是因為一個口不能先后被多個數賦值嗎,那應該如何解決
}
}
voiddelay1ms(uint z)
{
uint x,y;
for(x=450;x>0;x--)
for(y=z;y>0;y--);
}
作者: zl2168 時間: 2018-3-22 10:00
先看看別人正確的程序!
作者: 漫步經心 時間: 2018-3-22 10:29
P2=0xff;
P2=0x00;
P2=0xfe; //為什么不能實現先全亮再全滅的效果?是因為一個口不能先后被多個數賦值嗎,那應該如何解決
試問一下,就算如果有效果,你能看的見么。你仔細算算一條代碼的處理速度。
作者: l6931639 時間: 2018-3-22 11:42
沒有設置延時,速度太快,人眼無法識別,建議增加200ms以上延時
作者: bayga456 時間: 2018-3-22 12:00
有效果,就是太快了你看不到,可以在 P2=0xff; 代碼后加延時,后面的 P2=0x00; 也加相應的延時,就可以看到效果了。
作者: GTY123 時間: 2018-3-22 12:08
處理速度過快吧
作者: lianggeren2112 時間: 2018-3-22 12:17
/*實現流水燈雙向循環,并且在每次來回滾動后添加全亮或者全滅的閃爍效果
#include"reg52.h"
#include"intrins.h"
#define uint unsigned int
#define uchar unsigned char
inti,j;
voiddelay1ms(uint) ;
void delay1ms(uint) ;
voidmain()
{
while(1)
{
P2=0xfe;
delay1ms(60);
for(i=0;i<7;i++) //注意左移六次而不是7次和8次。i=0為第一個燈跳到第二個燈后,第二個燈亮。所以為了跳到第八個燈,i=6;即i<7
{
P2=_crol_(P2,1);
delay1ms(60);
}
for(j=0;j<7;j++)
{
P2=_cror_(P2,1);
delay1ms(60);
}
P2=0xff;
delay1ms(500);//此處增加延時。即可看到預期效果
P2=0x00;
delay1ms(500);//此處增加延時。即可看到預期效果
P2=0xfe; //為什么不能實現先全亮再全滅的效果?是因為一個口不能先后被多個數賦值嗎,那應該如何解決
}
}
voiddelay1ms(uint z)
{
uint x,y;
for(x=450;x>0;x--)
for(y=z;y>0;y--);
}
作者: ysc 時間: 2018-3-23 10:11
一行下面加一個延時,人眼有視覺暫留
作者: hei51ppp 時間: 2018-3-23 17:25
不加延時,看不到效果的。。
作者: 程序新手 時間: 2018-3-24 13:13
速度太快 肉眼無法察覺 建議修改延時
作者: 511386807 時間: 2018-3-24 14:20
人眼視覺暫留時間約為0.05至0.2秒,低于這個時間的變化人眼是看不到的。程序執行的太快了,肉眼分辨不出來,可以用示波器觀察,看看指令有沒有執行。
作者: adsx 時間: 2018-3-24 14:46
程序沒有問題,只是你的程序沒加延時,跑起來人的肉眼很難看出,嘗試加延時函數
作者: zhangchenlei 時間: 2018-3-24 15:36
處理速度過快你沒看到吧
作者: zaijiandapanji 時間: 2018-3-24 16:23
可能是速度太快人眼看不出來
作者: Yubug 時間: 2018-3-29 08:31
你可以試試蜂鳴器,一個樣子的。沒有延時感覺不出來的。
作者: cuifuzhang 時間: 2018-3-29 09:36
LED顯示屏閃爍原因:1.驅動加載程序不對2.電腦和屏之間胡網線太長或者網線故障3.發送卡壞了4.控制卡壞,查看一下控制卡上的小燈亮嗎?要是不亮就壞了。5.電源與控制卡之間的連接線是否短路。6.電源的輸出電壓電流不穩定,帶控制卡的電源不要帶太多的板子。
作者: 程序新手 時間: 2018-3-29 17:17
延時 注意延時 細節決定成敗
作者: 的花朵 時間: 2018-3-29 20:31
加個延時
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |