微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-交通燈設(shè)計(jì)說明書_第1頁
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-交通燈設(shè)計(jì)說明書_第2頁
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-交通燈設(shè)計(jì)說明書_第3頁
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-交通燈設(shè)計(jì)說明書_第4頁
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)-交通燈設(shè)計(jì)說明書_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

.../中南大學(xué)微機(jī)課程設(shè)計(jì)報(bào)告題目交通燈設(shè)計(jì)專業(yè)班級(jí)姓名學(xué)號(hào)指導(dǎo)老師林立新老師目錄課程設(shè)計(jì)題目、功能、目的……..2系統(tǒng)分析與設(shè)計(jì)…………3系統(tǒng)所用芯片分析…………..3所選用芯片的簡(jiǎn)要介紹……………………4系統(tǒng)框圖…………..6程序設(shè)計(jì)………….…………73.1十字路口交通燈狀態(tài)轉(zhuǎn)換表……………73.2主程序流程圖……………………73.3中斷子程序流程圖…………..83.4數(shù)碼管碼表……………………..83.5各芯片初始化說明………….9運(yùn)行情況………….………10具體源代碼及注釋……………………11心得體會(huì)………….………16課程設(shè)計(jì)題目、功能、目的課程設(shè)計(jì)題目交通燈設(shè)計(jì)本設(shè)計(jì)所實(shí)現(xiàn)功能實(shí)現(xiàn)十字路口交通燈各種狀態(tài)的轉(zhuǎn)換;各種狀態(tài)轉(zhuǎn)換的時(shí)間可進(jìn)行靈活設(shè)置;采用中斷的方法對(duì)狀態(tài)轉(zhuǎn)換進(jìn)行控制,提高處理器效率;在各個(gè)狀態(tài)轉(zhuǎn)換的同時(shí)實(shí)現(xiàn)倒計(jì)時(shí)提醒。本次課程設(shè)計(jì)目的通過《微機(jī)原理與接口》課程設(shè)計(jì),使學(xué)生能夠進(jìn)一步了解微型計(jì)算機(jī)工作原理,微型計(jì)算機(jī)的硬件結(jié)構(gòu)及微型計(jì)算機(jī)軟件編程。要求學(xué)生根據(jù)接口電路的硬件要求進(jìn)行計(jì)算機(jī)的匯編語言程序設(shè)計(jì),使學(xué)生的軟件編程能力得到加強(qiáng),對(duì)接口電路的綜合應(yīng)用能力有較大提高。系統(tǒng)分析與設(shè)計(jì)系統(tǒng)所用芯片分析首先本個(gè)系統(tǒng)需要一個(gè)中央處理器來負(fù)責(zé)對(duì)整個(gè)系統(tǒng)進(jìn)行控制管理,因?yàn)椤段C(jī)原理與接口技術(shù)》這門課上介紹了8086芯片,所以可以采用8086作為本系統(tǒng)的中央處理器。由于本次的課程設(shè)計(jì)的題目是交通燈,而根據(jù)十字路口處的交通燈南北和東西方向各有紅、綠、黃三種顏色的燈,因此可用8255來控制6個(gè)LED燈的實(shí)現(xiàn)模擬的南北和東西方向上的交通燈。而交通燈的狀態(tài)轉(zhuǎn)換時(shí)間要由中斷方式來控制,所以很容易想到了可以用8259作為中斷芯片,與8086芯片相連。交通燈的狀態(tài)轉(zhuǎn)換時(shí)間可靈活設(shè)置,于是想到了可以采用一塊8253或8254芯片和一個(gè)脈沖源相連,8253對(duì)脈沖源送來的脈沖進(jìn)行分頻,然后將輸出送到8259作為中斷源,而8253采用不用的計(jì)數(shù)初值其輸出脈沖的頻率就不一樣,因此實(shí)現(xiàn)了交通類狀態(tài)轉(zhuǎn)換時(shí)間的靈活設(shè)置。最后關(guān)于交通燈狀態(tài)轉(zhuǎn)換的倒計(jì)時(shí)功能,可由一個(gè)七段數(shù)碼管來顯示倒計(jì)時(shí),而本次課程設(shè)計(jì)的實(shí)驗(yàn)箱沒有提供單個(gè)數(shù)碼管,而是提供了一個(gè)八位一體七段數(shù)碼管,所以還需一塊8279芯片來對(duì)數(shù)碼管進(jìn)行控制。所選用芯片的簡(jiǎn)要介紹8255是Intel公司生產(chǎn)的可編程并行I/O接口芯片,有3個(gè)8位并行I/O口。具有3個(gè)通道3種工作方式的可編程并行接口芯片〔40引腳。其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255可作為單片機(jī)與多種外設(shè)連接時(shí)的中間接口電路。8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個(gè)總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時(shí)必須具有與外設(shè)連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個(gè)部分:與CPU連接部分、與外設(shè)連接部分、控制部分。intel8253是NMOS工藝制成的可編程計(jì)數(shù)器/定時(shí)器,有幾種芯片型號(hào),外形引腳及功能都是兼容的,只是工作的最高計(jì)數(shù)速率有所差異,例如8253〔2.6MHz,8253-5<5MHz>8253內(nèi)部有三個(gè)計(jì)數(shù)器,分別稱為計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2,他們的機(jī)構(gòu)完全相同。每個(gè)計(jì)數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制字,互相之間工作完全獨(dú)立。每個(gè)計(jì)數(shù)器通過三個(gè)引腳和外部聯(lián)系,一個(gè)為時(shí)鐘輸入端CLK,一個(gè)為門控信號(hào)輸入端GATE,另一個(gè)為輸出端OUT。每個(gè)計(jì)數(shù)器內(nèi)部有一個(gè)8位的控制寄存器,還有一個(gè)16位的計(jì)數(shù)初值寄存器CR、一個(gè)計(jì)數(shù)執(zhí)行部件CE和一個(gè)輸出鎖存器OL。執(zhí)行部件實(shí)際上是一個(gè)16位的減法計(jì)數(shù)器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通過程序設(shè)置的。輸出鎖存器的值是通過程序設(shè)置的。輸出鎖存器OL用來鎖存計(jì)數(shù)執(zhí)行部件CE的內(nèi)容,從而使CPU可以對(duì)此進(jìn)行讀操作。順便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器來用。Intel8086擁有四個(gè)16位的通用寄存器,也能夠當(dāng)作八個(gè)8位寄存器來存取,以及四個(gè)16位索引寄存器〔包含了堆棧指標(biāo)。資料寄存器通常由指令隱含地使用,針對(duì)暫存值需要復(fù)雜的寄存器配置。它提供64K8位元的輸出輸入〔或32K16位元,以及固定的向量中斷。大部分的指令只能夠存取一個(gè)內(nèi)存位址,所以其中一個(gè)操作數(shù)必須是一個(gè)寄存器。運(yùn)算結(jié)果會(huì)儲(chǔ)存在操作數(shù)中的一個(gè)寄存器。Intel8086有四個(gè)內(nèi)存區(qū)段〔segment>寄存器,可以從索引寄存器來設(shè)定。區(qū)段寄存器可以讓CPU利用特殊的方式存取1MB內(nèi)存。8086把段地址左移4位然后把它加上偏移地址。大部分的人都認(rèn)為這是一個(gè)很不好的設(shè)計(jì),因?yàn)檫@樣的結(jié)果是會(huì)讓各分段有重疊。盡管這樣對(duì)組合語言而言大部分被接受〔也甚至有用,可以完全地控制分段,,使在編程中使用指針〔如C編程語言變得困難。它導(dǎo)致指針的高效率表示變得困難,且有可能產(chǎn)生兩個(gè)指向同一個(gè)地方的指針擁有不同的地址。更壞的是,這種方式產(chǎn)生要讓內(nèi)存擴(kuò)充到大于1MB的困難。而8086的尋址方式改變讓內(nèi)存擴(kuò)充較有效率。8086處理器的時(shí)鐘頻率介于4.77MHz〔在原先的IBMPC頻率和10MHz之間。8086沒有包含浮點(diǎn)指令部分〔FPU,但是可以通過外接數(shù)學(xué)輔助處理器來增強(qiáng)浮點(diǎn)計(jì)算能力。系統(tǒng)框圖程序設(shè)計(jì)十字路口交通燈狀態(tài)轉(zhuǎn)換表:南北方向東西方向十六進(jìn)制代碼紅綠黃紅綠黃0010001022H0010000121H0001010014H000011000CH主程序流程圖:中斷子程序流程圖:共陰數(shù)碼管碼表:數(shù)字01234編碼0x3F0x060x5B0x4F0x66數(shù)字56789編碼0x6D0x7D0x070x7F0x905.8259初始化說明MOVAL,13H ;寫ICW1,需要ICW4、單片工作、邊沿觸發(fā)方式MOVDX,INTPORT1OUTDX,ALMOVAL,08H ;寫ICW2,設(shè)置中斷向量號(hào)MOVDX,INTPORT2OUTDX,ALMOVAL,09H ;寫ICW4,普通全嵌套方式、采用緩沖方式OUTDX,ALMOVAL,0F7H ;寫OCW1,只開IR3中斷請(qǐng)求,其余屏蔽OUTDX,AL6.8253初始化說明MOVDX,TCONTRO MOVAL,10110100B;采用二進(jìn)制計(jì)數(shù)方式,工作方式二,十六們計(jì)數(shù),計(jì)數(shù)器二OUTDX,ALMOVDX,TCON2MOVAL,0AH ;計(jì)數(shù)初值為10,即1S中斷一次OUTDX,ALMOVAL,00HOUTDX,AL7.8255初始化說明MOVAL,80H ;PA、PB、PC口都設(shè)定為輸出工作方式MOVDX,IOCONPTOUTDX,AL運(yùn)行情況經(jīng)多次調(diào)試后,系統(tǒng)運(yùn)行良好,實(shí)現(xiàn)了要求和設(shè)想中的全部功能,如上圖為實(shí)際運(yùn)行時(shí)的圖片。具體代碼及注釋CODESEGMENTASSUMECS:CODEINTPORT1EQU0020HINTPORT2EQU0021HINTQ3 EQUINTREEUP3 ;8259CONTPORTEQU00DFHDATAPORTEQU00DEH ;8279TCONTROEQU004BH ;8253TCON2 EQU004AHIOCONPTEQU0073H 所用芯片端口地址初始化IOCPT EQU0072HIOBPT EQU0071H ;8255DATA0 EQU0580HDATA1 EQU0500HDATA2 EQU0508HDATA3 EQU0518HDATA4 EQU0520HORG1000HSTART: JMPTint1Tint1:CLI MOVAX,0H MOVDS,AX MOVDX,CONTPORT MOVAL,00H OUTDX,AL8279初始化及工作方式的設(shè)定 MOVAL,2AH8279初始化及工作方式的設(shè)定 OUTDX,AL MOVAL,0d0h OUTDX,AL MOVAL,90h OUTDX,AL8255初始化及工作方式的設(shè)定MOVAL,80H 8255初始化及工作方式的設(shè)定MOVDX,IOCONPT OUTDX,AL MOVDX,TCONTRO MOVAL,10110100B OUTDX,AL8253初始化及工作方式的設(shè)定 MOVDX,TCON28253初始化及工作方式的設(shè)定 MOVAL,0AH OUTDX,AL MOVAL,00H OUTDX,ALCALLFORMAT CLI MOVDI,DATA0 MOVCX,08H XORAX,AX REPSTOSW MOVSI,DATA3 CALLLEDDISP ;數(shù)碼管顯示初始圖案"" MOVAX,0H MOVDS,AX CALLWRINTVER ;調(diào)用子程序,設(shè)置中斷地址向量表 MOVAL,13H MOVDX,INTPORT1 OUTDX,AL MOVAL,08H8259初始化及工作方式的設(shè)定 MOVDX,INTPORT28259初始化及工作方式的設(shè)定 OUTDX,AL MOVAL,09H OUTDX,AL MOVAL,0F7H OUTDX,AL MOVBYTEPTRDS:[0601H],03H MOVBYTEPTRDS:[0602H],00H STI ;開中斷WATING:JMPWATING ;等待中斷,無限循環(huán)WRINTVER:MOVAX,0H MOVES,AX MOVDI,002CH設(shè)置中斷地址向量表子程序 LEAAX,INTQ3設(shè)置中斷地址向量表子程序 STOSW MOVAX,CS STOSW RETINTREEUP3: ;中斷子程序 CLI MOVAL,DS:[0601H] CALLCONVERS MOVSI,DATA0 CALLLEDDISP CMPBYTEPTRDS:[0601H],03H JNZNEXT MOVDX,IOBPTCOMP: CMPBYTEPTRDS:[0602H],00H JZSI0 CMPBYTEPTRDS:[0602H],01H JZSI1 CMPBYTEPTRDS:[0602H],02H JZSI2 CMPBYTEPTRDS:[0602H],03H JZSI3SI0: MOVAL,22H判斷DS:[0602H]判斷DS:[0602H]里面的值,并跟據(jù)結(jié)果來進(jìn)行對(duì)應(yīng)的轉(zhuǎn)換 JMPPUTSI1: MOVAL,21H ADDBYTEPTRDS:[0602H],01H JMPPUTSI2: MOVAL,14H ADDBYTEPTRDS:[0602H],01H JMPPUTSI3: MOVAL,0CH MOVBYTEPTRDS:[0602H],00H JMPPUT PUT: MOVDX,IOBPT OUTDX,ALNEXT: MOVAL,20H MOVDX,INTPORT1 OUTDX,AL SUBBYTEPTRDS:[0601H],01H CMPBYTEPTRDS:[0601H],00H JZINTRE1 JMPEXCONVERS: MOVBH,0H ANDAL,0FH MOVBL,AL MOVAL,CS:[BX+DATA2] MOVBX,DATA0 MOVDS:[BX],AL RETINTRE1: MOVBYTEPTRDS:[0601H],03HEX: MOVAL,20H中斷結(jié)束控制方式OCW2,普通中斷結(jié)束方式 MOVDX,INTPORT1中斷結(jié)束控制方式OCW2,普通中斷結(jié)束方式 OUTDX,AL STI IRETLEDDISP: MOVAL,90H MOVDX,CONTPORT OUTDX,AL MOVBYTEPTRDS:[0600H],00LED1: CMPBYTEPTRDS:[0600H],07H顯示子程序,從左到右依次送數(shù) JALED2顯示子程序,從左到右依次送數(shù) MOVBL,DS:[0600H] MOVBH,0H MOVAL,CS:[BX+SI] MOVDX,DATAPORT OUTDX,AL ADDBYTEPTRDS:[0600H],01H JNZLED1LED2: RET格式化內(nèi)存,將數(shù)碼管將要顯示的字符的編碼寫入內(nèi)存FORMAT:MOVBX,0 ;格式化內(nèi)存,將數(shù)碼管將要顯示的字符的編碼寫入內(nèi)存 MOVWORDPTRDS:[BX+0500H],5050H ADDBX,2 MOVWORDPTRDS:[BX+0500H],0079H ADDBX,2 MOVWORDPTRDS:[BX+0500H],0000H ADDBX,2 MOVWORDPTRDS:[BX+0500H],0000H ADDBX,2 MOVWORDPTRDS:[BX+0500H],063FH ADDBX,2 MOVWORDPTRDS:[BX+0500H],4F5BH ADDBX,2 MOVWORDPTRDS:[BX+0500H],6D66H ADDBX,2 MOVWORDPTRDS:[BX+0500H],077DH ADDBX,2 MOVWORDPTRDS:[BX+0500H],6F7FH ADDBX,2 MOVWORDPTRDS:[BX+0500H],7C77H ADDBX,2 MOVWORDPTRDS:[BX+0500H],5E39H ADDBX,2 MOVWORDPTRDS:[BX+0500H],7179H ADDBX,2 MOVWORDPTRDS:[BX+0500H],4040H ADDBX,2 MOVWORDPTRDS:[BX+0500H],4040H ADDBX,2 MOVWORDPTRDS:[BX+0500H],4040H ADDBX,2 MOVWORDPTRDS:[BX+0500H],4040H ADDBX,2 RETCODEENDSENDSTART心得體會(huì)本學(xué)期的微機(jī)原理和接口技術(shù)及其課程設(shè)計(jì)都已經(jīng)結(jié)束。在這個(gè)過程中,我們有所付出,也有所回報(bào),讓我感受頗多。對(duì)于《微機(jī)原理與接口技術(shù)》這門課程而言,初學(xué)時(shí),感覺摸不著頭緒。面對(duì)著眾多的術(shù)語、概念及原理性的問題不知道該如何下手。在了解課程的特點(diǎn)后,我發(fā)現(xiàn),應(yīng)該以微機(jī)的整機(jī)概念為突破口,在如何建立整體概念上下功夫。"麻雀雖小,五臟俱全",可以通過學(xué)習(xí)一個(gè)模型機(jī)的組成和指令執(zhí)行的過程,了解和熟悉計(jì)算機(jī)的結(jié)構(gòu)、特點(diǎn)和工作過程。《微機(jī)原理與接口技術(shù)》課程有許多新名詞、新專業(yè)術(shù)語。透徹理解這些名詞、術(shù)語的意思,為今后深入學(xué)習(xí)打下基礎(chǔ)。一個(gè)新的名詞從首次接觸到理解和應(yīng)用,需要一個(gè)反復(fù)的過程。而在眾多概念中,真正關(guān)鍵的并不是很多。比如"中斷"概念,既是重點(diǎn)又是難點(diǎn),如果不懂中斷技術(shù),就不能算是搞懂了微機(jī)原理。在學(xué)習(xí)中凡是遇到這種情況,絕對(duì)不輕易放過,要力求真正弄懂,搞懂一個(gè)重點(diǎn),將使一大串概念迎刃而解。學(xué)習(xí)過程中,我發(fā)現(xiàn)許多概念很相近,為了更好地掌握,將一些容易混淆的概念集中在一起進(jìn)行分析,比較它們之間的異同點(diǎn)。比如:微機(jī)原理中,引入了計(jì)算機(jī)由五大部分組成這一概念;從中央處理器引出微處理器的定義;在引出微型計(jì)算機(jī)定義時(shí),強(qiáng)調(diào)輸入/輸出接口的重要性;在引出微型計(jì)算機(jī)系統(tǒng)的定義時(shí),強(qiáng)調(diào)計(jì)算機(jī)軟件與計(jì)算機(jī)硬件的相輔相成的關(guān)系。微處理器是微型計(jì)算機(jī)的重要組成部分,它與微型計(jì)算機(jī)、微型計(jì)算機(jī)系統(tǒng)是完全不同的概念。微處理器、微型計(jì)算機(jī)和微型計(jì)算機(jī)系統(tǒng)在微機(jī)中,最基礎(chǔ)的語言是匯編語言。匯編語言是一個(gè)最基礎(chǔ)最古老的計(jì)算機(jī)語言。語言總是越基礎(chǔ)越重要,在重大的編程項(xiàng)目中應(yīng)用最廣泛。就我的個(gè)人理解,匯編是對(duì)寄存的地址以及數(shù)據(jù)單元進(jìn)行最直接的修改。而在某些時(shí)候,這種方法是最有效,最可靠的。比如,在當(dāng)今的戰(zhàn)爭(zhēng)中,首先就是運(yùn)用這方面的知識(shí)來修改地方的系統(tǒng)程序。讓地方的衛(wèi)星偏離軌道,從而不能發(fā)現(xiàn)目標(biāo)。其威力可見一斑。然而,事物總有兩面性,有優(yōu)點(diǎn)自然缺點(diǎn)也不少。其中,最重要的一點(diǎn)就是,匯編語言很復(fù)雜,對(duì)某個(gè)數(shù)據(jù)進(jìn)行修改時(shí),本來很簡(jiǎn)單的一個(gè)操作會(huì)用比較煩瑣的語言來解決,而這些語言本身在執(zhí)行和操作的過程中,占有大量的時(shí)間和成本。在一些講求效率的場(chǎng)合,并不可取。匯編語言對(duì)學(xué)習(xí)其他計(jì)算機(jī)起到一個(gè)比較、對(duì)照、參考的促進(jìn)作用。學(xué)習(xí)事物總

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論