欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
小白請教一個單片機AT89C51的問題,兩個LED輪流點亮500ms 求思路
[打印本頁]
作者:
479674001
時間:
2020-3-5 21:44
標題:
小白請教一個單片機AT89C51的問題,兩個LED輪流點亮500ms 求思路
他的要求是p0.0、p0.1相連的兩個LED輪流點亮500ms,想了很久沒想出來,大佬能給一個具體思路嗎
作者:
lovexulu
時間:
2020-3-5 22:38
你好,輪流點亮,我理解為P0.0亮500ms然后熄滅,接著P0.1亮500ms然后熄滅,然后P0.0亮500ms。。。。。循環下去。那么轉化成這么理解,P0.0輸出-->延遲500ms-->P0.0停止輸出-->P0.1輸出-->延遲500ms-->P0.1停止輸出。完成一循環,那么我把上面步驟放入循環體中不就可以了嗎?授人與魚不如授人與漁,還請你多多思考一下。
作者:
CZ1
時間:
2020-3-5 22:41
使用定時器計時,每500ms改變一次兩個小燈狀態。初始狀態相反。
作者:
hantu
時間:
2020-3-5 22:51
while(1)
{
P0^0=~P0^0;
P0^1=~P0^0;
DelayMs(500); //延時500ms,這個子函數自己寫吧
}
作者:
想進步要學習
時間:
2020-3-5 22:57
while(1)
{
LED1亮;
延時500ms;
LED1滅;
LED2亮;
延時500ms;
LED2滅;
}
你要這樣子嗎?
作者:
wulin
時間:
2020-3-6 07:59
這種邏輯功能可以有多種寫法,僅舉2例種供樓主參考。
#include "reg52.h"
sbit led1=P0^0;
sbit led2=P0^1;
void delay(unsigned int i)
{
while(i--);
}
void main()
{
led1=0;
delay(55500);
while(1)
{
led2=led1;
led1=~led1;
delay(55500);
}
}
#include "reg52.h"
void delay(unsigned int i)
{
while(i--);
}
void main()
{
P0=0xfe;
delay(55500);
while(1)
{
P0=P0<<1|0x01;
delay(55500);
P0=P0>>1|0x80;
delay(55500);
}
}
作者:
hghvhgv
時間:
2020-3-6 10:49
用延時函數就行
作者:
479674001
時間:
2020-3-6 12:11
lovexulu 發表于 2020-3-5 22:38
你好,輪流點亮,我理解為P0.0亮500ms然后熄滅,接著P0.1亮500ms然后熄滅,然后P0.0亮500ms。。。。。循環 ...
謝謝謝謝
作者:
479674001
時間:
2020-3-6 12:11
感謝幫助我的大佬,我就不一一回復了
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1