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