|
171936d7sqnziqdnxxn0qi.png (1.77 MB, 下載次數(shù): 17)
下載附件
2022-11-28 17:18 上傳
我寫的是郭天祥10天征服單片機(jī)的LED課后練習(xí)5,我現(xiàn)在遇到的兩個問題是,在流水燈結(jié)束后的閃爍那個循環(huán)里面,如果我把0xff(LED全滅)寫在前面再延時300ms之后寫0x00(LED全亮),LED會閃爍,但是LED非常暗;但是如果我把0x00(LED全亮),寫在前面再延時300ms之后寫0xff(LED全滅),LED就不閃爍了,會一直亮著,直到LED閃爍循環(huán)結(jié)束,這就相當(dāng)于我閃爍部分白寫了......有沒有同樣寫過這個練習(xí)的,有遇到我這樣的問題嗎,感謝熱心大佬解答~
以下為代碼:
#include <REGX51.H>
typedef char u8;
typedef int u16;
#define LED_PORT P2//宏定義整個LED端口
void delay(u16 x)//延時函數(shù),當(dāng)ten_us傳入1,大約延時10us
{
u16 y,z;
for(y=0;y<x;y++)
for(z=0;z<115;z++);
}
main()
{
u8 i=0,b=0;//定義變量i和b
while(1)
{
for(i=0;i<8;i++)
{
LED_PORT=~(0x01<<i);//從LED1亮起,i每增加一次,移位一次
delay(200); // 延時大約0.2秒
}
for(i=0;i<8;i++)
{
LED_PORT=~(0x80>>i);//從LED8亮起,i每增加一次,移位一次
delay(200);// 延時大約0.2秒
}
b++;//b自加1
if(b%2==0)//上下循環(huán)兩次后進(jìn)入此循環(huán)
{
for(i=0;i<5;i++)
{
LED_PORT=0xff;//LED全滅
delay(300);
LED_PORT=0x00;//LED全亮
}
}
}
}
|
|