單晶片魔法車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]