|
本人初學(xué)C51單片機(jī),在實(shí)現(xiàn)流水燈效果時(shí),首先使用如下程序進(jìn)行控制:
```
#include <reg52.h>
unsigned int a;
void main()
{
while(1)
{
int i=1;
while (i<=256)
{
P1=~i;
a=50000;
while (a--);
i*=2;
}
}
}
```
發(fā)現(xiàn)當(dāng)最下方第8個(gè)LED燈亮后,經(jīng)短暫延遲后最上方第1個(gè)LED才點(diǎn)亮。而若使用以下程序:
```
#include <reg52.h>
unsigned int a;
void main()
{
while(1)
{
int i=1,n=1;
while (n<=8)
{
P1=~i;
a=50000;
while (a--);
i*=2;
n++;
}
}
}
```
則無此現(xiàn)象,能正常實(shí)現(xiàn)LED循環(huán)點(diǎn)亮。按本人粗淺的認(rèn)識(shí),兩個(gè)程序運(yùn)行的效果應(yīng)該不足以造成肉眼能分辨的差異,其中原因請(qǐng)大家多多指教。 |
|