

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