單晶片魔法車03-光控LED燈
做完第二個方向燈的實驗,有沒有發現用程式來控制輸出的結果,比修改實體電路還來得簡單。只要改個字或判斷的符號,輸出結果就能馬上改變。就像在實驗中要延長LED發亮的時間,也不用再裝一顆定時IC,只要寫段迴圈程式就可以有同樣的功能了。所以透過程式的規劃,也能減低電路的複雜度喔!接下來就更好玩了!還記得我們的初級課程中,做了不少感測器的電路來控制科學魔法車。有沒有想過,如果要把這些感測器的信號輸入到單晶片中,該如何做呢?所以。。。開工吧!
實驗三:光控LED燈
使用材料:實驗二的材料,光敏電阻*1,100KΩ電阻*1
電路照片:
光敏電阻的接法...反相器呢?用程式就能完成了。
光線被擋住時,P1_0點亮左側LED
有光線時,P1_3點亮右側LED
/*實驗三:光控LED燈*/
#include <AT89x051.h>
void delay(unsigned char tmp); //宣告延時函數
void main(void) //主程式開始
{
while(1)
{ //無限循環
P3_0=1; //將P3_0啟動輸入模式
if(P3_0==1) //假如P3_0=1,就執行{...}中的指令
{ //
P1_2=1; //第三個LED熄滅
P1_0=0; //第一個LED點亮
}else //假如P3_0不是1,就執行{...}中的指令
{ //
P1_0=1; //第一個LED熄滅
P1_2=0; //第三個LED點亮
} //判斷式結束
}
}
編譯好的程式送上來了囉!
頁:
[1]