版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 一、設(shè)計要求</b></p><p> (1)南北路口的綠燈、東西路口的紅燈同時亮5秒。</p><p> (2)南北路口的黃燈閃爍若干次,維持3秒,同時東西路口的紅燈。</p><p> (3)南北路口的紅燈、東西路口的綠燈同時亮5秒。</p><p> (4)南北路口的紅燈、同時
2、東西路口的黃燈亮爍若干次,維持3秒。</p><p> ?。?)轉(zhuǎn)(1)重復(fù)。</p><p> ?。?)緊急情況可以手動控制紅綠燈的變換。一個開關(guān)控制南北綠,東西紅,另一個按鈕南北紅,東西綠。</p><p> (7)黃燈閃爍時揚聲器發(fā)聲,提醒。</p><p><b> 二、設(shè)計目的</b></p>
3、<p> ?。?)了解紅綠燈電路的基本工作原理;</p><p> ?。?)了解8086微型計算機的工作過程;</p><p> ?。?)學習8086CPU與外圍設(shè)備的接口技術(shù)。</p><p> ?。?)運用微機原理與接口技術(shù)、數(shù)字電路、匯編語言程序設(shè)計等課程學到的知識,掌握微型計算機接口的方法和原理,具備一定的微機應(yīng)用開發(fā)的實踐能力,加深對理論課程的
4、理解。</p><p><b> 三、設(shè)計的具體實現(xiàn)</b></p><p><b> 原理框圖</b></p><p><b> 3.1系統(tǒng)概述本</b></p><p> 次設(shè)計是模擬交通燈實時控制系統(tǒng),以8086CPU為核心加以并行接口芯片8255、可編程計數(shù)器/
5、定時器8253、LED燈、開關(guān)等組成的系統(tǒng)。以LED燈模擬十字路口的紅綠燈。對交通燈控制的實</p><p> 現(xiàn)主要是通過編寫匯編語言程序?qū)?255的I/O及8253進行控制,從而實現(xiàn)對燈的亮與滅進行控制。</p><p> PC口做輸入,讀取定時,及應(yīng)急開關(guān)狀態(tài)。</p><p> 用8253對揚聲器的發(fā)聲進行控制,利用軟件編程給定8253芯片某一頻率的方
6、波信號,并且設(shè)定8255芯片的門控信號PB0 =1,則可控制揚聲器發(fā)聲。</p><p> 利用8253的計數(shù)器1方式3、計數(shù)器0方式0實現(xiàn)對揚聲器的控制,以及對于交通燈亮滅時間的精確延時。 </p><p> 3.2 8086CPU介紹</p><p> 8086由執(zhí)行部件和總線接口部件組成(內(nèi)部結(jié)構(gòu)圖如下圖)</p><p>&l
7、t;b> 8086內(nèi)部結(jié)構(gòu)圖</b></p><p><b> 1. 執(zhí)行部件EU</b></p><p> 由算術(shù)邏輯單元(ALU)、標志寄存器、通用寄存器組和EU控制器等部件組成。</p><p> 主要功能是執(zhí)行指令:一般順序執(zhí)行,EU不斷地從指令隊列中取指令連續(xù)執(zhí)行,而省去訪問存儲器取指令的時間。需要訪問存儲器
8、取操作數(shù)時,EU將訪問地址送給BIU后,將要等待操作數(shù)到來后才能繼續(xù)操作;遇到轉(zhuǎn)移類指令時,要將指令隊列中的后續(xù)指令作廢,等待BIU重新從存儲器取出目標地址中的指令代碼進入指令隊列后,EU才能繼續(xù)執(zhí)行指令。 </p><p> 算術(shù)邏輯單元(ALU)完成16位或8位的二進制運算;16位暫存寄存器用來暫存參加運算的操作數(shù)。運算結(jié)果通過內(nèi)部總線送到通用寄存器組或BIU的內(nèi)部寄存器中等待寫入存儲器。經(jīng)ALU運算后的結(jié)
9、果特征置入標志寄存器中保存。負責從BIU的指令隊列中取指令,并對指令譯碼;據(jù)指令要求向EU內(nèi)部各部件發(fā)出控制命令以完成各條指令的功能。</p><p> 2. 總線接口部件BIU</p><p> 由地址加法器、專用寄存器組、指令隊列緩沖器和總線控制電路等部件組成;主要功能是形成訪問存儲器的物理地址,負責與外部(存儲器或I/O接口)打交道。</p><p>&l
10、t;b> ?。?)指令隊列</b></p><p> 可存放6字節(jié)的指令代碼。一般情況下指令隊列中總是填滿指令,使EU可不斷地得到執(zhí)行的指令。</p><p> ?。?)16位地址加法器</p><p> 專門用來完成由邏輯地址變換成物理地址的功能。實際上是進行一次地址加法,將兩個16位的邏輯地址轉(zhuǎn)換為20位的物理地址,以達到可尋址1M字節(jié)的存
11、儲空間。</p><p><b> ?。?)總線控制電路</b></p><p> 將8086CPU的內(nèi)部總線與外部總線相連,是8086CPU與外部交換數(shù)據(jù)的必經(jīng)之路。包括16條數(shù)據(jù)總線、20條地址總線和若干條控制總線。</p><p> 3.3 可編程并行接口芯片8255</p><p> 3.3.1 8255內(nèi)
12、部結(jié)構(gòu)</p><p> 8255是Intel公司生產(chǎn)的可編程并行I/O接口芯片,有3個8位并行I/O口。具有3個通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強。8255可作為單片機與多種外設(shè)連接時的中間接口電路。</p><p> 8255作為主機與外設(shè)的連接芯片,必須提供與主機相連的3個總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時必須
13、具有與外設(shè)連接的接口A、B、C口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個部分:與CPU連接部分、與外設(shè)連接部分、控制部分。</p><p><b> 8255內(nèi)部結(jié)構(gòu)</b></p><p> 1. 與CPU連接部分 </p><p> 根據(jù)定義,8255能并行傳送8位數(shù)據(jù),所以其數(shù)據(jù)線為8根D0~D7
14、。由于8255具有3個通道A、B、C,所以只要兩根地址線就能尋址A、B、C口及控制寄存器,故地址線為兩根A0~A1。此外CPU要對8255進行讀、寫與片選操作,所以控制線為片選、復(fù)位、讀、寫信號。各信號的引腳編號如下: </p><p> ?。?)數(shù)據(jù)總線DB:編號為D0~D7,用于8255與CPU傳送8位數(shù)據(jù)。 </p><p> ?。?)地址總線AB:編號為A0~A1,用于選擇A、B、
15、C口與控制寄存器。 </p><p> ?。?)控制總線CB:片選信號、復(fù)位信號RESET、寫信號、讀信號。當CPU要對8255進行讀、寫操作時,必須先向8255發(fā)片選信號選中8255芯片,然后發(fā)讀信號或?qū)懶盘枌?255進行讀或?qū)憯?shù)據(jù)的操作。</p><p> 2. 與外設(shè)接口部分 </p><p> 根據(jù)定義,8255有3個通道A、B、C與外設(shè)連接,每個通道又
16、有8根線與外設(shè)連接,所以8255可以用24根線與外設(shè)連接,若進行開關(guān)量控制,則8255可同時控制24路開關(guān)。各通道的引腳編號如下: </p><p> ?。?)A口:編號為PA0~PA7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。 </p><p> (2)B口:編號為PB0~PB7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。 </p><p> ?。?)C口:編號為
17、PC0~PC7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù),當8255工作于應(yīng)答I/O方式時,C口用于應(yīng)答信號的通信。 </p><p><b> 3. 控制器 </b></p><p> 8255將3個通道分為兩組,即PA0~PA7與PC4~PC7組成A組,PB0~PB7與PC0~PC3組成B組。相應(yīng)的控制器也分為A組控制器與B組控制器,各組控制器的作用如下: &l
18、t;/p><p> (1)A組控制器:控制A口與C口高四位的輸入與輸出。 </p><p> ?。?)B組控制器:控制B口與C口低四位的輸入與輸出。 </p><p><b> 3.3.2 特性</b></p><p> (1)一個并行輸入/輸出的LSN芯片,多功能的N/O器件,可作為CPU總線與外圍的接口。</
19、p><p> (2)具有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è)置為基本輸入輸出或選通輸入輸出兩種模式,而這些操作模式完全由控制寄存器的控制字決定。</p><p>
20、;<b> 3.3.3引腳功能</b></p><p> RESET:復(fù)位信號輸入引腳,當該輸入引腳處于高電平時,所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有N/O口均被置成輸入方式。 </p><p> :芯片選擇信號線,當這個輸入引腳為低電平時,即=0時,表示芯片被選中,允許8255與CPU進行通訊,=1時,8255無法與CPU做數(shù)據(jù)傳輸。</p&g
21、t;<p> :讀信號線,當這個輸入引腳為低跳變沿時,即產(chǎn)生一個低脈沖且=0時,允許8255通過數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)信息,即CPU從8255讀取信息或數(shù)據(jù)。 </p><p> :寫入信號,當這個輸入引腳為低跳變沿時,即產(chǎn)生一個低脈沖且=0時,允許CPU將數(shù)據(jù)或控制字寫入8255。 </p><p> D0~D7:三態(tài)雙向數(shù)據(jù)總線,8255與CPU數(shù)據(jù)傳送的通
22、道,當CPU 執(zhí)行輸入輸出指令時,通過它實現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。 </p><p> 3.3.4 工作方式</p><p> 8255具有3個相互獨立的輸入/輸出通道端口,用+5V單電源供電,能在以下三種方式下工作。 </p><p> 方式0——基本輸入輸出方式;方式1——選通輸入/出方式;方式2——雙向選通輸入/輸出方
23、式; </p><p> PA0~PA7:端口A輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個8位的數(shù)據(jù)輸入鎖存器。 工作于三種方式中的任何一種; </p><p> PB0~PB7:端口B輸入輸出線,一個8位的N/O鎖存器, 一個8位的輸入輸出緩沖器。 不能工作于方式2; </p><p> PC0~PC7:端口C輸入輸出線,一個8位的數(shù)據(jù)輸出鎖存器/
24、緩沖器, 一個8位的數(shù)據(jù)輸入緩沖器。端口C可以通過工作方式設(shè)定而分成2個4位的端口, 每個4位的端口包含一個4位的鎖存器,分別與端口A和端口B配合使用,可作為控制信號輸出或狀態(tài)信號輸入端口。不能工作于方式1或2。 </p><p> A1、A0:地址選擇線,用來選擇8255的PA口、PB口、PC口和控制寄存器。</p><p> 當A1=0,A0=0時,PA口被選擇; </p&g
25、t;<p> 當A1=0,A0=1時,PB口被選擇; </p><p> 當A1=1,A0=0時,PC口被選擇; </p><p> 當A1=1,A0=1時,控制寄存器被選擇。</p><p> 3.4 8253可編程計數(shù)/定時器</p><p> 3.4.1 基本概述</p><p> Nn
26、tel8253是NMOS工藝制成的可編程計數(shù)器/定時器,有幾種芯片型號,外形引腳及功能都是兼容的,只是工作的最高計數(shù)速率有所差異,例如8253(2.6MHz),8253-5(5MHz) </p><p> 8253內(nèi)部有三個計數(shù)器,分別成為計數(shù)器0、計數(shù)器1和計數(shù)器2,他們的機構(gòu)完全相同。每個計數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制字,互相之間工作完全獨立。每個計數(shù)器通過三個引腳和外部聯(lián)系,一個為時鐘
27、輸入端CLK,一個為門控信號輸入端GATE,另一個為輸出端OUT。每個計數(shù)器內(nèi)部有一個8位的控制寄存器,還有一個16位的計數(shù)初值寄存器CR、一個計數(shù)執(zhí)行部件CE和一個輸出鎖存器OL。 </p><p> 執(zhí)行部件實際上是一個16位的減法計數(shù)器,它的起始值就是初值寄存器的值,而初始值寄存器OL用來鎖存計數(shù)執(zhí)行部件CE的內(nèi)容,從而使CPU可以對此進行讀操器的值是通過程序設(shè)置的。輸出鎖存器的值是通過程序設(shè)置的。輸出鎖
28、存作。順便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器來用。 </p><p> 3.4.2 8253內(nèi)部結(jié)構(gòu) </p><p> (1)數(shù)據(jù)總線緩沖器 </p><p> 數(shù)據(jù)總線緩沖器與系統(tǒng)總線連接,8位雙向,與CPU交換信息的通道。這是8253與CPU之間的數(shù)據(jù)接口,它由8位雙向三態(tài)緩沖存儲器構(gòu)成,是CPU與8253之間交換信息的必
29、經(jīng)之路。 </p><p> ?。?)讀/寫控制讀/寫控制分別連接系統(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個端口地址由
30、最低2位地址碼A1A0來選擇,如表1所示。</p><p> 3.4.3 通道選擇 </p><p> (1) ——片選信號,由CPU輸入,低電平有效,通常由端口地址的高位地址譯碼形成。 </p><p> (2) 、——讀/寫控制命令,由CPU輸入,低電平有效。效時,CPU讀取由A1、A0所選定的通道內(nèi)計數(shù)器的內(nèi)容。有效時,CPU將計數(shù)值寫入各個通道的計數(shù)
31、器中,或者是將方式控制字寫入控制字寄存器中。</p><p> 3.4.4 計數(shù)通道0~2 </p><p> 每個計數(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,代
32、表65536。采用BCD碼計數(shù)時,寫入的初值范圍為0000~9999,最大計數(shù)值是9999,代表10000。與此計數(shù)器相對應(yīng),每個通道內(nèi)設(shè)有一個16位計數(shù)值鎖存器。必要時可用來鎖存計數(shù)值。</p><p> 當某通道用作計數(shù)器時,應(yīng)將要求計數(shù)的次數(shù)預(yù)置到該通道的計數(shù)器中、被計數(shù)的事件應(yīng)以脈沖方式從CLK端輸入, 每輸入一個計數(shù)脈沖,計數(shù)器內(nèi)容減“1”,待計數(shù)值計到“0”。 OUT端將有輸出。表示計數(shù)次數(shù)到。當某
33、個通道用作定時器時。 由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ù)器的初
34、值預(yù)置到減“1”計數(shù)器中。作定時器時, 計數(shù)器的初值即定時系數(shù)應(yīng)根據(jù)要求定時的時間進行如下運算才能得到: </p><p> 定時系數(shù)=需要定時的時間/時鐘脈沖周期 </p><p> ?、僭O(shè)置通道:向方式控制字寄存器端口寫入方式選擇控制字,用于確定要設(shè)置的通道及工作方式;</p><p> ?、谟嫈?shù)/定時:向通道寫入計數(shù)值,啟動計數(shù)操作; </p>
35、<p> ?、圩x取當前的計數(shù)值:向指定通道讀取當前計數(shù)器值時,8253將計數(shù)器值存入鎖存器,從鎖存器向外提供當前的計數(shù)器值,計數(shù)器則繼續(xù)作計數(shù)操作。 </p><p> ?、苡嫈?shù)到:當計數(shù)器減1為0時,通過引腳OUTn向外輸出脈沖信號。 </p><p> 計數(shù)初值輸入存放在初值寄存器中,計數(shù)開始或重裝入時被復(fù)制到計數(shù)器中。 </p><p> 3.
36、4.5 8253的通道工作方式 </p><p> 8253中各通道可有6種可供選擇的工作方式,以完成定時、計數(shù)或脈沖發(fā)生器等多種功能。8253的各種工作方式如下:</p><p> ?。?)方式0:計數(shù)結(jié)束則中斷</p><p> ?。?)方式1:可重復(fù)觸發(fā)單脈沖發(fā)生器</p><p> ?。?)方式2:速率波發(fā)生器</p>
37、<p> (4)方式3:方波發(fā)生器</p><p> ?。?)方式4:軟件觸發(fā)方式計數(shù)</p><p> ?。?)方式5:硬件觸發(fā)方式計數(shù)</p><p> 在上述各工作方式中,GATE作為各通道的門控信號,對于各種不同的工作方式,它所起的作用各不相同。在8253的應(yīng)用中,必須正確使用GATE信號,才能保證各通道的正常操作。 </p>
38、<p> 3.3.6讀取計數(shù)器的當前值 </p><p> ⑴直接讀計數(shù)器:輸出鎖存器在非鎖存狀態(tài)會跟隨計數(shù)器計數(shù)的變化而變化,直接讀計數(shù)器是從鎖存器得到計數(shù)器的當前值。但由于計數(shù)器處于工作狀態(tài),讀出值不一定能穩(wěn)定。 </p><p> ?、葡孺i存再讀?。孩偻ㄟ^方式選擇控制字對指定通道(SC1、SC0)的計數(shù)值鎖入鎖存器(RL1RL0=00), 鎖存器一旦鎖存了當前計數(shù)值,
39、就不再隨計數(shù)器變化直到被讀取。②讀計數(shù)器通道(有鎖存器)。</p><p> 3.5 8284始終發(fā)生器/驅(qū)動器</p><p> 在8086CPU內(nèi)部沒有有時時鐘發(fā)生器,當組成微型機系統(tǒng)時,所需的時鐘信號由外部時鐘發(fā)生器提供。 8284是專門為8086設(shè)計的時鐘發(fā)生器/驅(qū)動器。在8284中,不僅有時鐘信號發(fā)生器,還有復(fù)位信號RESET和 準備好信號READY產(chǎn)生電路,這些電路分別向
40、8086系統(tǒng)提供時鐘信號CLK,復(fù)位信號RESET和準備好信號READY ,還可向外界提供晶振信號OSC以及外圍芯片所需的時鐘信號PCLK?!?lt;/p><p> 3.5.1 8284的引腳 8284是雙列直插式18腳組件,其引腳分配如下圖所示。其功能為: X1,X2:晶振輸入端。 ASYNC:READY同步選擇輸入。ASYNC信號決定READY的同步方式。當ASYNC為低電平時,提供兩級READ
41、Y同步 ,若ASYNC為高電平時,提供一級READY同步?! FI:外來時鐘輸入端。當F/C接高電平時,由EFI端輸入外來時鐘。 輸入時鐘信號的頻率為系統(tǒng)時鐘CLK的三倍。 F/C:時鐘源選擇輸入端。若F/C 接低電平,則系統(tǒng)時鐘CLK由晶體振蕩器產(chǎn)生;若F/C接高電平,則CLK 由外來時鐘產(chǎn)生?! SC:晶振輸出端。輸出頻率為晶振頻率,TTC電平?! LK:提供給整個計算機系統(tǒng)的時鐘信號,所以稱為系統(tǒng)時鐘。CLK的頻率
42、是晶體震蕩器頻率或EFI端輸入頻率 1/3,占空比為33%?! CLK:為外設(shè)提供的輸出時鐘信號,頻率是CLK的1/2,占空比為50%。 RES:復(fù)位輸入端,低電平有效。用于產(chǎn)生8086的RESET信號。由于8284 內(nèi)部具有斯密特整形電路,因此RES可以是緩慢變化的脈沖信號,它經(jīng) 8284內(nèi)部電路整形</p><p><b> 3.6軟件程序設(shè)計</b></p>&
43、lt;p><b> 硬件電路連接見附圖</b></p><p> 3.6.1 功能流程圖</p><p> 3.6.2 東西、南北方向的紅黃綠的控制表</p><p><b> 3.6.3 源程序</b></p><p> DATA SEGMENT</p><
44、p> IO8255A EQU 280H</p><p> IO8255B EQU 281H</p><p> IO8255C EQU 282H</p><p> IO8255ct EQU 283H</p><p> IO8253_0 EQU 290H<
45、/p><p> IO8253_1 EQU 291H</p><p> IO8253ct EQU 293H</p><p> LED DB 24H,2 DUP(44H,04H) ;六個燈可能(綠紅、黃紅、*紅)</p><p> DB 81H,2 DUP(82H,80H) ;的狀態(tài)數(shù)據(jù)(紅綠、紅黃、紅*)&
46、lt;/p><p> DB 0FFH ;結(jié)束標志</p><p> BC DB ? ;用于保存燈的狀態(tài)</p><p><b> DATA ENDS</b></p><p> CODE SEGMENT&l
47、t;/p><p> ASSUME CS:CODE,DS:DATA</p><p> START: MOV AX,DATA</p><p> MOV DS,AX</p><p> MOV DX,IO8255ct</p><p> MOV AL,81H</p><p> OU
48、T DX,AL ;設(shè)置8255 A、B輸出,C口低四位輸入</p><p> MOV DX,IO8253ct ;計數(shù)器1、先讀/寫低八 </p><p> ;位后讀/寫高八位、方式3、OUT1產(chǎn)生方波</p><p> MOV AL,76H </p><p> OUT
49、 DX,AL</p><p> MOV AX,100 ;通道1與蜂鳴器相連</p><p> MOV DX,IO8253_1 </p><p> OUT DX,AL</p><p> MOV AL,AH</p><p> OUT DX,
50、AL</p><p> NEXT: MOV BX,0</p><p> NEXT1: MOV DX,IO8255A</p><p> MOV AL,LED[BX]</p><p> CMP AL,0FFH</p><p> JZ NEXT</p><p>
51、OUT DX,AL ;點亮相應(yīng)的燈</p><p> MOV BC,AL ;保存AL為下面的比較做準備</p><p><b> INC BX</b></p><p> MOV CX,300 ;短延時CX值</p><p>
52、 TEST AL,21H ;是否有綠燈亮,東西南北任一方有綠燈</p><p> JZ DELAY1 ;沒有,跳轉(zhuǎn)至短延時DELAY1</p><p> MOV CX,500 ;有,長延時</p><p> MOV DX,IO8255B ;屏蔽蜂鳴器</p><p&g
53、t; MOV AL,00H </p><p> OUT DX,AL</p><p> ??;檢測開關(guān)的狀態(tài)程序</p><p> DELAY1: MOV DX,IO8255C ;開關(guān)是硬開關(guān),按下去不</p><p> ;能自動彈起,需人工</p><p> IN AL,DX
54、 ;檢測開關(guān)狀態(tài)</p><p> TEST AL,03H ;檢測K0,K1狀態(tài)</p><p> JZ DELAY2 ;開關(guān)狀態(tài)為00,延時</p><p> MOV DX,IO8255B ;開關(guān)按下,屏蔽蜂鳴器</p><p> MO
55、V AL,00H </p><p> OUT DX,AL</p><p> MOV DX,IO8255C</p><p> IN AL,DX ;讀PC0和PC1的狀態(tài)</p><p> TEST AL,03H ; 檢測是否有開關(guān)按下</p>
56、<p> JZ DELAY2 ;沒有開關(guān)按下,延時</p><p> TEST AL,01H ;檢測開關(guān)K0是否按下 </p><p> JZ K1 ;開關(guān)K0斷開 </p><p> K0: MOV DX,IO8255A ;
57、開關(guān)K0按下 </p><p> MOV AL,81H ;強制東西紅燈,南北綠燈</p><p> OUT DX,AL </p><p> JMP DELAY1 ;返回DELAY1重新檢測開關(guān)的狀態(tài)</p><p> K1: MOV DX,IO8
58、255C </p><p> IN AL,DX</p><p> TEST AL,02H ;檢測開關(guān)K1是否按下</p><p> JZ DELAY2 ;開關(guān)K1斷開</p><p> MOV DX,IO8255A
59、 ;開關(guān)K1按下</p><p> MOV AL,24H ;強制南北紅燈,東西綠燈</p><p> OUT DX,AL</p><p> JMP DELAY1 ;返回DELAY1重新檢測開關(guān)的狀態(tài)</p><p> DELAY2: TEST BC,21H</p><p&
60、gt; JNZ DELAY ; 有綠燈亮</p><p> MOV DX,IO8255B ;沒有綠燈亮</p><p> MOV AL,01H ;有黃燈,蜂鳴器發(fā)聲</p><p> OUT DX,AL </p>
61、<p> DELAY: MOV DX,IO8253ct ;重新延時 計數(shù)器0方式0</p><p> MOV AL,30H ;計數(shù)器0、讀/寫低</p><p> ;八位后讀/寫高位方式0、二進制計數(shù)</p><p> OUT DX,AL</p><p> MOV A
62、X,10000 ;周期為0.01秒</p><p> MOV DX , IO8253_0</p><p> OUT DX , AL</p><p> MOV AL,AH</p><p> OUT DX,AL</p><p> WAIT: MOV DX,IO8
63、255C ;延時判斷</p><p> IN AL,DX</p><p> TEST AL,04H</p><p> JZ WAIT ;PC2為0則計數(shù)還</p><p> ;未結(jié)束,繼續(xù)檢測為1則計數(shù)結(jié)束,時間為0.01S</p><p&g
64、t; LOOP DELAY1 ;CX=CX-1,當CX等</p><p><b> ;于0時,順序執(zhí)行</b></p><p> JMP NEXT1 ;沒有,轉(zhuǎn)到NEXT1</p><p><b> CODE ENDS</b></p><p><b>
65、 END START</b></p><p> 通過利用8255并行接口芯片口、8253定時/計數(shù)器芯片、LED發(fā)光二極管、開關(guān)以及揚聲器,實現(xiàn)了對交通信號的燈控制系統(tǒng)的模擬。此程序可實現(xiàn)東西方向綠燈亮,南北方向紅燈亮;5秒后東西方向綠燈滅,東西方向的黃燈閃爍和南北方向的紅燈保持;3秒后東西方向紅燈亮,南北方向綠燈亮;5秒后南北方向綠燈滅,東西方向的紅燈和南北方向的黃燈閃爍;3秒后東西方向綠燈亮,
66、南北方向紅燈亮,依次循環(huán)。此程序可根據(jù)不同的設(shè)計要求,調(diào)節(jié)周期時間或者是CX初值,從而實現(xiàn)對交通燈的亮滅時間長短的控制。同時在特殊情況下,可人為操作強制改變交通燈的狀態(tài)。</p><p> 本系統(tǒng)實現(xiàn)了交通燈自動變換的基本功能,并通過揚聲器提醒燈的轉(zhuǎn)換,使系統(tǒng)更人性化。利用編程給定8253芯片某一頻率的方波信號,控制揚聲器發(fā)聲。并利用8253的方式0工作方式,在計數(shù)期間,輸出OUT 始終為低電平,實現(xiàn)了LED發(fā)
67、光二極管的亮滅的精確延時。</p><p><b> 四、心得體會</b></p><p> 經(jīng)過近兩個星期的努力,我們完成了紅綠燈控制系統(tǒng)的設(shè)計。本次設(shè)計對我們學習的知識的做了一個檢驗,培養(yǎng)了我們的動手能力以及獨立思考設(shè)計的能力,也是大學培養(yǎng)的一個重要實踐步驟。設(shè)計初期,我們通過網(wǎng)絡(luò)、圖書館等資源查找到利用微機原理與接口技術(shù)設(shè)計制作交通燈的相關(guān)信息,對不同的方案
68、進行細致的分析比較。并且進行改進,使之符合要求。然后按照設(shè)計的電路圖進行連線,最終做出一個簡單的交通燈。制作過程中發(fā)現(xiàn)的一些問題,經(jīng)過我們小組成員間的相互討論,尋求同學的指導,終于把自己發(fā)覺不到的問題找出來了,并將其解決。在設(shè)計的過程中遇到很多困難,但是毫不松懈的堅持堅持到最后。此次設(shè)計鞏固了前期所學的理論知識,增強了動手實踐能力。通過設(shè)計我們熟悉了一個實際項目的設(shè)計過程,更鍛煉了自己的動手實踐能力。在設(shè)計的過程中,對8253芯片和82
69、55芯片有了更深刻的知識,掌握了并行口如何處理數(shù)據(jù)的輸入輸出等。在此之前做的實驗都是簡單的編程,跟硬件結(jié)合沒有這么復(fù)雜,實現(xiàn)的功能都比較簡單,可是這次要實現(xiàn)的功能相對來說比較復(fù)雜,要求掌握的知識比較綜合。在設(shè)計期間學到了很多新的東西,極大地拓寬了知識面,提高了我們的綜合素質(zhì),受益匪淺。</p><p> 最后希望通過以后的學習,不斷提升自身各方面的能力,如對專業(yè)知識的掌握程度,動手實踐能力等。經(jīng)過此次的課程設(shè)計
70、,我們學會了合作。我們要形成自己的設(shè)計思想,以便在今后的專業(yè)課形成自己的風格。同時在多多鍛煉自己的動手能力,以便在以后的工作能獨立完成一些設(shè)計項目。同時,希望以后能有更多這樣的機會,將理論與實際結(jié)合起來,從而不斷地提高自己的能力。</p><p><b> 五、附錄</b></p><p><b> 六、參考文獻</b></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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 紅綠燈課程設(shè)計
- 紅綠燈課程設(shè)計
- 紅綠燈 java課程設(shè)計報告
- 微機原理及機電接口技術(shù)課程設(shè)計紅綠燈
- plc_紅綠燈課程設(shè)計報告
- 接口課程設(shè)計——模擬紅綠燈實驗
- 單片機課程設(shè)計--紅綠燈
- 太陽能紅綠燈課程設(shè)計
- 紅綠燈數(shù)字電路課程設(shè)計
- java課程設(shè)計報告---紅綠燈控制道路車輛
- 數(shù)字電路紅綠燈課程設(shè)計實驗報告
- 單片機課程設(shè)計---交通紅綠燈
- 《紅綠燈前
- 課程設(shè)計--人行道紅綠燈控制系統(tǒng)
- 電工電子課程設(shè)計——自動紅綠燈控制系統(tǒng)
- 《數(shù)字電子技術(shù)》課程設(shè)計報告---紅綠燈控制器
- 課程設(shè)計——交通紅綠燈plc控制系統(tǒng)
- 課程設(shè)計---人行道紅綠燈控制系統(tǒng)
- 飲食紅綠燈
- 校園紅綠燈 教學設(shè)計
評論
0/150
提交評論