#include<reg52.h>
sbit D1=P0^0;
void main()
{
for(i=2;i>0;i--)
{
d1=0;
delay(500);
d1=1;
delay(500);
}
}
程序中的錯誤:
1、sbit D1=P0^0;和d1=0;要求大小寫一致。即全部都用D1或全都用d1。
2、delay(500);程序中缺少子程序。
3、程序是需要一直循環執行的,或是在等待外部變化(引腳電平變化,外部中斷等),或是內部定時等等。
如下完整程序:
#include<reg52.h>
unsigned char i;
sbit d1=P1^0;
void delay(unsigned int ms)//延時1毫秒(不夠精確的)
{
unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<100;j++);
}
void main()
{
for(i=2;i>0;i--)
{
d1=0;
delay(500);
d1=1;
delay(500);
}
while(1); //D1變化兩次后一直空閑,死循環。
}
但是仿真中和實際電路中要看,delay(500);的延時時間到底是多少,太少的話仿真程序或人在實驗板上不能看到。
|