magiccar 發表於 2010-1-26 00:52

單晶片魔法車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]
查看完整版本: 單晶片魔法車03-光控LED燈