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