![]() |
發(fā)布時間: 2022-11-27 17:26
正文摘要:我想寫第5個練習。燒錄進去現(xiàn)象是對的,但是LED閃爍那部分非常暗,有時候寫其他程序的時候,也會出現(xiàn)LED很暗的情況,我現(xiàn)在知道的是肯定不是硬件的問題,但是我也找不出是什么問題,感覺好像是單片的特性一類的..... ... |
我換了一種寫法,可還是有問題,就是在LED閃爍那一部分,就是如果我把0xff寫在前面了,它能正常閃爍,但LED還是很暗;如果我把0x00寫在前面了,它就不閃爍了,LED也很亮,完成循環(huán)才熄滅,相當于我寫的閃爍部分根本沒有執(zhí)行。 以下是代碼: #include <REGX51.H> typedef char u8; typedef int u16; #define LED_PORT P2//宏定義整個LED端口 void delay(u16 x)//延時函數(shù),當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)兩次后進入此循環(huán) { for(i=0;i<5;i++) { LED_PORT=0xff;//LED全滅 delay(300); LED_PORT=0x00;//LED全亮 } } } } |
這個真的是 硬件的問題,跟51單片機的特性相關,因為單片機的io口驅動能力弱,即輸出電流1mA都不到,你如果要使LED的亮度高,必須接一個pnp三極管, 能極大的增強電流,在提供led 1.8~2.5v的電壓下,串一個220Ω的電阻,亮度就足夠量。 |
要看電路圖,能亮不代表電路沒問題 |
亮的時間不夠![]() |
LED正極串聯(lián)一個1K電阻到電源正極,LED負極接單片機引腳 |
Powered by 單片機教程網(wǎng)