聲控小車
一、實驗?zāi)康?br>本實驗利用聲音檢測電路檢測聲音,當有較大聲音時產(chǎn)生中斷信號,控制小車的起、
停。通過實驗要求掌握以下知識點:
1.掌握與外中斷相關(guān)的特殊功能寄存器的設(shè)置方法。
2.了解聲音檢測電路的電路原理和使用方法。
3.掌握查詢方式和中斷方式的卻別。
二、實驗預(yù)備知識
1.程序中有多個中斷的程序編寫格式
在單片機的實際運用中,很多情況下在一個程序中會用到多個中斷。下面以同時使用
兩個外部中斷為例,說明多中斷的程序結(jié)構(gòu)。
ORG 0000H
SJMP MAIN
ORG 0003H ;INT1 中斷入口
SJMP INT1IN
ORG 0013H ;定時器T0 中斷入口
SJMP T1 IN
ORG 0030H
MAIN: MOV IE ,# ;允許T1 、INT1 中斷
MOV IP ,# ;設(shè)置中斷優(yōu)先級
……
……
INT0IN:…… ;INT1 中斷服務(wù)程序
……
RETI
INT1IN:…… ;T1 中斷服務(wù)程序
……
RETI
END
程序中如果需要更多的中斷,可以按照以上程序的方法添加即可。但是要考慮如果兩
個(或多個)中斷優(yōu)先級的問題,可以通過設(shè)置特殊功能寄存器IP 來設(shè)置各中斷的優(yōu)先級。
2.聲音檢測電路使用
主電路板上的聲音檢測電路在沒有檢測到聲音時其輸出端為高電平,當麥克風接收到
一定強度的聲音時其輸出端變?yōu)榈碗娖健S锰€冒短接JP17 的2、3 腳就可以把聲音檢測
電路的輸出接到單片機的INT0(P3.2)端。
調(diào)節(jié)RP1 電位器可以調(diào)節(jié)聲音檢測電路的靈敏度,環(huán)境噪聲比較大是,應(yīng)降低靈敏度,
在環(huán)境噪聲較小時可以提高靈敏度。
3.小車的電機控制
小車由兩個電機分別驅(qū)動左右兩面的車輪轉(zhuǎn)動。要實現(xiàn)小車原地順時針旋轉(zhuǎn),需要左
面電機正轉(zhuǎn),右面電機反轉(zhuǎn)。如果右面電機正轉(zhuǎn),而左面電機反轉(zhuǎn),則小車逆時針轉(zhuǎn)動。
小車電機的正反轉(zhuǎn)由P1.4~P1.7 控制,對它們進行操作就可以實現(xiàn)電機的控制,例如:要
實現(xiàn)左電機正轉(zhuǎn)和右電機反轉(zhuǎn)需執(zhí)行下列程序:
SETB P1.5
SETB P1.6
LCALL DELAY1 ;延時0.5 秒
CLR P1.4
CLR P1.7
由于電機是電感性負載,并且有機械慣性,因此在電機運轉(zhuǎn)方向變化時需要過度時間,
以上程序段中的0.5 秒延時就是電機方向轉(zhuǎn)換的過度時間。
三、硬件連接
把電路中的JP17 用跳線冒短接。
四、實驗內(nèi)容
1.根據(jù)硬件連接繪制電路圖
2.根據(jù)現(xiàn)場環(huán)境,調(diào)整小車上聲音檢測電路的靈敏度。
3.編程使小車原地旋轉(zhuǎn),順時針轉(zhuǎn)5 秒反時針轉(zhuǎn)5 秒,通過聲音檢測電路產(chǎn)生中斷
使小車停止。程序流程圖如下:
a 主程序 b 中斷程序
圖3-13 程序結(jié)構(gòu)框圖
在主程序中的初始化程序要對中斷進行設(shè)置,要求把中斷觸發(fā)方式設(shè)置成下降沿觸發(fā)
方式,并設(shè)置堆棧指針的值。中斷程序中,執(zhí)行電機停止指令后,如果運行RETI 指令返
回主程序,則電機又會起動,所以執(zhí)行電機停止程序后應(yīng)停留在中斷程序中不返回,但是必須要寫RETI 語句。
3.采用查詢方式實現(xiàn)以上功能,對比二者的不同,并分析原因。查詢方式的程序如
下:
ORG 0000H
LOOP: SETB P1.5 ;順時針轉(zhuǎn)動
SETB P1.6
LCALL DELAY1 ;延時0.5 秒
CLR P1.4
CLR P1.7
LCALL DELAY ;延時5 秒
JB P3.2 ,NEXT1 ;判斷是否有停止信號
SJMP STOP
SETB P1.4 ;反時針轉(zhuǎn)動
SETB P1.7
LCALL DELAY1 ;延時0.5 秒
CLR P1.5
CLR P1.6
LCALL DELAY ;延時5 秒
JB P3.2 ,NEXT1
SJMP STOP
NEXT1: SJMP LOOP
STOP: MOV P1,#0FFH ;中斷服務(wù)程序,停止小車的運動。
SJMP $
RETI
DELAY: ;延時5 秒
DELAY1: ;延時0.5 秒
END
五、擴展內(nèi)容
1.編寫程序?qū)崿F(xiàn)以下功能:小車平時靜止不動,D2 以每秒一次的速度閃爍,當對著
小車上的麥克風拍一下手時,小車向前運行3s。
2.分析如果中斷后不停留在中斷程序,而返回主程序,會出現(xiàn)什么現(xiàn)象。
六、思考題
1.根據(jù)試驗現(xiàn)象分析查詢方式和中斷方式為什么會出現(xiàn)不同的現(xiàn)象?
2.分析如果中斷后不停留在中斷程序,而返回主程序,會出現(xiàn)什么現(xiàn)象?
評論
查看更多