版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 微機原理與接口技術(shù)課程設(shè)計</p><p><b> ——汽車倒車測距儀</b></p><p> 題目:汽車倒車測距儀</p><p><b> 指導(dǎo)老師:</b></p><p> 日期:2013年1月13日</p><p><b>
2、; 汽車倒車測距儀設(shè)計</b></p><p><b> 一設(shè)計目的</b></p><p> 1、運用微機原理及接口技術(shù)理論課中學(xué)習(xí)的8086、8255等芯片,以及數(shù)碼管等元件進行課程設(shè)計,做到學(xué)以致用。</p><p> 2、通過課程設(shè)計提高自己的動手能力,分析問題的能力、解決問題的能力。</p><
3、p> 3、提高自己運用匯編語言的能力,使自己的思維更加發(fā)散,提高創(chuàng)新能力。</p><p> 4、通過整個課程設(shè)計,提高綜合運用能力,及提高對硬件的認(rèn)識和布線能力。</p><p><b> 二、設(shè)計內(nèi)容 </b></p><p> 1、設(shè)計一個微機控制的汽車倒車測距儀,能測量并顯示車輛后部障礙物離車輛的距離,同時用間歇的“嘟嘟
4、”聲發(fā)出警報,“嘟嘟”聲間隙隨障礙物距離縮短而縮短,駕駛員不但可以直接觀察到檢測的距離,還可以憑聽覺判斷車后障礙物離車輛距離的遠(yuǎn)近;</p><p> 開機后先顯示“———”,并有開機指示燈。</p><p> CPU發(fā)射超聲波1ms,然后顯示60ms;即1ms+60ms為一個工作周期,等待回波,在次周期內(nèi)完成一次探測。</p><p> 根據(jù)距離遠(yuǎn)近發(fā)出報警
5、聲并顯示距離。障礙物距離小于1m,距離值變化5cm更換顯示,否則不更換;距離在1m以上,新值與原顯示值之差大于10cm更換,否則不更換。</p><p> 用三LED位數(shù)碼管顯示障礙物距離</p><p> 2、硬件電路原理圖和軟件框圖;</p><p> 3 編寫控制程序,寫出設(shè)計任務(wù)書(總結(jié)報告)。</p><p><b&g
6、t; 三、設(shè)計任務(wù)</b></p><p> 1、選用8088和適當(dāng)?shù)拇鎯ζ骷敖涌谛酒瓿上鄳?yīng)的功能。</p><p> 2、用LED顯示器顯示電子鎖的當(dāng)前狀態(tài)。</p><p> 3、畫出詳細(xì)的硬件連接圖。</p><p> 4、給出程序設(shè)計思路、畫出軟件流程圖。</p><p> 5、給出地
7、址分配表。</p><p> 6、給出所有程序清單并加上必要注釋。</p><p> 7、完成設(shè)計說明書(列出參考文獻,所用器件型號)。</p><p> 四、問題分析及方案選擇</p><p><b> 1.總體思路:</b></p><p> 要實現(xiàn)測距、報警、顯示,則倒車測距儀必須
8、由以下幾部分組成:超聲波發(fā)射、接受電路,顯示電路以及報警電路,超聲波發(fā)射電路用于發(fā)射時長1ms的超聲波,接受電路在接受到超聲波后立即產(chǎn)生中斷,觸發(fā)中斷程序。顯示電路及報警電路用于指示距離。</p><p><b> 2.超聲的波發(fā)射:</b></p><p> 超聲波發(fā)射電路需考慮的問題是如何控制超生波發(fā)射時間以及超聲波的發(fā)射功率,由于本次課程設(shè)計主要針對微機的控
9、制原理,顧不在本次課設(shè)中考慮發(fā)射功率的問題。發(fā)射時間由8253的一個計數(shù)器控制,設(shè)置合適的計數(shù)初值,使輸出剛好能夠產(chǎn)生1ms控制脈沖。</p><p><b> 3.測距原理:</b></p><p> 測量距離則需要發(fā)射電路與接收電路的配合,同樣使用8253的另一個計數(shù)器,使其在超聲波發(fā)射時開始計數(shù),接收到超聲波回波后立即停止計數(shù),計算已計的計數(shù)值,然后根據(jù)聲波
10、速度、計數(shù)頻率算出時間。此次設(shè)計采用的時鐘頻率為1.193MHz,聲速340m/s,故每cm的計數(shù)次數(shù)為 n=1.193M÷340÷100,但是計數(shù)差值是聲波來回行程的差值,故車輛與障礙物的距離每cm的實際計數(shù)次數(shù)為 N=2×n。</p><p><b> 4.顯示原理:</b></p><p> 由于數(shù)碼管只有3個,而顯示的靈敏度最
11、高只需cm,所以選擇第一個數(shù)碼管為百位,第二個為十位,第三個為個位,單位cm。取計數(shù)差值,并將其值除以N,得到距離的16進制數(shù)(單位cm),需編輯相應(yīng)的程序?qū)?6進制數(shù)轉(zhuǎn)為10進制數(shù),并逐個取出百位、十位、個位,并對應(yīng)LED管的段碼后輸入到8255控制LED顯示。</p><p><b> 5.報警原理:</b></p><p> 報警電路采用8253的第三個計數(shù)
12、器來控制報警頻率,聲音的產(chǎn)生則用一個蜂鳴發(fā)聲器。因為距離越近,計算時間的計數(shù)值越小,所以我們可以用這個計數(shù)值乘上相應(yīng)的系數(shù)來作為第三個計數(shù)器的計數(shù)初值,從而改變報警的頻率。</p><p><b> 五、所需元件</b></p><p><b> 主要元件介紹:</b></p><p><b> 8086介
13、紹</b></p><p> Intel 8086微處理器是由美國Intel公司1987年推出的一種高性能的16位微處理器,是第三代微處理器的代表。它有20條地址線,直接尋址能力達1MB,具有16條數(shù)據(jù)總線,內(nèi)部總線和ALU均為16位,可進行8位和16位操作。具有豐富的指令系統(tǒng),采用多級中斷技術(shù),多重尋址方式,多重數(shù)據(jù)處理形式,段式存儲器結(jié)構(gòu),硬件乘除法運算電路,增加了預(yù)取指令的隊列寄存器等,分為總
14、線借口部件ALU和執(zhí)行部件EU。</p><p><b> 8259A介紹</b></p><p> 8259A是專門為了對8085A和8086/8088進行中斷控制而設(shè)計的芯片,它是可以用程序控制的中斷控制器。單個的8259A能管理8級向量優(yōu)先級中斷。在不增加其他電路的情況下,最多可以級聯(lián)成64級的向量優(yōu)級中斷系統(tǒng)。8259A有多種工作方式,能用于各種系統(tǒng)。各種
15、工作方式的設(shè)定是在初始化時通過軟件進行的。 在總線控制器的控制下,8259A芯片可以處于編程狀態(tài)和操作狀態(tài),編程狀態(tài)是CPU使用IN或OUT指令對8259A芯片進行初始化編程的狀態(tài)。</p><p><b> 8255介紹</b></p><p> 8255是Intel公司生產(chǎn)的一種通用的可編程并行I/O接口芯片,它有三個并行I/O口,又可通過編程設(shè)置多種工作方式
16、,價格低廉,使用方便,可以直接與Intel系列的芯片連接使用,在IBM—PC/XT系列微機中,8255接口用于接受鍵盤輸入的掃描碼和系統(tǒng)配置的DPI開關(guān)狀態(tài),以及用于揚聲器控制和儲存器奇偶校驗。</p><p><b> 8253介紹</b></p><p> intel8253是NMOS工藝制成的可編程計數(shù)器/定時器,有幾種芯片型號,外形引腳及功能都是兼容的,只
17、是工作的最高計數(shù)速率有所差異,例如8253(2.6MHz),8253-5(5MHz)8253內(nèi)部有三個計數(shù)器,分別稱為計數(shù)器0、計數(shù)器1和計數(shù)器2,他們的機構(gòu)完全相同。每個計數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制字,互相之間工作完全獨立。每個計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。每個計數(shù)器內(nèi)部有一個8位的控制寄存器,還有一個16位的計數(shù)初值寄存器CR、一個計數(shù)
18、執(zhí)行部件CE和一個輸出鎖存器OL。執(zhí)行部件實際上是一個16位的減法計數(shù)器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通過程序設(shè)置的。輸出鎖存器的值是通過程序設(shè)置的。輸出鎖存器OL用來鎖存計數(shù)執(zhí)行部件CE的內(nèi)容,從而使CPU可以對此進行讀操作。順便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器來用。</p><p> 地址鎖存器74LS138介紹</p><p>
19、 74LS138 為3 線-8 線譯碼器,其工作原理如下:當(dāng)一個選通端(G1)為高電平,另兩個選通端(/(G2A)和/(G2B))為低電平時,可將地址端(A、B、C)的二進制編碼在一個對應(yīng)的輸出端以低電平譯出。 利用 G1、/(G2A)和/(G2B)可級聯(lián)擴展成 24 線譯碼器;若外接一個反相器還可級聯(lián)擴展成 32 線譯碼器。 若將選通端中的一個作為數(shù)據(jù)輸入端時,74LS138還可作數(shù)據(jù)分配器。</p><p>
20、;<b> 其功能表為</b></p><p><b> 六、硬件接線圖</b></p><p><b> 總電路圖</b></p><p> CPU類型:8086</p><p> 8253地址分配:4H、5H、6H、7H</p><p>
21、 8255地址分配:0CH、0DH、0EH、0FH</p><p> 8259地址分配:8H 、9H</p><p> 時鐘信號頻率:1.193MHz</p><p><b> 超聲波發(fā)射電路:</b></p><p> 超聲波發(fā)射電路主要由兩部分組成:超聲波發(fā)射控制電路及超聲波產(chǎn)生電路</p>&
22、lt;p> 超聲波發(fā)射控制電路圖</p><p> 超聲波發(fā)射控制電路采用一片8253芯片,計數(shù)器0設(shè)置為計數(shù)方式0,控制計數(shù)時間為1ms,并在OUT0端加上非門,則可在OUT0得到1ms的高電平。計數(shù)器2也設(shè)置為計數(shù)方式0,用于計算超聲波從發(fā)出到接收回來的時間。</p><p><b> 超聲波產(chǎn)生電路圖</b></p><p>
23、 OUT0、fout端為控制端,只要在fout端加上恒定控制電源,就可以由OUT0來控制Q1的導(dǎo)通,從而控制超聲波的發(fā)射。</p><p><b> 超聲波接收電路</b></p><p> 超聲波接收電路也由兩部分組成:中斷產(chǎn)生電路和超聲波采集電路</p><p><b> 中斷產(chǎn)生電路圖</b></p&g
24、t;<p> 中斷產(chǎn)生電路主要由一片8259構(gòu)成,當(dāng)超聲波采集電路收集到超聲波后,IR7引腳會輸入一個高電平,從而產(chǎn)生中斷,進行顯示、報警等后續(xù)操作。</p><p><b> 超聲波采集電路圖</b></p><p> 超聲波采集電路主要選用了一片LM567通用鎖相環(huán)電路音調(diào)譯碼器,當(dāng)超聲波接收換能器接收到超聲波后,INTR7端會產(chǎn)生一個高電平,
25、用作中斷響應(yīng)電路的IR7中斷輸入信號。</p><p><b> 數(shù)碼管顯示電路</b></p><p><b> 數(shù)碼管顯示電路圖</b></p><p> 數(shù)碼管顯示電路采用一片8255來控制三個數(shù)碼管的顯示,A口選管,B口輸出顯示內(nèi)容,A、B口都為基本輸入輸出方式,顯示時間近似60ms。</p>
26、<p><b> 蜂鳴報警電路</b></p><p> 蜂鳴報警電路亦由兩部分組成:報警頻率控制電路和蜂鳴產(chǎn)生電路</p><p><b> 報警頻率控制電路圖</b></p><p> 頻率的控制由8253的計數(shù)器1完成,計數(shù)方式為方式2,計數(shù)初值根據(jù)障礙物距離而定,距離越小,計數(shù)初值越小,產(chǎn)生負(fù)脈沖
27、的頻率越高,經(jīng)過非門變?yōu)橐粋€正脈沖,輸入給蜂鳴產(chǎn)生電路,脈沖長度由所接時鐘決定,可根據(jù)實際合理選擇蜂鳴器一次發(fā)聲長。</p><p><b> 蜂鳴產(chǎn)生電路圖</b></p><p> 蜂鳴產(chǎn)生電路采用一個蜂鳴器和多諧振蕩接法的555定時器,當(dāng)控制信號輸入時,555控制蜂鳴器發(fā)出的音調(diào)。</p><p><b> 七 主程序流程
28、圖</b></p><p><b> 中斷子程序</b></p><p><b> 延時子程序</b></p><p><b> 距離計算子程序</b></p><p> 十六進制轉(zhuǎn)10進制數(shù)子程序</p><p><b>
29、 LED顯示子程序</b></p><p><b> 八、程序代碼</b></p><p> INTR_RECV EQU 01C8H ;INTR對應(yīng)的中斷矢量地址</p><p> INTR_OCW1 EQU 9H ;INTR對應(yīng)
30、的8259內(nèi)部OCW1地址</p><p> INTR_OCW2 EQU 8H ;INTR對應(yīng)的8259內(nèi)部ICW2地址</p><p> INTR_ICW1 EQU 8H ;INTR對應(yīng)的8259內(nèi)部ICW1地址</p><p> INTR_ICW4 EQU
31、 9H ;INTR對應(yīng)的8259內(nèi)部ICW2地址</p><p> MY8253_COUNT0 EQU 4H ;8253計數(shù)器0端口地址</p><p> MY8253_COUNT1 EQU 5H ;8253計數(shù)器1端口地址</p>
32、<p> MY8253_COUNT2 EQU 6H ;8253計數(shù)器2端口地址</p><p> MY8253_MODE EQU 7H ;8253的控制寄存器地址</p><p> MY8255_A EQU 0CH
33、 ;8255的A口地址</p><p> MY8255_B EQU 0DH ;8255的B口地址</p><p> MY8255_C EQU 0FH ;8255的C口地址</p><p> MY825
34、5_MODE EQU 0EH ;8255的控制寄存器地址</p><p> STACK1 SEGMENT STACK</p><p> DW 256 DUP(?)</p><p> STACK1 ENDS ;堆棧段初始化&
35、lt;/p><p> DATA SEGMENT ;數(shù)據(jù)段初始化</p><p> DTABL1 DB 40H,07H,5CH,50H,67H,6EH,7EH,28H,80H,70H </p><p> ;1管使用的段碼(帶小數(shù)點)</p><p> D
36、TABL2 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,27H,7FH,6FH </p><p> ;2、3管使用的段碼</p><p> X1 DW 1DUP(0) ;存放距離的百位(單位cm)</p><p> X2 DW 1DUP(0)
37、 ;存放距離的十位(單位cm)</p><p> X3 DW 1DUP(0) ;存放距離的個位(單位cm)</p><p> DATA ENDS </p><p> CODE SEGMENT
38、 ;代碼段初始化 </p><p> ASSUME CS:CODE, DS:DATA</p><p> START:MOV AX,DATA</p><p><b> MOV DX,AX</b></p><p> MOV AX,0000H&
39、lt;/p><p> MOV DX,AX ;數(shù)據(jù)段清零</p><p> M8255:MOV DX,MY8255_MODE 0CH ;初始化8255</p><p> MOV AL,80H
40、 ;工作方式0,A口和B口輸出</p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8255_A ;寫A口發(fā)出的起始數(shù)據(jù)</p><p> MOV AL,7H ;選擇LED數(shù)碼管前三個
41、管</p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8255_B ;寫B(tài)口發(fā)出的起始數(shù)據(jù) </p><p> MOV AL,30H ;顯示“———"
42、 </p><p> OUT DX,AL </p><p> M8259:MOV DX,INTR_OCW1 ;初始化8259</p><p> MOV AL,7FH ;開8259中斷7</p>
43、<p> OUT DX,AL </p><p> MOV DX,INTR_ICW1</p><p> MOV AL,13H ;連接方式為單片,邊沿觸發(fā)</p><p> OUT DX,AL </p><p> MOV DX,INTR_ICW4</p>
44、;<p> MOV AL,1H ;CPU為8086</p><p><b> OUT DX,AL</b></p><p> MOV SI,INTR_RECV ;填8259中斷7中斷矢量</p><p
45、> MOV AX,OFFSET IRQ7 ;取中斷程序入口地址(相對地址)</p><p> MOV ES:[DI],AX ;設(shè)置中斷程序入口偏移地址</p><p><b> ADD DI,2</b></p><p> MOV AX,SEG IRQ7<
46、;/p><p> MOV ES:[DI],AX ;設(shè)置中斷程序入口段地址 </p><p> SEND: MOV DX,MY8253_MODE ;初始化8253</p><p> MO
47、V AL,30H ;計數(shù)器0,方式0</p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8253_COUNT0</p><p> MOV AL,0A9H ;裝入計數(shù)初值1193D,發(fā)射超聲波1m
48、s</p><p><b> OUT DX,AL</b></p><p><b> MOV AL,4H</b></p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8253_MODE
49、 </p><p> MOV AL,0B0H ;計數(shù)器2,方式0</p><p><b> OUT DX,AL</b></p><p> STI ;打開中斷&l
50、t;/p><p> MOV DX,MY8253_COUNT2</p><p> MOV AL,0FFH ;裝入計數(shù)初值,開始計時</p><p><b> OUT DX,AL</b></p><p> MOV AL,0FFH
51、 </p><p> OUT DX,AL </p><p> WAIT1:MOV AH,1
52、 ;判斷是否有按鍵按下</p><p><b> INT 16H</b></p><p><b> JZ WAIT1</b></p><p> QUIT1:CLI ;關(guān)閉中斷</p>
53、<p> MOV AX,4C00H</p><p><b> INT 21H</b></p><p> IQR7 PROC NEAR ;中斷處理程序IQR7</p><p> MOV BX,0H
54、 ;置零BX</p><p> MOV DX,MY8253_MODE</p><p> MOV AL,80H ;設(shè)定“飛讀”</p><p><b> OUT DX,AL</b></p><p>
55、 IN AL,MY8253_COUNT2 ;讀取計數(shù)器2當(dāng)前計數(shù)值</p><p><b> MOV CL,AL</b></p><p> IN AL,MY8253_COUNT2</p><p> MOV CH,AL
56、 </p><p> MOV BX,CX ;保存當(dāng)前計數(shù)值</p><p> COUNT:MOV AX,0FFFFH ;計算差值</p><p> SUB AX,CX </p><p>
57、CMP AX,0DBDH ;比較是否大于一米</p><p> JA ONE1 ;大于則轉(zhuǎn)移到ONE1</p><p><b> SUB AX,BX</b></p><p> CMP AX,0AFH
58、 ;比較是否比5cm大</p><p> JNA BACK ;不大于5cm則轉(zhuǎn)移到BACK</p><p> MOV DX,MY8253_MODE</p><p> MOV AX,74H
59、 ;計數(shù)器1,方式2</p><p><b> OUT DX,AX</b></p><p> MOV DX,MY8253_COUNT1</p><p><b> MOV AX,BX</b></p><p> OUT DX,AX
60、 ;刷新報警聲音頻率</p><p> MOV CX,0AFH</p><p> DIV CX ;計算距離</p><p> CALL TRAN ;調(diào)用10進制調(diào)整程序</p&
61、gt;<p> CALL DISP ;調(diào)用顯示程序</p><p> MOV DX,MY8253_MODE ;初始化8253</p><p> MOV AL,30H
62、 ;計數(shù)器0,方式0</p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8253_COUNT0</p><p> MOV AL,0A9H ;裝入計數(shù)初值1193D,發(fā)射超聲波1ms</p><p><b> OUT DX,A
63、L</b></p><p><b> MOV AL,4H</b></p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8253_MODE </p><p> MOV AL,0B0H
64、 ;計數(shù)器2,方式0</p><p><b> OUT DX,AL</b></p><p> STI ;打開中斷</p><p> MOV DX,MY8253_COUNT2<
65、;/p><p> MOV AL,0FFH ;裝入計數(shù)初值,開始計時</p><p><b> OUT DX,AL</b></p><p> MOV AL,0FFH
66、 </p><p> OUT DX,AL </p><p> OVER: MOV DX,INTR_OCW2 ;向CUP發(fā)出中斷結(jié)束命令</p><
67、p> MOV AL,20H</p><p><b> OUT DX,AL</b></p><p><b> IRET</b></p><p><b> IRQ7 ENDP</b></p><p> ONE1: SUB AX,BX</p><p
68、> CMP AX,15EH ;比較是否比10cm大</p><p> JNA BACK ;不大于10cm則轉(zhuǎn)移到BACK</p><p> MOV DX,MY8253_MODE</p><p> MOV AX,74H
69、 ;計數(shù)器1,方式2</p><p><b> OUT DX,AX</b></p><p> MOV DX,MY8253_COUNT1</p><p><b> MOV AX,BX</b></p><p> OUT DX,AX
70、 ;刷新報警聲音頻率</p><p> MOV CX,15EH</p><p> DIV CX ;計算距離,舍去余數(shù)(已小于5cm)</p><p> CALL TRAN ;調(diào)用10
71、進制調(diào)整程序</p><p> CALL DISP ;調(diào)用顯示程序</p><p> JMP OVER ;返回</p><p> BACK:CALL DELAY1</p><p>
72、;<b> JMP OVER</b></p><p> TRAN PROC NEAR ;距離(單位cm)10進制調(diào)整子程序</p><p> PUSH BX ;把BX壓棧</p><p> CLC
73、 ;進位標(biāo)志位置零</p><p> MOV CL,5H </p><p><b> MUL CL</b></p><p><b> MOV DX,0H</b>
74、</p><p><b> MOV BX,0H</b></p><p> A1: MOV CX,100H</p><p><b> MUL CX</b></p><p><b> MOV X3,AX</b></p><p> A2: M
75、OV AL,AH ;取出余數(shù)</p><p> MOV CL,0AH</p><p> DIV CL </p><p><b> MOV CX,0H</b></p>
76、;<p><b> MOV CL,AH</b></p><p> MOV X3,CX ;取出個位</p><p> MOV CL,10H </p><p><b&
77、gt; MUL CL</b></p><p> MOV X2,AX ;取出十位</p><p><b> MOV AX,X1</b></p><p><b> MOV BX,X2</b></p><p&g
78、t;<b> ADD AX,BX</b></p><p><b> MOV BX,X3</b></p><p><b> ADD AX,BX</b></p><p><b> MOV BX,AX</b></p><p> AND BX,100H
79、 </p><p> SAR BX,2 ;右移兩位</p><p><b> MOV X3,BX</b></p><p><b> MOV BX,X2</b>&l
80、t;/p><p> AND BX,10H</p><p> SAR BX,1 ;右移一位</p><p><b> MOV X2,BX</b></p><p> POP BX
81、 ;BX出棧</p><p><b> RET </b></p><p><b> TRAN ENDP</b></p><p> DISP PROC NEAR </p><p> MOV DX,MY8255_A
82、 </p><p> MOV AL,1H ;選擇LED數(shù)碼管1</p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8255_B &
83、lt;/p><p> MOV BX,OFFSET DTABL1</p><p><b> MOV AX,X1</b></p><p><b> ADD BX,AX</b></p><p> MOV AL,[BX] ;導(dǎo)入十進制數(shù)字X1對應(yīng)的段碼1
84、 </p><p> OUT DX,AL ; 顯示數(shù)值</p><p> CALL DELAY1 ;調(diào)用顯示延時程序</p><p> MOV
85、 DX,MY8255_A </p><p> MOV AL,2H ;選擇LED數(shù)碼管2</p><p><b> OUT DX,AL</b></p><p> MOV DX,MY8255_B
86、 </p><p> MOV BX,OFFSET DTABL2</p><p><b> MOV AX,X2</b></p><p><b> ADD BX,AX</b></p><p> MOV AL,[BX]
87、 ;導(dǎo)入十進制數(shù)字X2對應(yīng)的段碼2 </p><p> OUT DX,AL ;顯示數(shù)值</p><p> CALL DELAY1
88、;調(diào)用顯示延時程序</p><p> MOV DX,MY8255_A </p><p> MOV AL,4H ;選擇LED數(shù)碼管3</p><p><b> OUT DX,AL</b></p&
89、gt;<p> MOV DX,MY8255_B </p><p> MOV BX,OFFSET DTABL2</p><p><b> MOV AX,X3</b></p><p><b> ADD BX,AX</b></p
90、><p> MOV AL,[BX] ;導(dǎo)入十進制數(shù)字X3對應(yīng)的段碼2 </p><p> OUT DX,AL ;顯示數(shù)值</p><p> CALL DELAY1
91、 ;調(diào)用顯示延時程序 </p><p><b> RET</b></p><p> DISP ENDP </p><p> DELAY1 PROC NEAR</p><p> PUSH CX
92、 ;延時接近60ms</p><p> MOV CX,0FFFFH</p><p> D1 :DEC CX</p><p><b> LOOP D1</b></p><p><b> POP CX</b></p><p
93、><b> RET</b></p><p> DELAY1 ENDP </p><p><b> CODE ENDS</b></p><p><b> END STATR</b></p><p><b> 九、設(shè)計難點</b></p
94、><p> 設(shè)計難點主要在于控制發(fā)射超聲波的時間,控制報警電路的報警頻率變化,以及將計數(shù)值轉(zhuǎn)化為所需要的十進制數(shù)顯示距離,為此,我們小組進行了多次討論,包括8253計數(shù)器的計數(shù)方式的選擇,電路的連接,以及轉(zhuǎn)化的算法,但是由于時間和能力有限,報警電路還是有些問題,直接用8253的計數(shù)器控制,一次報警的時長太短,需要在計數(shù)器與報警電路之間再加入相關(guān)環(huán)節(jié)來改變一次報警時長,此部分我們未能如期完成。計數(shù)差值轉(zhuǎn)化為十進制距離
95、時,令我們感到十分頭痛,計數(shù)值除以N時,若計數(shù)值太大,可能會產(chǎn)生丟失,所以我們在此改為先除以一個比較大的數(shù)(N的整倍數(shù)),再乘以倍數(shù),得到所需要的值,但會損失一定的精確度,在交報告前,我們未能作出更好的算法。</p><p><b> 十、心得體會</b></p><p> 這次課程設(shè)計我們選擇了比較難的一個題目,汽車倒車測距儀,希望在運用微機課程知識和提高自己的
96、能力同時,給自己多一些鍛煉和挑戰(zhàn)??吹狡渌行┩瑢W(xué)草草地改了一些課程設(shè)計就上交了,我們并沒有因此心浮氣躁,而是繼續(xù)專心研讀相關(guān)資料,結(jié)合題目和課本進行倒車測距儀的設(shè)計?;艘粋€多星期,兢兢業(yè)業(yè),揮汗灑淚,終于完成了本次課程設(shè)計。真是“十年辛苦不尋常,字字看來皆是血”?。∠旅嫖覀兙头周浖陀布M行闡述:</p><p><b> 硬件部分</b></p><p>
97、此次題目硬件部分是難點,因為我們雖然學(xué)習(xí)和掌握了8253,8259,8255等等相關(guān)知識,但是綜合運用起來卻顯得捉襟見肘,因為此外還要配套地加上一些其它的電路,比如超聲波的發(fā)射和接收電路等,于是我們上網(wǎng)查閱了很多資料,在掌握了相關(guān)的原理的基礎(chǔ)上,整合修改了一些電路,使我們的課程設(shè)計所要求的功能能夠完整而正確地實現(xiàn)。我們小組一起研究學(xué)習(xí)了proteus軟件,學(xué)會了如何繪制電路圖和仿真,在這其中也碰到了許多困難,但是我們相互討論,并通過搜索
98、網(wǎng)絡(luò),查閱書籍等解決了硬件上遇到的很多問題。 </p><p><b> 軟件部分</b></p><p> 軟件部分是在我們的硬件基礎(chǔ)上進行功能實現(xiàn),由于匯編語言的基礎(chǔ)性,不像我們所學(xué)的高級語言那樣易于掌握。相比于C++這樣的高級編程語言,匯編語言可以說是相當(dāng)復(fù)雜的一個工程。</p><p> 因為老師曾跟我們說,編程最重要是設(shè)計的思想
99、和算法,而語法上的東西相較而言反而顯得次要些,因此要把思路理清,表達出來,還要畫流程圖。雖然這次設(shè)計的思路看似簡單,但編寫起來依然感到吃力,因為有個元件我第一次編程的——8259,加上中斷程序的編寫,假若用的是C,確實可以很快搞定,用匯編,不僅要寫處理程序,還要寫現(xiàn)場保護和現(xiàn)場恢復(fù),之前還要寫入口地址。對于陌生的東西,最好就是參考,于是我就反復(fù)看課本上關(guān)于中斷程序的例子,從中參透,加上上網(wǎng)查找資料和請教師兄,最終完成理論的程序。<
100、/p><p><b> 團隊協(xié)作</b></p><p> 老師讓我們兩個人一隊合作完成此次課程設(shè)計,應(yīng)該就是讓我們能夠有團隊協(xié)作的意識。這次我和搭檔合作,主要是因為我們曾經(jīng)有過合作的經(jīng)驗,互相比較了解對方。所以在合作的過程中還是比較順利的。當(dāng)一個人出現(xiàn)些許問題的時候,需要開動大家的腦筋去解決這些問題,并且相互討論,一個人可能會有思維死區(qū),但是兩個人的話就可以彌補思維
101、上的漏洞和死角,這也是團隊協(xié)作意識的精髓吧。</p><p><b> 不足之處及建議</b></p><p> 本次課設(shè)讓我感觸最深的地方就是,要學(xué)會一門技能,你需要花上相當(dāng)大的功夫。就比如這次的硬件設(shè)計,雖然之前學(xué)過一點proteus,但是真正需要上手畫的時候,卻又不知從何下手。這就是我這次最大的缺陷。在編程的時候也是不夠熟練,反復(fù)查閱課本的知識和例子,才把程
102、序編寫完成。</p><p> 建議:此次課程設(shè)計讓我們真正地運用課本上的知識,去實現(xiàn)和完成一定的功能,希望以后能有更多的實踐機會,把理論和實踐相結(jié)合,真正提高我們的綜合能力,而不是僅僅地停留在理論的層面。因此老師也可以考慮在以后的平時教學(xué)中多布置一些與實際應(yīng)用相關(guān)的微機設(shè)計小題目,促進同學(xué)們的動手實踐能力和實際應(yīng)用能力,讓同學(xué)們真正將課本上的知識掌握透。</p><p><b&g
103、t; 十一、參考文獻</b></p><p> 耿丹,梁佑斌 主編.《32位微型計算機原理及應(yīng)用實驗指導(dǎo)書》.華南理工大學(xué)教材供應(yīng)中心</p><p> 牟琦,聶建萍 主編.《微型計算機原理與接口技術(shù)》.清華大學(xué)出版社</p><p> 閻石 主編. 《數(shù)字電子技術(shù)基礎(chǔ)》(第五版).高等教育出版社</p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機原理課程設(shè)計--汽車倒車測距儀
- 汽車倒車測距儀課程設(shè)計
- 汽車倒車測距儀設(shè)計【開題報告】
- 汽車倒車測距儀設(shè)計論文
- 畢業(yè)論文--汽車倒車測距儀
- 汽車倒車測距儀的設(shè)計【任務(wù)書】
- 汽車倒車測距儀的設(shè)計【畢業(yè)論文】
- 超聲波測距儀課程設(shè)計
- 超聲波測距儀課程設(shè)計
- 汽車倒車指示儀課程設(shè)計
- 超聲波測距儀課程設(shè)計 (2)
- 數(shù)字超聲波倒車測距儀設(shè)計-畢業(yè)設(shè)計
- 模電課程設(shè)計-超聲波測距儀
- 單片機課程設(shè)計--超聲波測距儀
- 單片機超聲波測距儀設(shè)計課程設(shè)計
- 微機原理課程設(shè)計報告
- 微機原理課程設(shè)計報告
- 微機原理課程設(shè)計報告
- 《微機原理》課程設(shè)計報告
- 微機原理課程設(shè)計報告
評論
0/150
提交評論