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