單晶片魔法車05-聰明聲控車(一)
前幾項的實驗讓我們漸漸瞭解:透過程式的規劃可以讓電路簡化,而運用不同的指令又可以讓程式簡化,所以熟悉指令的用法可以說是學習程式設計的捷逕,這是同學一定要知道的喔!在完成了光控魔法車的實驗後,我們就要把聲音的信號透過單晶片的程式規劃,做出指定的動作。
實驗五:聰明聲控車(一)
實驗內容:開啟電源後聲控電路處於待命狀態。用當接收到拍手聲時,
單晶片立即啟動繼電器,讓魔法車前進(或是轉彎)。當再
接收到拍手聲時,單晶片立即關閉繼電器,讓魔法車停止或
恢復先前狀態。
使用材料:實驗四的材料,電容式麥克風,2SC1815(NPN電晶體)*1,7.5KΩ電阻*1,10uf電容*1
電路照片:
這次增加了一顆電晶體,用來放大聲音的信號
線路仍然非常簡單
程式內容:
/*實驗五:聰明聲控魔法車一*/
#include <AT89x051.h>
void delay(unsigned char tmp); //宣告延時函數
void main(void) //主程式開始
{
P3_0=1; //啟始輸入功能
P1_2=0; //關閉繼電器
while(1) //無限循環
{
P1_5=~P1_2; //LED顯示繼電器狀態
while(P3_0==0) //當有聲音時
{
P1_2=~P1_2; //繼電器 on-off 切換
delay(10); //等待一段時間
}
}
}
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]