吳浩然 萬民凱 徐卓凡 南京郵電大學(xué)海外教育學(xué)院
微處理器實驗設(shè)計:超聲波測距及顯示系統(tǒng)
吳浩然 萬民凱 徐卓凡 南京郵電大學(xué)海外教育學(xué)院
本次實驗設(shè)計,我們希望通過編程在模塊組件HYSRF05上實現(xiàn)超聲波測距并在LCD1602屏幕上顯示結(jié)果。
在行動之前,我們進(jìn)行了一些構(gòu)思。首先,我們設(shè)置了LCD1602的模式和顯示的靜態(tài)字,以便實現(xiàn)動態(tài)顯示結(jié)果。其次,我們從說明書中了解到,我們需要一個10us或以上的脈沖來啟動HY-SRF05模塊組件,然后模塊組件自己接收到一個脈沖和高電平經(jīng)過周期(P)的數(shù)量,其中高電平經(jīng)過的周期和模塊組件與它所面對物體間的距離是成比例的。接著,我們使用TimerA的捕獲寄存器來確定高電平經(jīng)過周期(P)的數(shù)量,并將它儲存在另一個寄存器之中。在試驗中,我們用D = P ? 340 / (100000?2) m來代表距離。最后,我們用10000,1000,100,10取模,來將二進(jìn)制數(shù)D換成十進(jìn)制數(shù),并且通過ASCII碼表轉(zhuǎn)換,將D顯示在LCD1602上。
構(gòu)思之后,我就開始了設(shè)計與實驗。我們的MSP430界面圖如下
首先,我們將 P4 的全部 8個管腳和 P5.5,P5.6,P5.7用來控制LCD1602。
MOV.B #00H, &P4SEL
MOV.B #0FFh, &P4DIR
MOV.B #00H, &P5SEL
MOV.B #BIT5+BIT6+BIT7, &P5DIR
我們設(shè)置P6通過燈來檢測我們的程序
MOV.B #00H, &P6SEL
MOV.B #0FFh, &P6DIR
其次,如下是1602序列圖
通過圖表我們得知,如果我們想在LCD1602中寫入指令或數(shù)據(jù),我們需要重置R/W,設(shè)置或重置RS然后讓E從高電平變?yōu)榈碗娖綇亩鴮懭胫噶罨驍?shù)據(jù)。
然后,我們使用HY-SRF05模塊組件
這是HY-SRF05的測試模式序列圖。它需要一個10us 5V的脈沖來激活,然后它就會自動接收一個長度與距離成比例的脈沖。
它 的 鏈 接 方 式:1.VCC 2.trig(T) 3.echo(R) 4.OUT 5.GND
我們用CCR1的捕獲輸入P1.2來測量echo,然后我們用P1.4 來發(fā)出 10us脈沖。所以我們先設(shè)置 P1.2 和 P1.4.
BIC.B #BIT4 , &P1SEL BIS.B #BIT2 , &P1SEL
BIS.B #BIT4, &P1DIR
BIC.B #BIT2, &P1DIR
BIC.B #BIT4 , &P1OUT
在主要的功能中,我們向trig接口發(fā)送10us脈沖并添加延時以確保下一個trig在至少30ms之后。
BIS.B #BIT4, &P1OUT
MOV #2,R15
loop31: dec R15
JNZ loop31
BIC.B #BIT4, &P1OUT
MOV #20000,R15
loop32: dec R15
JNZ loop32
我們設(shè)置TimerA和CCR1來捕獲echo接口的信號
MOV #02E6H, &TACTL
MOV #4910H, &TACCTL1
接著,我們編寫中斷處理程序。我們首先確定了是CCR1產(chǎn)生了中斷,因為我們只使用了CCR1和TimerA,而且我們沒有啟動TimerA的中斷。然后我們確定了echo在上升沿還是下降沿到來,假設(shè)是上升沿,我們將&TACCR1儲存在R6中,當(dāng)echo在下一個下降沿到來時,我們用R5儲存&TACCR1然后計算R5-R6。關(guān)鍵點在于,我們需要先捕獲上升沿信號再轉(zhuǎn)而捕獲下降沿信號。
最后是取模10000,1000,100,10。這一部分就是做除法,一個思路就是取模1000的余數(shù)就是取模100的被除數(shù),以此類推。我們將得到的結(jié)果通過ASCII碼表轉(zhuǎn)化,再將數(shù)字動態(tài)的顯示在LCD1602上。
完成設(shè)計之后,我們根據(jù)設(shè)置連接管腳和HY-SRF05,并在LCD602上看到了想要的結(jié)果。
我們雖然實現(xiàn)了測距,但仍有不足和需要改進(jìn)的地方。比如,我們儀器的精度還需要提高。我們假設(shè)這是由于兩個10us脈沖間的間隔造成的,在未來的實驗中我們會證明我們假設(shè)。再比如,我們的程序中沒有設(shè)定&TAR在大于65536時重置為0,這可能會產(chǎn)生一些問題,我們在未來的改進(jìn)中將會加入相應(yīng)字段。但是,我們的首要問題還是要確保有更好的精度。