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