微機原理課程設(shè)計報告_第1頁
微機原理課程設(shè)計報告_第2頁
微機原理課程設(shè)計報告_第3頁
微機原理課程設(shè)計報告_第4頁
微機原理課程設(shè)計報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

一、 設(shè)計要求(1) 南北路口的綠燈、東西路口的紅燈同時亮5秒。(2) 南北路口的黃燈閃爍若干次,維持3秒,同時東西路口的紅燈。(3) 南北路口的紅燈、東西路口的綠燈同時亮5秒。(4) 南北路口的紅燈、同時東西路口的黃燈亮爍若干次,維持3秒。(5) 轉(zhuǎn)⑴重復(fù)。(6) 緊急情況可以手動控制紅綠燈的變換。一個開關(guān)控制南北綠,東西紅,另一個按鈕南北紅,東西綠。(7) 黃燈閃爍時揚聲器發(fā)聲,提醒。二、 設(shè)計目的(1) 了解紅綠燈電路的基本工作原理;(2) 了解8086微型計算機的工作過程;(3) 學(xué)習(xí)8086CPU與外圍設(shè)備的接口技術(shù)。(4) 運用微機原理與接口技術(shù)、數(shù)字電路、匯編語言程序設(shè)計等課程學(xué)到的知識,掌握微型計算機接口的方法和原理,具備一定的微機應(yīng)用開發(fā)的實踐能力,加深對理論課程的理解。三、設(shè)計的具體實現(xiàn)原理框圖

3.1系統(tǒng)概述本次設(shè)計是模擬交通燈實時控制系統(tǒng),以8086CPU為核心加以并行接口芯片8255、可編程計數(shù)器/定時器8253、LED燈、開關(guān)等組成的系統(tǒng)。以LED燈模擬十字路口的紅綠燈。對交通燈控制的實現(xiàn)主要是通過編寫匯編語言程序?qū)?255的I/O及8253進行控制,從而實現(xiàn)對燈的亮與滅進行控制。PC口做輸入,讀取定時,及應(yīng)急開關(guān)狀態(tài)。用8253對揚聲器的發(fā)聲進行控制,利用軟件編程給定8253芯片某一頻率的方波信號,并且設(shè)定8255芯片的門控信號PB0=1,則可控制揚聲器發(fā)聲。利用8253的計數(shù)器1方式3、計數(shù)器0方式0實現(xiàn)對揚聲器的控制,以及對于交通燈亮滅時間的精確延時。3.28086CPU介紹8086由執(zhí)行部件和總線接口部件組成(內(nèi)部結(jié)構(gòu)圖如下圖)AHALBHBLCHCLDHDLSPBPDT ST 通用寄存器AXBXCXDX16AHALBHBLCHCLDHDLSPBPDT ST 通用寄存器AXBXCXDX16位8位 =[12也56C標(biāo)志運算寄存器內(nèi)部寄存器段寄存器指令隊列執(zhí)行部件(EU)[總線接口部件(BIU)O制路T±外部設(shè)備8086內(nèi)部結(jié)構(gòu)圖執(zhí)行部件EU由算術(shù)邏輯單元(ALU)、標(biāo)志寄存器、通用寄存器組和EUtt制器等部件組成。主要功能是執(zhí)行指令:一般順序執(zhí)行,EU不斷地從指令隊列中取指令連續(xù)執(zhí)行,而省去訪問存儲器取指令的時間。需要訪問存儲器取操作數(shù)時,EU將訪問地址送給BIU后,將要等待操作數(shù)到來后才能繼續(xù)操作;遇到轉(zhuǎn)移類指令時,要將指令隊列中的后續(xù)指令作廢,等待BIU重新從存儲器取出目標(biāo)地址中的指令代碼進入指令隊列后,EU才能繼續(xù)執(zhí)行指令。算術(shù)邏輯單元(ALU)完成16位或8位的二進制運算;16位暫存寄存器用來暫存參加運算的操作數(shù)。運算結(jié)果通過內(nèi)部總線送到通用寄存器組或BIU的內(nèi)部寄存器中等待寫入存儲器。經(jīng)ALU運算后的結(jié)果特征置入標(biāo)志寄存器中保存。負(fù)責(zé)從BIU的指令隊列中取指令,并對指令譯碼;據(jù)指令要求向EU內(nèi)部各部件發(fā)出控制命令以完成各條指令的功能??偩€接口部件BIU由地址加法器、專用寄存器組、指令隊列緩沖器和總線控制電路等部件組成;主要功能是形成訪問存儲器的物理地址,負(fù)責(zé)與外部(存儲器或I/O接口)打交道。(1) 指令隊列可存放6字節(jié)的指令代碼。一般情況下指令隊列中總是填滿指令,使EU可不斷地得到執(zhí)行的指令。(2) 16位地址加法器專門用來完成由邏輯地址變換成物理地址的功能。實際上是進行一次地址加法,將兩個16位的邏輯地址轉(zhuǎn)換為20位的物理地址,以達到可尋址1M字節(jié)的存儲空間。(3) 總線控制電路將8086CPU的內(nèi)部總線與外部總線相連,是8086CPU與外部交換數(shù)據(jù)的必經(jīng)之路。包括16條數(shù)據(jù)總線、20條地址總線和若干條控制總線。3.3可編程并行接口芯片82558255內(nèi)部結(jié)構(gòu)8255是Intel公司生產(chǎn)的可編程并行I/O接口芯片,有3個8位并行I/O口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。其各口功能可由軟件選擇,使用靈活,通用性強。8255可作為單片機與多種外設(shè)連接時的中間接口電路。8255作為主機與外設(shè)的連接芯片,必須提供與主機相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須具有與外設(shè)連接的接口A、B、C口。由于8255可編程,所

以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與CPU連接部分、與外設(shè)連接部分、控制部分。8255內(nèi)部結(jié)構(gòu)與CPU連接部分根據(jù)定義,8255能并行傳送8位數(shù)據(jù),所以其數(shù)據(jù)線為8根D0?D7。由于8255具有3個通道A、B、C,所以只要兩根地址線就能尋址A、B、C口及控制寄存器,故地址線為兩根A0?A1。此外CPU要對8255進行讀、寫與片選操作,所以控制線為片選、復(fù)位、讀、寫信號。各信號的引腳編號如下:數(shù)據(jù)總線DB:編號為D0?D7,用于8255與CPU傳送8位數(shù)據(jù)。(2)地址總線AB:編號為A0?A1,用于選擇A、B、C口與控制寄存器。(3)控制總線CB:片選信號、復(fù)位信號RESET、寫信號、讀信號。當(dāng)CPU要對8255進行讀、寫操作時,必須先向8255發(fā)片選信號選中8255芯片,然后發(fā)讀信號或?qū)懶盘枌?255進行讀或?qū)憯?shù)據(jù)的操作。與外設(shè)接口部分TOC\o"1-5"\h\z根據(jù)定義,8255有3個通道A、B、C日 二與外設(shè)連接,每個通道又有8根線與外設(shè)二 二連接,所以8255可以用24根線與外設(shè)連一二一一接,若進行開關(guān)量控制,則8255可同時二一 二控制24路開關(guān)。各通道的引腳編號如下:二 二A口:編號為PA0?PA7,用于二 二8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。 二 二B口:編號為PB0?PB7,用于二 二8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。 二 二C口:編號為PC0?PC7,用于一 一8255向外設(shè)輸入輸出8位并行數(shù)據(jù),當(dāng)二 二8255工作于應(yīng)答I/O方式時,C口用于應(yīng)「 一答信號的通信??刂破?255將3個通道分為兩組,即PA0?PA7與PC4?PC7組成A組,PB0?PB7與PC0?PC3組成B組。相應(yīng)的控制器也分為A組控制器與B組控制器,各組控制器的作用如下:A組控制器:控制A口與C口高四位的輸入與輸出。B組控制器:控制B口與C口低四位的輸入與輸出。3.3.2特性一個并行輸入/輸出的LSN芯片,多功能的N/O器件,可作為CPU總線與外圍的接口。具有24個可編程設(shè)置的N/O口,即3組8位的N/O口為PA口,PB口和PC口。它們又可分為兩組12位的N/O口,A組包括A口及C口(高4位,PC4~PC7),B組包括B口及C口(低4位,PC0~PC3)。A組可設(shè)置為基本輸入輸出、選通輸入輸出、雙向選通輸入/輸出;B組只能設(shè)置為基本輸入輸出或選通輸入輸出兩種模式,而這些操作模式完全由控制寄存器的控制字決定。3.3.3引腳功能RESET:復(fù)位信號輸入引腳,當(dāng)該輸入引腳處于高電平時,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有 N/O口均被置成輸入方式。&:芯片選擇信號線,當(dāng)這個輸入引腳為低電平時,即CS=0時,表示芯片被選中,允許8255與CPU進行通訊,CS=1時,8255無法與CPU做數(shù)據(jù)傳輸。RD:讀信號線,當(dāng)這個輸入引腳為低跳變沿時,即RD產(chǎn)生一個低脈沖且cs=0時,允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。WR:寫入信號,當(dāng)這個輸入引腳為低跳變沿時,即癡產(chǎn)生一個低脈沖且赤=0時,允許CPU將數(shù)據(jù)或控制字寫入8255。D0?D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU執(zhí)行輸入輸出指令時,通過它實現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。3.3.4工作方式8255具有3個相互獨立的輸入/輸出通道端口,用+5V單電源供電,能在以下三種方式下工作。方式0——基本輸入輸出方式;方式1——選通輸入/出方式;方式2——雙向選通輸入/輸出方式;PA0?PA7:端口A輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個8位的數(shù)據(jù)輸入鎖存器。工作于三種方式中的任何一種;PB0?PB7:端口B輸入輸出線,一個8位的N/O鎖存器,一個8位的輸入輸出緩沖器。 不能工作于方式2;PC0?PC7:端口C輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個8位的數(shù)據(jù)輸入緩沖器。端口C可以通過工作方式設(shè)定而分成2個4位的端口,每個4位的端口包含一個4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。不能工作于方式1或2。A1、A0:地址選擇線,用來選擇8255的PA口、PB口、PC口和控制寄存器。當(dāng)A1=0,A0=0時,PA口被選擇;當(dāng)A1=0,A0=1時,PB口被選擇;當(dāng)A1=1,A0=0時,PC口被選擇;當(dāng)A1=1,A0=1時,控制寄存器被選擇。3.48253可編程計數(shù)/定時器3.4.1基本概述Nntel8253是NMOS工藝制成的可編程計數(shù)器/定時器,有幾種芯片型號,外形引腳及功能都是兼容的,只是工作的最高計數(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ù)執(zhí)行部件CE和一個輸出鎖存器OL。執(zhí)行部件實際上是一個16位的減法計數(shù)器,它的起始值就是初值寄存器的值,而初始值寄存器OL用來鎖存計數(shù)執(zhí)行部件CE的內(nèi)容,從而使CPU可以對此進行讀操器的值是通過程序設(shè)置的。輸出鎖存器的值是通過程序設(shè)置的。輸出鎖存作。順便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器來用。8253內(nèi)部結(jié)構(gòu)RD―kWR—?RD―kWR—?A1—?&一CS—?讀/寫

控制

邏輯控制-字寄4存器w8253內(nèi)部結(jié)構(gòu)圖(1)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器與系統(tǒng)總線連接,8位雙向,與CPU交換信息的通道。這是8253與CPU之間的數(shù)據(jù)接口,它由8位雙向三態(tài)緩沖存儲器構(gòu)成,是CPU與8253之間交換信息的必經(jīng)之路。讀/寫控制讀/寫控制分別連接系統(tǒng)的航和兩,由CPU控制著訪問8253的內(nèi)部通道。接收CPU送入的讀/寫控制信號,并完成對芯片內(nèi)部各功能部件的控制功能,因此,它實際上是8253芯片內(nèi)部的控制器。A1A0:端口選擇信號由CPU輸入。8253內(nèi)部有3個獨立的通道,加上控制字寄存器,構(gòu)成8253芯片的4個端口,CPU可對3個通道進行讀/寫操作3對控制字寄存器進行寫操作。 這4個端口地址由最低2位地址碼A1A0來選擇,如表1所示。CSRDWRA1A0寄存器選擇和操作01000寫入計數(shù)器001001寫入計數(shù)器101010寫入計數(shù)器201011寫入控制寄存器00100讀計數(shù)器000101讀計數(shù)器100110讀計數(shù)器200111無操作(二態(tài))1****禁止(二態(tài))表1A1A0控制表通道選擇C——片選信號,由CPU輸入,低電平有效,通常由端口地址的高位地址譯碼形成。rd、W——讀/寫控制命令,由CPU輸入,低電平有效。RD效時,CPU讀取由A1、A0所選定的通道內(nèi)計數(shù)器的內(nèi)容。WR有效時,CPU將計數(shù)值寫入各個通道的計數(shù)器中,或者是將方式控制字寫入控制字寄存器中。3.4.4計數(shù)通道0?2每個計數(shù)通道內(nèi)含1個16位的初值寄存器、減1計數(shù)器和1個16位的(輸出)鎖存器。8253內(nèi)部包含3個功能完全相同的通道,每個通道內(nèi)部設(shè)有一個16位計數(shù)器,可進行二進制或十進制(BCD碼)計數(shù)。采用二進制計數(shù)時,寫入的初值范圍為0000H?FFFFH,最大計數(shù)值是FFFFH,代表65536。采用BCD碼計數(shù)時,寫入的初值范圍為0000?9999,最大計數(shù)值是9999,代表10000。與此計數(shù)器相對應(yīng),每個通道內(nèi)設(shè)有一個16位計數(shù)值鎖存器。必要時可用來鎖存計數(shù)值。當(dāng)某通道用作計數(shù)器時,應(yīng)將要求計數(shù)的次數(shù)預(yù)置到該通道的計數(shù)器中、被計數(shù)的事件應(yīng)以脈沖方式從CLK端輸入,每輸入一個計數(shù)脈沖,計數(shù)器內(nèi)容減“1”,待計數(shù)值計到“0”。OUT端將有輸出。表示計數(shù)次數(shù)到。當(dāng)某個通道用作定時器時。由CLK輸入一定頻率的時鐘脈沖。根據(jù)要求定時的時間長短確定所需的計數(shù)值。并預(yù)置到計數(shù)器中,每輸入一個時鐘脈沖,計數(shù)器內(nèi)容減“1”, 待計數(shù)值計到“0”。OUT將有輸出,表示定時時間到。允許從CLK輸入的時鐘頻在1?2MHz范圍內(nèi)。因此,任一通道作計數(shù)器用或作定時器用,其內(nèi)部操作完全相同,區(qū)別僅在于前者是由計數(shù)脈沖進行減“1”計數(shù)。而后者是內(nèi)時鐘脈沖進行減“1”計數(shù)。作計數(shù)器時,要求計數(shù)的次數(shù)可直接作為計數(shù)器的初值預(yù)置到減“1”計數(shù)器中。作定時器時, 計數(shù)器的初值即定時系數(shù)應(yīng)根據(jù)要求定時的時間進行如下運算才能得到:定時系數(shù)二需要定時的時間/時鐘脈沖周期設(shè)置通道:向方式控制字寄存器端口寫入方式選擇控制字,用于確定要設(shè)置的通道及工作方式;計數(shù)/定時:向通道寫入計數(shù)值,啟動計數(shù)操作;讀取當(dāng)前的計數(shù)值:向指定通道讀取當(dāng)前計數(shù)器值時,8253將計數(shù)器值存入鎖存器,從鎖存器向外提供當(dāng)前的計數(shù)器值,計數(shù)器則繼續(xù)作計數(shù)操作。計數(shù)到:當(dāng)計數(shù)器減1為0時,通過引腳OUTn向外輸出脈沖信號。計數(shù)初值輸入存放在初值寄存器中,計數(shù)開始或重裝入時被復(fù)制到計數(shù)器中。3.4.58253的通道工作方式8253中各通道可有6種可供選擇的工作方式,以完成定時、計數(shù)或脈沖發(fā)生器等多種功能。8253的各種工作方式如下:(1) 方式0:計數(shù)結(jié)束則中斷(2) 方式1:可重復(fù)觸發(fā)單脈沖發(fā)生器(3) 方式2:速率波發(fā)生器(4) 方式3:方波發(fā)生器(5) 方式4:軟件觸發(fā)方式計數(shù)(6) 方式5:硬件觸發(fā)方式計數(shù)在上述各工作方式中,GATE作為各通道的門控信號,對于各種不同的工作方式,它所起的作用各不相同。在 8253的應(yīng)用中,必須正確使用GATE信號,才能保證各通道的正常操作。3.3.6讀取計數(shù)器的當(dāng)前值⑴直接讀計數(shù)器:輸出鎖存器在非鎖存狀態(tài)會跟隨計數(shù)器計數(shù)的變化而變化,直接讀計數(shù)器是從鎖存器得到計數(shù)器的當(dāng)前值。但由于計數(shù)器處于工作狀態(tài),讀出值不一定能穩(wěn)定。⑵先鎖存再讀?。孩偻ㄟ^方式選擇控制字對指定通道(SC1、SC0)的計數(shù)值鎖入鎖存器(RL1RL0=00),鎖存器一旦鎖存了當(dāng)前計數(shù)值,就不再隨計數(shù)器變化直到被讀取。②讀計數(shù)器通道(有鎖存器)。3.58284始終發(fā)生器/驅(qū)動器在8086CPU內(nèi)部沒有有時時鐘發(fā)生器,當(dāng)組成微型機系統(tǒng)時,所需的時鐘信號由外部時鐘發(fā)生器提供。8284是專門為8086設(shè)計的時鐘發(fā)生器/驅(qū)動器。在8284中,不僅有時鐘信號發(fā)生器,還有復(fù)位信號RESET和準(zhǔn)備好信號READY產(chǎn)生電路,這些電路分別向8086系統(tǒng)提供時鐘信號CLK,復(fù)位信號RESET和準(zhǔn)備好信號READY,還可向外界提供晶振信號OSC以及外圍芯片所需的時鐘信號PCLK。3.5.18284的引腳8284是雙列直插式18腳組件,其引腳分配如下圖所示。其功能為:X1,X2:晶振輸入端。ASYNC:READY同步選擇輸入。ASYNC信號決定READY的同 步方式。當(dāng)ASYNC為低電平時, 提供兩級READY同步,若ASYNC — 為高電平時,提供一級READY同步。 EFI:外來時鐘輸入端。當(dāng) " F/C接高電平時,由EFI端輸入 —外來時鐘。輸入時鐘信號的頻二 二率為系統(tǒng)時鐘CLK的三倍。 F/C:時鐘源選擇輸入端。若F/C接低電平,則系統(tǒng)時鐘CLK由晶體振蕩器產(chǎn)生;若F/C接高電平,則CLK由外來時鐘產(chǎn)生。OSC:晶振輸出端。輸出頻率為晶振頻率,TTC電平。CLK:提供給整個計算機系統(tǒng)的時鐘信號,所以稱為系統(tǒng)時鐘。CLK的頻率是晶體震蕩器頻率或EFI端輸入頻率1/3,占空比為33%。PCLK:為外設(shè)提供的輸出時鐘信號,頻率是CLK的1/2,占空比為50%。RES:復(fù)位輸入端,低電平有效。用于產(chǎn)生8086的RESET信號。由于8284內(nèi)部具有斯密特整形電路,因此RES可以是緩慢變化的脈沖信號,它經(jīng)8284內(nèi)部電路整形而獲得較陡的復(fù)位信號RESET。RESET:提供給8086及整個系統(tǒng)的復(fù)位信號,高電平有效,其寬度由RES決定。AEN1,AEN2:對應(yīng)RDY1,RDY2的允許控制信號,低電平有效。當(dāng)AEN1為低電平時,RDY1起作用,AEN2為低電平時,RDY2起作用。在單CPU系統(tǒng)中AEN應(yīng)接低電平,在多系統(tǒng)中,用這兩個信號。RDY1,RDY2:RDY高電平有效的輸入信號??捎上到y(tǒng)總線的設(shè)備產(chǎn)生,它有效表示數(shù)據(jù)已收到或數(shù)據(jù)可以使用。CSYNC:同步輸入信號。用來使多個8284同步,以提供同步的CLK信號。CSYNC為高電平時,內(nèi)部計數(shù)器復(fù)位;CSYNC為低電平時,才允許內(nèi)部計數(shù)器計數(shù)。3.6軟件程序設(shè)計硬件電路連接見附圖3.6.1功能流程圖3.6.2東西、南北方向的紅黃綠的控制表東西南北傳送狀態(tài)紅黃綠紅黃綠PA7PA6PA5PA4PA3PA2PA1PA000100100南北紅亮,東西綠亮01000100南北紅亮,東西黃亮00000100南北紅亮,東西黃*10000001東西紅亮,南北綠亮10000010東西紅亮,南北黃亮10000000東西紅亮,南北黃*00100100強制南北紅燈東西綠燈10000001強制東西紅燈南北綠燈3.6.3源程序DATASEGMENTTOC\o"1-5"\h\zIO8255A EQU 280HIO8255B EQU 281HIO8255C EQU 282HIO8255ctEQU283HIO8253_0 EQU 290HIO8253_1 EQU 291HIO8253ct EQU 293HLEDDB24H,2DUP(44H,04H);六個燈可能(綠紅、黃紅、*紅)DB81H,2DUP(82H,80H);的狀態(tài)數(shù)據(jù)(紅綠、紅黃、紅*)DB0FFH ;結(jié)束標(biāo)志BCDB? ;用于保存燈的狀態(tài)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,IO8255ctMOVAL,81H

OUTDX,AL;設(shè)置8255A、B輸出,C口低四位輸入MOVDX,IO8253ct;計數(shù)器1、先讀/寫低八;位后讀/寫高八位、方式3、OUT1產(chǎn)生方波MOVAL,76HOUTDX,ALMOVAX,100;通道1與蜂鳴器相連MOVDX,IO8253_1OUTDX,ALMOVAL,AHOUTDX,ALNEXT:MOVBX,0NEXT1:MOVDX,IO8255AMOVAL,LED[BX]CMPAL,0FFHJZNEXTOUTDX,AL;點亮相應(yīng)的燈MOVBC,AL;保存AL為下面的比較做準(zhǔn)備INCBXMOVCX,300;短延時CX值TESTAL,21H;是否有綠燈亮,東西南北任一方有綠燈JZDELAY1;沒有,跳轉(zhuǎn)至短延時DELAY1MOVCX,500;有,長延時MOVDX,IO8255B;屏蔽蜂鳴器MOVAL,00HOUTDX,AL;檢測開關(guān)的狀態(tài)程序DELAY1:MOVDX,IO8255C;開關(guān)是硬開關(guān),按卜去不;能自動彈起,需人工INAL,DX;檢測開關(guān)狀態(tài)TESTAL,03H;檢測K0,K1狀態(tài)JZDELAY2;開關(guān)狀態(tài)為00,延時MOVDX,IO8255B;開關(guān)按卜,屏蔽蜂鳴器MOVAL,00HOUTDX,AL

TESTBC,21HJNZDELAY;有綠燈亮MOVDX,IO8255B;沒有綠燈亮MOVAL,01H;有黃燈,蜂鳴器發(fā)聲OUTDX,ALMOVDX,IO8253ct;重新延時計數(shù)器0方式0MOVAL,30H;計數(shù)器0、讀/寫低DELAY2DELAY:;八位后讀/寫高位方式0、二進制計數(shù)K0:K1:MOVDX,IO8255CIN AL,DXTESTAL,03HJZ DELAY2K0:K1:MOVDX,IO8255CIN AL,DXTESTAL,03HJZ DELAY2TESTAL,01HJZK1MOVDX,IO8255AMOVAL,81H;讀PC0和PC1的狀態(tài);檢測是否有開關(guān)按下;沒有開關(guān)按下,延時;檢測開關(guān)K0是否按下;開關(guān)K0斷開開關(guān)K0按下;強制東西紅燈,南北綠燈MOVDX,IO8255CINAL,DXTESTAL,02H;檢測開關(guān)K1是否按下JZDELAY2;開關(guān)K1斷開MOVDX,IO8255A;開關(guān)K1按下MOVAL,24H;強制南北紅燈,東西綠燈OUTDX,ALJMPDELAY1;返回DELAY1重新檢測開關(guān)的狀態(tài)OUTDX,ALJMPDELAY1;返回DELAY1重新檢測開關(guān)的狀態(tài)OUTDX,ALMOVAX,10000;周期為0.01秒MOVDX,IO8253_0OUTDX,ALMOVAL,AHOUTDX,ALMOVDX,IO8255C;延時判斷INAL,DXWAIT:TESTAL,04HJZWAIT ;PC2為0則計數(shù)還;未結(jié)束,繼續(xù)檢測為1則計數(shù)結(jié)束,時間為0.01SLOOPDELAY1;CX=CX-1,當(dāng)CX等;于0時,順序執(zhí)行JMPNEXT1 ;沒有,轉(zhuǎn)到NEXT1CODEENDSENDSTART通過利用8255并行接口芯片口、8253定時/計數(shù)器芯片、LED發(fā)光二極管、開關(guān)以及揚聲器,實現(xiàn)了對交通信號的燈控制系統(tǒng)的模擬。此程序可實現(xiàn)東西方向綠燈亮,南北方向紅燈亮;5秒后東西方向綠燈滅,東西方向的黃燈閃爍和南北方向的紅燈保持;3秒后東西方向紅燈亮,南北方向綠燈亮;5秒后南北方向綠燈滅,東西方向的紅燈和南北方向的黃燈閃爍;3秒后東西方向綠燈亮,南北方向紅燈亮,依次循環(huán)。此程序可根據(jù)不同的設(shè)計要求,調(diào)節(jié)周期時間或者是CX初值,從而實現(xiàn)對交通燈的亮滅時間長短的控制。同時在特殊情況下,可人為操作強制改變交通燈的狀態(tài)。本系統(tǒng)實現(xiàn)了交通燈自動變換的基本功能,并通過揚聲器提醒燈的轉(zhuǎn)換,使系統(tǒng)更人性化。利用編程給定8253芯片某一頻率的方波信號,控制揚聲器發(fā)聲。并利用8253的方式0工作方式,在計數(shù)期間,輸出OUT始終為低電平,實現(xiàn)了LED發(fā)光二極管的亮滅的精確延時。四、心得體會經(jīng)過近兩個星期的努力,我們完成了紅綠燈控制系統(tǒng)的設(shè)計。本次設(shè)計對我們學(xué)習(xí)的知識的做了一個檢驗,培養(yǎng)了我們的動手能力以及獨立思考設(shè)計的能力,也是大學(xué)培養(yǎng)的一個重要實踐步驟。設(shè)計初期,我們通過網(wǎng)絡(luò)、圖書館等資源查找到利用微機原理與接口技術(shù)設(shè)計制作交通燈的相關(guān)信息,對不同的方案進行細(xì)致的分析比較。并且進行改進,使之符合要求。然后按照設(shè)計的電路圖進行連線,最終做出一個簡單的交通燈。制作過程中發(fā)現(xiàn)的一些問題,經(jīng)過我們小組成員間的相互討論,尋求同學(xué)的指導(dǎo),終于把自己發(fā)覺不到的問題找出來了,并將其解決。在設(shè)計的過程中遇到很多困難,但是毫不松懈的堅持堅持到最后。此次設(shè)計鞏固了前期所學(xué)的理論知識,增強了動手實踐能力。通過設(shè)計我們熟悉了一個實際項目的設(shè)計過程,更鍛煉了自己的動手實踐能力。在設(shè)計的過程中,對8253芯片和8255芯片有了更深刻的知識,掌握了并行口如何處理數(shù)據(jù)的輸入輸出等。在此之前做的實驗都是簡單的編程,跟硬件結(jié)合沒有這么復(fù)雜,實現(xiàn)的功能都比較簡單,可是這次要實現(xiàn)的功能相對來說比較復(fù)雜,要求掌握的知識比較綜合。在設(shè)計期間學(xué)到了很多新的東西,極大地拓寬了知識面,提高了我們的綜合素質(zhì),受益匪淺。最后希望

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論