你的程序,流程上有點錯誤。
以下是我在你的程序基礎上,按照我的板子電路修改過的程序,是無光照時LED不亮,有光照時LED亮。
#include<reg51.h> //庫文件
#define uchar unsigned char//宏定義無符號字符型
#define uint unsigned int //宏定義無符號整型
/********************************************************************
I/O定義
*********************************************************************/
//sbit LED1=P1^3;
//sbit LED2=P1^4;
//sbit LED3=P1^5;
//sbit LED4=P1^6; //定義單片機P1.3 4 5 6 為LED燈
#define LED P2
sbit DOUT=P1^0; //定義單片機P1.0為光敏DO輸出
/********************************************************************
延時函數
*********************************************************************/
void delay()//延時程序
{
uchar m,n,s;
for(m=20;m>0;m--)
for(n=20;n>0;n--)
for(s=248;s>0;s--);
}
/********************************************************************
主函數
*********************************************************************/
void main()
{
DOUT=1;
LED=0xff;
while(1) //無限循環
{
// LED1=0;
// LED2=0;
// LED3=0;
// LED4=0; //熄滅P1.0口燈
if(DOUT==0)//當DO輸出低電平時
{
delay();//延時抗干擾
if(DOUT==0)//確定 DO口輸出低電平
{
// LED1=1;
// LED2=1;
// LED3=1;
// LED4=1;
LED=0x00;
//點亮LED燈
}
else
{
LED=0xff;
}
}
}
}
我的程序適用我的板子電路如圖:
1.jpg (32.99 KB, 下載次數: 69)
下載附件
2017-12-28 08:37 上傳
你看看,你的程序是什么地方不對。
|