基于單片機的倒車(chē)防撞預警系統設計和實(shí)現
3.1 主程序
本系統有四路測距通道,采用分時(shí)工作,按后左一后左中一后右中一后右順序循環(huán)測距。每一路發(fā)射超聲波后的等待外部中斷時(shí)間應大于超聲波在最大有效探測距離內往返時(shí)間。所以按最大有效探測距離可以估算出最短的循環(huán)間隔時(shí)間。因為超聲波在空氣中傳播能量會(huì )不斷衰減,所以超聲波測距存在最大有效探測距離。這最大有效探測距離與多種因數有關(guān):
與超聲波傳感器性能的好壞、與驅動(dòng)超聲波傳感器的脈沖電壓幅值(功率)的大小、障礙物大小和形狀、障礙物吸波特性以及反射波與入射波之間的夾角、與超聲波放大和整形電路的靈敏度等有關(guān)。設定最大有效探測距離為8 m(收發(fā)一體封閉型超聲波傳感器比較難達到,實(shí)際上也沒(méi)有必要探測很遠的障礙物,只是設計留有裕量。由于顯示位數有限,也必須對最大探測距離做限制),則循環(huán)工作的間隔時(shí)間Tm=2S/C=2×8/346A46 ms,加上避免接收超聲波傳感器余振的延時(shí)和程序執行時(shí)間,留足裕量,設定Tm△56 ms。
主程序流程圖如圖5所示。首先是對系統初始化。端口p1.0、P3.3置0;設置堆棧,中斷允許總控制位EA允許中斷(EA=1);允許外部中斷0中斷(EX0=1),采用邊沿觸發(fā)方式(IT0=1);設置定時(shí)器T0允許中斷(ET0=1),以16位工作方式定時(shí)約56 ms;設置定時(shí)器T1以16位工作方式定時(shí)/計數,計數初值0000H,然后啟動(dòng)T0定時(shí)。設置顯示數據初值為三位BCD碼999(cm),對應字形段碼顯示“---”。四路探測處理完畢后,將四組數據中的最小值送入顯示緩沖區,通過(guò)LED數碼管顯示。同時(shí)該值與設定的100 cm值比較,若四組數據中的最小值小于100 cm,P3.7端口置0,Q2三極管導通,有源蜂鳴器得電發(fā)出報警聲。本文引用地址:http://dyxdggzs.com/article/173510.htm
由于單片機采用12 MHz的晶振,1個(gè)機器周期為1μs,所以計數器每計一個(gè)數就是1μs,定時(shí)器T1工作模式設置為16位定時(shí)/計數器模式,則其最大定時(shí)65.536 ms。由于定時(shí)器T0每56 ms產(chǎn)生中斷,執行T0中斷服務(wù)程序時(shí)停止T1計時(shí),所以T1計時(shí)不會(huì )產(chǎn)生溢出中斷。一輪四路探測處理完畢所用時(shí)間大約是56 ms×4=224 ms,用時(shí)很短,而倒車(chē)速度又比較慢,所以可以做到實(shí)時(shí)動(dòng)態(tài)顯示。
3.2 T0中斷服務(wù)程序
T0中斷服務(wù)程序流程圖如圖6所示。每隔56 ms分別按后左→后左中→后右中→后右順序選通下一路超聲波發(fā)射與回波接收電路,調用超聲波發(fā)生子程序,送出16個(gè)40 kHz的超聲波脈沖電壓,定時(shí)器T1開(kāi)始計時(shí),定時(shí)器T0開(kāi)始定時(shí)56 ms,使每路工作56 ms。
評論