magiccar 發表於 2010-1-22 17:24

單晶片魔法車02-電子方向燈

如果你從來沒接觸過程式設計,看完第一個實驗,信心應該就回來了吧!
當然89C2051的個頭雖小,功能卻不只是實驗一這麼單純呢!
接下來的實驗,我們要把判斷能力寫入晶片中,用輸入的信號來產生對應的輸出。

實驗二:電子方向燈
使用材料:實驗一的材料,長導線*1
電路照片:


程式:
/*實驗二:方向燈*/

#include <AT89x051.h>

void delay(unsigned char tmp);    //宣告延時函數

void main(void)                  //主程式開始
{
    while(1){                  //無限循環   
      P3_0=1;
      if(P3_0==1)               //假如P3輸入"1"的信號,
      {                        //就執行{...}中的指令
            P1_0=0;               //讓第一個LED閃爍一次
            delay(100);
            P1_0=1;
            delay(100);
      }else                  //假如P3輸入不是"1"(不符合if的條件)
      {                        //就執行{...}中的指令
            P1_2=0;               //讓第二個LED閃爍一次
            delay(100);
            P1_2=1;
            delay(100);
      }                        //判斷式結束
    }
}
void delay(unsigned char tmp)    //延時函數內容,改變參數大小,可調整時間
{
    unsigned char i,j;            //宣告使用到的變數
    i=tmp;                        //把呼叫程式式中的參數100指定給變數i
    while(i)                  //只要i不為0,
    {                            //就執行{...}中的指令
      i--;                  //把i值減1
      j=255;                   // <-+
      while(j)               //   |
      {                        // 用j值讓程式執行256次的迴圈,達到延時效果
             j--;                //   |
      }                        // <-+
    }
}

一樣附上編譯完成的檔案,可下載直接燒錄
頁: [1]
查看完整版本: 單晶片魔法車02-電子方向燈