用MC68HC705J1A實(shí)現(xiàn)超聲波汽車倒泊防撞報(bào)警器的設(shè)計(jì)
jsr del450μs ;延時(shí)450μs
lda #00
sta ,x ;用于計(jì)時(shí)的緩沖單元清0
next: lda porta ;檢測(cè)處理器接收管腳是否為低電平
and #$03
cmp #$02
bne check ;檢測(cè)到低電平,退出計(jì)時(shí)
cmp #$01
bne check ;檢測(cè)到低電平,退出計(jì)時(shí)
cmp #$03
bne check ;檢測(cè)到低電平,退出計(jì)時(shí)
jsr del20μs
inc ,x ;計(jì)時(shí)緩沖單元內(nèi)容加1
lda #$max
cmp ,x ;判斷計(jì)時(shí)值是否超過(guò)限定最大值max
beq check ;若超過(guò),退出計(jì)時(shí)
jmp next ;否則,繼續(xù)檢測(cè)計(jì)時(shí)
check: incx ;緩沖區(qū)地址加1
jsr distance ;調(diào)用計(jì)算距離子程序
jsr aver ;調(diào)用求平均值子程序,同時(shí)設(shè)置距離標(biāo)志flag和報(bào)警參數(shù)
jsr alarm ;調(diào)用報(bào)警子程序,根據(jù)報(bào)警參數(shù)報(bào)警
jsr del30ms ;延時(shí)30ms
jmp transmit ;繼續(xù)下一次檢測(cè)
end
實(shí)際使用證明,該報(bào)警器性能比較穩(wěn)定,已達(dá)到實(shí)用要求。硬件設(shè)計(jì)中充分考慮了反射信號(hào)的復(fù)雜性和不穩(wěn)定性,對(duì)反射信號(hào)進(jìn)行了一系列的濾波、放大與檢波處理。軟件設(shè)計(jì)采用結(jié)構(gòu)化程序設(shè)計(jì)思想,結(jié)構(gòu)簡(jiǎn)潔,尤其是獨(dú)特的報(bào)警算法,避免了定時(shí)器中斷對(duì)檢測(cè)精度的影響。
分析可知,該報(bào)警器在性能上還可以做如下改進(jìn):
(1)采集數(shù)據(jù)的處理算法問(wèn)題。該報(bào)警器采用的是連續(xù)10次采集數(shù)據(jù)求平均值的處理算法。當(dāng)環(huán)境比較復(fù)雜時(shí),采集數(shù)據(jù)會(huì)出現(xiàn)0或隨機(jī)數(shù)情況,對(duì)平均值算法的結(jié)果有很大影響,不利于測(cè)距精度的提高,所以選擇優(yōu)化算法是軟件設(shè)計(jì)仍需改進(jìn)的難點(diǎn)之一。
(2)改進(jìn)采樣方式。該報(bào)警器采用查詢方式采樣數(shù)據(jù),查詢一次的步長(zhǎng)是50ms,因此每次采樣的最大誤差是50ms。如果采用其它方式檢測(cè),例如中斷方式,還可以將采樣誤差控制到最小。
(3)溫度對(duì)聲速的影響。如果考慮環(huán)境溫度變化對(duì)聲速的影響,硬件設(shè)計(jì)中必須進(jìn)行溫度檢測(cè),在軟件中進(jìn)行溫度補(bǔ)償計(jì)算,進(jìn)一步減小測(cè)距誤差,使性能更加穩(wěn)定。
評(píng)論