|
如圖,我用面包板搭建了一個89c52單片機,單片機運行正常,燒錄資料也是正常的,我在P2口弄了8顆發(fā)光二極管,經(jīng)測試,P2^0—P2^7口,全部正常,都可以輸出低電平讓8個發(fā)光二極管全發(fā)光,也可以閃爍,用亮,延遲,滅,延遲亮,延遲,滅,延遲,反復(fù)循環(huán)的方法也可以實現(xiàn)流水燈,但是,當(dāng)我用_crol_左移函數(shù)實現(xiàn)流水燈時,為什么P2口燈全部都不亮,全是熄滅狀態(tài),插上電,就P2^0的燈亮了一下,就沒反應(yīng)了,我想請教一下各位,這是哪里出了問題,是因為缺少什么元器件嗎?我實在是不解,為什么這個程序在開發(fā)板上面能夠正常執(zhí)行,到了面包板就執(zhí)行不了了,求解!
程序(復(fù)制過程中可能有缺漏,但原程序已經(jīng)在開發(fā)板運行ok過了)
#include "reg52.h"
#include<intrins.h>
typedef unsigned int u16;
typedef unsigned char u8;
#define led P2
void delay(u16 i)
{
while(i--);
}
void main()
{
u8 i;
led=0xfe;
delay(50000); //大約延時450ms
while(1)
{
for(i=0;i<8;i++)
{
P2=~(0x01<<i);
delay(50000);
}
for(i=0;i<7;i++) //將led左移一位
{
led=_crol_(led,1);
delay(50000); //大約延時450ms
}
for(i=0;i<7;i++) //將led右移一位
{
led=_cror_(led,1);
delay(50000);
}
}
} |
|