微機(jī)原理課程設(shè)計(jì)報(bào)告紅綠燈_第1頁
微機(jī)原理課程設(shè)計(jì)報(bào)告紅綠燈_第2頁
微機(jī)原理課程設(shè)計(jì)報(bào)告紅綠燈_第3頁
微機(jī)原理課程設(shè)計(jì)報(bào)告紅綠燈_第4頁
微機(jī)原理課程設(shè)計(jì)報(bào)告紅綠燈_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

2、機(jī)接口的方法和原理,具備一定的微機(jī)應(yīng)用開發(fā)的實(shí)踐能力,加深對(duì)理論課程的理解。三、設(shè)計(jì)的具體實(shí)現(xiàn)原理框圖3.1系統(tǒng)概述本次設(shè)計(jì)是模擬交通燈實(shí)時(shí)控制系統(tǒng),以8086cpu為核心加以并行接口芯片8255、可編程計(jì)數(shù)器/定時(shí)器8253、led燈、開關(guān)等組成的系統(tǒng)。以led燈模擬十字路口的紅綠燈。對(duì)交通燈控制的實(shí)現(xiàn)主要是通過編寫匯編語言程序?qū)?255的i/o及8253進(jìn)行控制,從而實(shí)現(xiàn)對(duì)燈的亮與滅進(jìn)行控制。pc口做輸入,讀取定時(shí),及應(yīng)急開關(guān)狀態(tài)。用8253對(duì)揚(yáng)聲器的發(fā)聲進(jìn)行控制,利用軟件編程給定8253芯片某一頻率的方波信號(hào),并且設(shè)定8255芯片的門控信號(hào)pb0 =1,則可控制揚(yáng)聲器發(fā)聲。利用8253的

3、計(jì)數(shù)器1方式3、計(jì)數(shù)器0方式0實(shí)現(xiàn)對(duì)揚(yáng)聲器的控制,以及對(duì)于交通燈亮滅時(shí)間的精確延時(shí)。 3.2 8086cpu介紹8086由執(zhí)行部件和總線接口部件組成(內(nèi)部結(jié)構(gòu)圖如下圖)8086內(nèi)部結(jié)構(gòu)圖1. 執(zhí)行部件eu由算術(shù)邏輯單元(alu)、標(biāo)志寄存器、通用寄存器組和eu控制器等部件組成。主要功能是執(zhí)行指令:一般順序執(zhí)行,eu不斷地從指令隊(duì)列中取指令連續(xù)執(zhí)行,而省去訪問存儲(chǔ)器取指令的時(shí)間。需要訪問存儲(chǔ)器取操作數(shù)時(shí),eu將訪問地址送給biu后,將要等待操作數(shù)到來后才能繼續(xù)操作;遇到轉(zhuǎn)移類指令時(shí),要將指令隊(duì)列中的后續(xù)指令作廢,等待biu重新從存儲(chǔ)器取出目標(biāo)地址中的指令代碼進(jìn)入指令隊(duì)列后,eu才能繼續(xù)執(zhí)行指令。

4、 算術(shù)邏輯單元(alu)完成16位或8位的二進(jìn)制運(yùn)算;16位暫存寄存器用來暫存參加運(yùn)算的操作數(shù)。運(yùn)算結(jié)果通過內(nèi)部總線送到通用寄存器組或biu的內(nèi)部寄存器中等待寫入存儲(chǔ)器。經(jīng)alu運(yùn)算后的結(jié)果特征置入標(biāo)志寄存器中保存。負(fù)責(zé)從biu的指令隊(duì)列中取指令,并對(duì)指令譯碼;據(jù)指令要求向eu內(nèi)部各部件發(fā)出控制命令以完成各條指令的功能。2. 總線接口部件biu由地址加法器、專用寄存器組、指令隊(duì)列緩沖器和總線控制電路等部件組成;主要功能是形成訪問存儲(chǔ)器的物理地址,負(fù)責(zé)與外部(存儲(chǔ)器或i/o接口)打交道。(1)指令隊(duì)列可存放6字節(jié)的指令代碼。一般情況下指令隊(duì)列中總是填滿指令,使eu可不斷地得到執(zhí)行的指令。(2)1

5、6位地址加法器專門用來完成由邏輯地址變換成物理地址的功能。實(shí)際上是進(jìn)行一次地址加法,將兩個(gè)16位的邏輯地址轉(zhuǎn)換為20位的物理地址,以達(dá)到可尋址1m字節(jié)的存儲(chǔ)空間。(3)總線控制電路將8086cpu的內(nèi)部總線與外部總線相連,是8086cpu與外部交換數(shù)據(jù)的必經(jīng)之路。包括16條數(shù)據(jù)總線、20條地址總線和若干條控制總線。3.3 可編程并行接口芯片82553.3.1 8255內(nèi)部結(jié)構(gòu)8255是intel公司生產(chǎn)的可編程并行i/o接口芯片,有3個(gè)8位并行i/o口。具有3個(gè)通道3種工作方式的可編程并行接口芯片(40引腳)。 其各口功能可由軟件選擇,使用靈活,通用性強(qiáng)。8255可作為單片機(jī)與多種外設(shè)連接時(shí)的

6、中間接口電路。8255作為主機(jī)與外設(shè)的連接芯片,必須提供與主機(jī)相連的3個(gè)總線接口,即數(shù)據(jù)線、地址線、控制線接口。同時(shí)必須具有與外設(shè)連接的接口a、b、c口。由于8255可編程,所以必須具有邏輯控制部分,因而8255內(nèi)部結(jié)構(gòu)分為3個(gè)部分:與cpu連接部分、與外設(shè)連接部分、控制部分。8255內(nèi)部結(jié)構(gòu)1. 與cpu連接部分 根據(jù)定義,8255能并行傳送8位數(shù)據(jù),所以其數(shù)據(jù)線為8根d0d7。由于8255具有3個(gè)通道a、b、c,所以只要兩根地址線就能尋址a、b、c口及控制寄存器,故地址線為兩根a0a1。此外cpu要對(duì)8255進(jìn)行讀、寫與片選操作,所以控制線為片選、復(fù)位、讀、寫信號(hào)。各信號(hào)的引腳編號(hào)如下:

7、(1)數(shù)據(jù)總線db:編號(hào)為d0d7,用于8255與cpu傳送8位數(shù)據(jù)。 (2)地址總線ab:編號(hào)為a0a1,用于選擇a、b、c口與控制寄存器。 (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ù)的操作。 2. 與外設(shè)接口部分 根據(jù)定義,8255有3個(gè)通道a、b、c與外設(shè)連接,每個(gè)通道又有8根線與外設(shè)連接,所以8255可以用24根線與外設(shè)連接,若進(jìn)行開關(guān)量控制,則8255可同時(shí)控制24路開關(guān)。各通道的引腳編號(hào)如下: (1)a口:編號(hào)為pa0pa7,用于82

8、55向外設(shè)輸入輸出8位并行數(shù)據(jù)。 (2)b口:編號(hào)為pb0pb7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù)。 (3)c口:編號(hào)為pc0pc7,用于8255向外設(shè)輸入輸出8位并行數(shù)據(jù),當(dāng)8255工作于應(yīng)答i/o方式時(shí),c口用于應(yīng)答信號(hào)的通信。 3. 控制器 8255將3個(gè)通道分為兩組,即pa0pa7與pc4pc7組成a組,pb0pb7與pc0pc3組成b組。相應(yīng)的控制器也分為a組控制器與b組控制器,各組控制器的作用如下: (1)a組控制器:控制a口與c口高四位的輸入與輸出。 (2)b組控制器:控制b口與c口低四位的輸入與輸出。 3.3.2 特性(1)一個(gè)并行輸入/輸出的lsn芯片,多功能的n/o器

9、件,可作為cpu總線與外圍的接口。(2)具有24個(gè)可編程設(shè)置的n/o口,即3組8位的n/o口為pa口,pb口和pc口。它們又可分為兩組12位的n/o口,a組包括a口及c口(高4位,pc4pc7),b組包括b口及c口(低4位,pc0pc3)。a組可設(shè)置為基本輸入輸出、選通輸入輸出、雙向選通輸入/輸出;b組只能設(shè)置為基本輸入輸出或選通輸入輸出兩種模式,而這些操作模式完全由控制寄存器的控制字決定。3.3.3引腳功能reset:復(fù)位信號(hào)輸入引腳,當(dāng)該輸入引腳處于高電平時(shí),所有內(nèi)部寄存器(包括控制寄存器)均被清除,所有n/o口均被置成輸入方式。 :芯片選擇信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),即=0時(shí),表示

10、芯片被選中,允許8255與cpu進(jìn)行通訊,=1時(shí),8255無法與cpu做數(shù)據(jù)傳輸。:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低跳變沿時(shí),即產(chǎn)生一個(gè)低脈沖且=0時(shí),允許8255通過數(shù)據(jù)總線向cpu發(fā)送數(shù)據(jù)或狀態(tài)信息,即cpu從8255讀取信息或數(shù)據(jù)。 :寫入信號(hào),當(dāng)這個(gè)輸入引腳為低跳變沿時(shí),即產(chǎn)生一個(gè)低脈沖且=0時(shí),允許cpu將數(shù)據(jù)或控制字寫入8255。 d0d7:三態(tài)雙向數(shù)據(jù)總線,8255與cpu數(shù)據(jù)傳送的通道,當(dāng)cpu 執(zhí)行輸入輸出指令時(shí),通過它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過數(shù)據(jù)總線傳送。 3.3.4 工作方式8255具有3個(gè)相互獨(dú)立的輸入/輸出通道端口,用+5v單電源供電,能在以下三種

11、方式下工作。 方式0基本輸入輸出方式;方式1選通輸入/出方式;方式2雙向選通輸入/輸出方式; pa0pa7:端口a輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入鎖存器。 工作于三種方式中的任何一種; pb0pb7:端口b輸入輸出線,一個(gè)8位的n/o鎖存器, 一個(gè)8位的輸入輸出緩沖器。 不能工作于方式2; pc0pc7:端口c輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器, 一個(gè)8位的數(shù)據(jù)輸入緩沖器。端口c可以通過工作方式設(shè)定而分成2個(gè)4位的端口, 每個(gè)4位的端口包含一個(gè)4位的鎖存器,分別與端口a和端口b配合使用,可作為控制信號(hào)輸出或狀態(tài)信號(hào)輸入端口。不能工作于方式1或2。 a

12、1、a0:地址選擇線,用來選擇8255的pa口、pb口、pc口和控制寄存器。當(dāng)a1=0,a0=0時(shí),pa口被選擇; 當(dāng)a1=0,a0=1時(shí),pb口被選擇; 當(dāng)a1=1,a0=0時(shí),pc口被選擇; 當(dāng)a1=1,a0=1時(shí),控制寄存器被選擇。3.4 8253可編程計(jì)數(shù)/定時(shí)器3.4.1 基本概述nntel8253是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è)置

13、在控制寄存器中的控制字,互相之間工作完全獨(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ù)器,它的起始值就是初值寄存器的值,而初始值寄存器ol用來鎖存計(jì)數(shù)執(zhí)行部件ce的內(nèi)容,從而使cpu可以對(duì)此進(jìn)行讀操器的值是通過程序設(shè)置的。輸出鎖存器的值是通過程序設(shè)置的。輸出鎖存作。順便提一下,cr、ce和ol都是16位寄存器,但是也可以作8位寄存器來用。 3.4.2 8253內(nèi)部結(jié)構(gòu) 82

14、53內(nèi)部結(jié)構(gòu)圖(1)數(shù)據(jù)總線緩沖器 數(shù)據(jù)總線緩沖器與系統(tǒng)總線連接,8位雙向,與cpu交換信息的通道。這是8253與cpu之間的數(shù)據(jù)接口,它由8位雙向三態(tài)緩沖存儲(chǔ)器構(gòu)成,是cpu與8253之間交換信息的必經(jīng)之路。 (2)讀/寫控制讀/寫控制分別連接系統(tǒng)的和,由cpu控制著訪問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è)端口地址由最低

15、2位地址碼a1a0來選擇,如表1所示。 3.4.3 通道選擇 (1) 片選信號(hào),由cpu輸入,低電平有效,通常由端口地址的高位地址譯碼形成。 (2) 、讀/寫控制命令,由cpu輸入,低電平有效。效時(shí),cpu讀取由a1、a0所選定的通道內(nèi)計(jì)數(shù)器的內(nèi)容。有效時(shí),cpu將計(jì)數(shù)值寫入各個(gè)通道的計(jì)數(shù)器中,或者是將方式控制字寫入控制字寄存器中。3.4.4 計(jì)數(shù)通道02 每個(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í),寫入的初值范圍為0000hff

16、ffh,最大計(jì)數(shù)值是ffffh,代表65536。采用bcd碼計(jì)數(shù)時(shí),寫入的初值范圍為00009999,最大計(jì)數(shù)值是9999,代表10000。與此計(jì)數(shù)器相對(duì)應(yīng),每個(gè)通道內(nèi)設(shè)有一個(gè)16位計(jì)數(shù)值鎖存器。必要時(shí)可用來鎖存計(jì)數(shù)值。當(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)某個(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”。

17、out將有輸出,表示定時(shí)時(shí)間到。允許從clk輸入的時(shí)鐘頻在12mhz范圍內(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ù)器的初值預(yù)置到減“1”計(jì)數(shù)器中。作定時(shí)器時(shí), 計(jì)數(shù)器的初值即定時(shí)系數(shù)應(yīng)根據(jù)要求定時(shí)的時(shí)間進(jìn)行如下運(yùn)算才能得到: 定時(shí)系數(shù)=需要定時(shí)的時(shí)間/時(shí)鐘脈沖周期 設(shè)置通道:向方式控制字寄存器端口寫入方式選擇控制字,用于確定要設(shè)置的通道及工作方式;計(jì)數(shù)/定時(shí):向通道寫入計(jì)數(shù)值,啟動(dòng)計(jì)數(shù)操作; 讀取當(dāng)前的計(jì)數(shù)值:向指定通道讀取當(dāng)前計(jì)數(shù)器值時(shí),8253將計(jì)

18、數(shù)器值存入鎖存器,從鎖存器向外提供當(dāng)前的計(jì)數(shù)器值,計(jì)數(shù)器則繼續(xù)作計(jì)數(shù)操作。 計(jì)數(shù)到:當(dāng)計(jì)數(shù)器減1為0時(shí),通過引腳outn向外輸出脈沖信號(hào)。 計(jì)數(shù)初值輸入存放在初值寄存器中,計(jì)數(shù)開始或重裝入時(shí)被復(fù)制到計(jì)數(shù)器中。 3.4.5 8253的通道工作方式 8253中各通道可有6種可供選擇的工作方式,以完成定時(shí)、計(jì)數(shù)或脈沖發(fā)生器等多種功能。8253的各種工作方式如下:(1)方式0:計(jì)數(shù)結(jié)束則中斷(2)方式1:可重復(fù)觸發(fā)單脈沖發(fā)生器(3)方式2:速率波發(fā)生器(4)方式3:方波發(fā)生器(5)方式4:軟件觸發(fā)方式計(jì)數(shù)(6)方式5:硬件觸發(fā)方式計(jì)數(shù)在上述各工作方式中,gate作為各通道的門控信號(hào),對(duì)于各種不同的工作

19、方式,它所起的作用各不相同。在8253的應(yīng)用中,必須正確使用gate信號(hào),才能保證各通道的正常操作。 3.3.6讀取計(jì)數(shù)器的當(dāng)前值 直接讀計(jì)數(shù)器:輸出鎖存器在非鎖存狀態(tài)會(huì)跟隨計(jì)數(shù)器計(jì)數(shù)的變化而變化,直接讀計(jì)數(shù)器是從鎖存器得到計(jì)數(shù)器的當(dāng)前值。但由于計(jì)數(shù)器處于工作狀態(tài),讀出值不一定能穩(wěn)定。 先鎖存再讀?。和ㄟ^方式選擇控制字對(duì)指定通道(sc1、sc0)的計(jì)數(shù)值鎖入鎖存器(rl1rl0=00), 鎖存器一旦鎖存了當(dāng)前計(jì)數(shù)值,就不再隨計(jì)數(shù)器變化直到被讀取。讀計(jì)數(shù)器通道(有鎖存器)。3.5 8284始終發(fā)生器/驅(qū)動(dòng)器在8086cpu內(nèi)部沒有有時(shí)時(shí)鐘發(fā)生器,當(dāng)組成微型機(jī)系統(tǒng)時(shí),所需的時(shí)鐘信號(hào)由外部時(shí)鐘發(fā)生器

20、提供。 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)生電路,這些電路分別向8086系統(tǒng)提供時(shí)鐘信號(hào)clk,復(fù)位信號(hào)reset和準(zhǔn)備好信號(hào)ready ,還可向外界提供晶振信號(hào)osc以及外圍芯片所需的時(shí)鐘信號(hào)pclk。3.5.1 8284的引腳8284是雙列直插式18腳組件,其引腳分配如下圖所示。其功能為:x1,x2:晶振輸入端。async:ready同步選擇輸入。async信號(hào)決定ready的同步方式。當(dāng)async為低電平時(shí),提供兩級(jí)ready同步 ,若async為高電平時(shí),提供一級(jí)ready同步。efi:

21、外來時(shí)鐘輸入端。當(dāng)f/c接高電平時(shí),由efi端輸入外來時(shí)鐘。 輸入時(shí)鐘信號(hào)的頻率為系統(tǒng)時(shí)鐘clk的三倍。f/c:時(shí)鐘源選擇輸入端。若f/c 接低電平,則系統(tǒng)時(shí)鐘clk由晶體振蕩器產(chǎn)生;若f/c接高電平,則clk 由外來時(shí)鐘產(chǎn)生。osc:晶振輸出端。輸出頻率為晶振頻率,ttc電平。clk:提供給整個(gè)計(jì)算機(jī)系統(tǒng)的時(shí)鐘信號(hào),所以稱為系統(tǒng)時(shí)鐘。clk的頻率是晶體震蕩器頻率或efi端輸入頻率 1/3,占空比為33%。pclk:為外設(shè)提供的輸出時(shí)鐘信號(hào),頻率是clk的1/2,占空比為50%。res:復(fù)位輸入端,低電平有效。用于產(chǎn)生8086的reset信號(hào)。由于8284 內(nèi)部具有斯密特整形電路,因此res可

22、以是緩慢變化的脈沖信號(hào),它經(jīng) 8284內(nèi)部電路整形而獲得較陡的復(fù)位信號(hào)reset。reset:提供給8086及整個(gè)系統(tǒng)的復(fù)位信號(hào),高電平有效,其寬度由res 決定。aen1,aen2 :對(duì)應(yīng)rdy1,rdy2的允許控制信號(hào),低電平 有效。當(dāng)aen1為低電平時(shí),rdy1 起作用,aen2為低電平時(shí),rdy2 起作用。在單cpu系統(tǒng)中aen應(yīng)接低電平,在多系統(tǒng)中,用這兩個(gè)信號(hào)。rdy1,rdy2:rdy高電平有效的輸入信號(hào)。 可由系統(tǒng)總線的設(shè)備產(chǎn)生,它有效表示數(shù)據(jù)已收到或數(shù)據(jù)可以使用。csync:同步輸入信號(hào)。用來使多個(gè)8284同步,以提供同步的clk信號(hào)。csync為高電平時(shí),內(nèi)部計(jì)數(shù)器復(fù)位 ;

23、csync為低電平時(shí),才允許內(nèi)部計(jì)數(shù)器計(jì)數(shù)。3.6軟件程序設(shè)計(jì)硬件電路連接見附圖3.6.1 功能流程圖3.6.2 東西、南北方向的紅黃綠的控制表東西南北傳送狀態(tài)紅黃綠紅黃綠pa7pa6pa5pa4pa3pa2pa1pa000100100南北紅亮,東西綠亮01000100南北紅亮,東西黃亮00000100南北紅亮,東西黃*10000001東西紅亮,南北綠亮10000010東西紅亮,南北黃亮10000000東西紅亮,南北黃*00100100強(qiáng)制南北紅燈東西綠燈10000001強(qiáng)制東西紅燈南北綠燈3.6.3 源程序data segmentio8255a equ 280hio8255b equ 281

24、hio8255c equ 282hio8255ct equ 283hio8253_0 equ 290hio8253_1 equ 291hio8253ct equ 293hled db 24h,2 dup(44h,04h) ;六個(gè)燈可能(綠紅、黃紅、*紅) db 81h,2 dup(82h,80h) ;的狀態(tài)數(shù)據(jù)(紅綠、紅黃、紅*) db 0ffh ;結(jié)束標(biāo)志bc db ? ;用于保存燈的狀態(tài)data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8255ct mov al,81h out

25、 dx,al ;設(shè)置8255 a、b輸出,c口低四位輸入mov dx,io8253ct ;計(jì)數(shù)器1、先讀/寫低八 ;位后讀/寫高八位、方式3、out1產(chǎn)生方波 mov al,76h out dx,al mov ax,100 ;通道1與蜂鳴器相連 mov dx,io8253_1 out dx,al mov al,ah out dx,alnext: mov bx,0next1: mov dx,io8255amov al,ledbx cmp al,0ffh jz next out dx,al ;點(diǎn)亮相應(yīng)的燈 mov bc,al ;保存al為下面的比較做準(zhǔn)備 inc bx mov cx,300 ;短延

26、時(shí)cx值 test al,21h ;是否有綠燈亮,東西南北任一方有綠燈 jz delay1 ;沒有,跳轉(zhuǎn)至短延時(shí)delay1 mov cx,500 ;有,長(zhǎng)延時(shí) mov dx,io8255b ;屏蔽蜂鳴器 mov al,00h out dx,al ;檢測(cè)開關(guān)的狀態(tài)程序delay1: mov dx,io8255c ;開關(guān)是硬開關(guān),按下去不 ;能自動(dòng)彈起,需人工 in al,dx ;檢測(cè)開關(guān)狀態(tài) test al,03h ;檢測(cè)k0,k1狀態(tài) jz delay2 ;開關(guān)狀態(tài)為00,延時(shí) mov dx,io8255b ;開關(guān)按下,屏蔽蜂鳴器 mov al,00h out dx,al mov dx,io

27、8255c in al,dx ;讀pc0和pc1的狀態(tài) test al,03h ; 檢測(cè)是否有開關(guān)按下 jz delay2 ;沒有開關(guān)按下,延時(shí) test al,01h ;檢測(cè)開關(guān)k0是否按下 jz k1 ;開關(guān)k0斷開 k0: mov dx,io8255a ; 開關(guān)k0按下 mov al,81h ;強(qiáng)制東西紅燈,南北綠燈 out dx,al jmp delay1 ;返回delay1重新檢測(cè)開關(guān)的狀態(tài)k1: mov dx,io8255c in al,dx test al,02h ;檢測(cè)開關(guān)k1是否按下 jz delay2 ;開關(guān)k1斷開 mov dx,io8255a ;開關(guān)k1按下 mov a

28、l,24h ;強(qiáng)制南北紅燈,東西綠燈 out dx,al jmp delay1 ;返回delay1重新檢測(cè)開關(guān)的狀態(tài)delay2: test bc,21h jnz delay ; 有綠燈亮 mov dx,io8255b ;沒有綠燈亮 mov al,01h ;有黃燈,蜂鳴器發(fā)聲 out dx,al delay: mov dx,io8253ct ;重新延時(shí) 計(jì)數(shù)器0方式0 mov al,30h ;計(jì)數(shù)器0、讀/寫低;八位后讀/寫高位方式0、二進(jìn)制計(jì)數(shù) out dx,al mov ax,10000 ;周期為0.01秒 mov dx , io8253_0 out dx , al mov al,ah o

29、ut dx,al wait: mov dx,io8255c ;延時(shí)判斷 in al,dx test al,04h jz wait ;pc2為0則計(jì)數(shù)還;未結(jié)束,繼續(xù)檢測(cè)為1則計(jì)數(shù)結(jié)束,時(shí)間為0.01s loop delay1 ;cx=cx-1,當(dāng)cx等;于0時(shí),順序執(zhí)行 jmp next1 ;沒有,轉(zhuǎn)到next1code ends end start通過利用8255并行接口芯片口、8253定時(shí)/計(jì)數(shù)器芯片、led發(fā)光二極管、開關(guān)以及揚(yáng)聲器,實(shí)現(xiàn)了對(duì)交通信號(hào)的燈控制系統(tǒng)的模擬。此程序可實(shí)現(xiàn)東西方向綠燈亮,南北方向紅燈亮;5秒后東西方向綠燈滅,東西方向的黃燈閃爍和南北方向的紅燈保持;3秒后東西方向

30、紅燈亮,南北方向綠燈亮;5秒后南北方向綠燈滅,東西方向的紅燈和南北方向的黃燈閃爍;3秒后東西方向綠燈亮,南北方向紅燈亮,依次循環(huán)。此程序可根據(jù)不同的設(shè)計(jì)要求,調(diào)節(jié)周期時(shí)間或者是cx初值,從而實(shí)現(xiàn)對(duì)交通燈的亮滅時(shí)間長(zhǎng)短的控制。同時(shí)在特殊情況下,可人為操作強(qiáng)制改變交通燈的狀態(tài)。本系統(tǒng)實(shí)現(xiàn)了交通燈自動(dòng)變換的基本功能,并通過揚(yáng)聲器提醒燈的轉(zhuǎn)換,使系統(tǒng)更人性化。利用編程給定8253芯片某一頻率的方波信號(hào),控制揚(yáng)聲器發(fā)聲。并利用8253的方式0工作方式,在計(jì)數(shù)期間,輸出out 始終為低電平,實(shí)現(xiàn)了led發(fā)光二極管的亮滅的精確延時(shí)。四、心得體會(huì)經(jīng)過近兩個(gè)星期的努力,我們完成了紅綠燈控制系統(tǒng)的設(shè)計(jì)。本次設(shè)計(jì)對(duì)

31、我們學(xué)習(xí)的知識(shí)的做了一個(gè)檢驗(yàn),培養(yǎng)了我們的動(dòng)手能力以及獨(dú)立思考設(shè)計(jì)的能力,也是大學(xué)培養(yǎng)的一個(gè)重要實(shí)踐步驟。設(shè)計(jì)初期,我們通過網(wǎng)絡(luò)、圖書館等資源查找到利用微機(jī)原理與接口技術(shù)設(shè)計(jì)制作交通燈的相關(guān)信息,對(duì)不同的方案進(jìn)行細(xì)致的分析比較。并且進(jìn)行改進(jìn),使之符合要求。然后按照設(shè)計(jì)的電路圖進(jìn)行連線,最終做出一個(gè)簡(jiǎn)單的交通燈。制作過程中發(fā)現(xiàn)的一些問題,經(jīng)過我們小組成員間的相互討論,尋求同學(xué)的指導(dǎo),終于把自己發(fā)覺不到的問題找出來了,并將其解決。在設(shè)計(jì)的過程中遇到很多困難,但是毫不松懈的堅(jiān)持堅(jiān)持到最后。此次設(shè)計(jì)鞏固了前期所學(xué)的理論知識(shí),增強(qiáng)了動(dòng)手實(shí)踐能力。通過設(shè)計(jì)我們熟悉了一個(gè)實(shí)際項(xiàng)目的設(shè)計(jì)過程,更鍛煉了自己的動(dòng)手實(shí)踐能力。在設(shè)計(jì)的過程中,對(duì)8253芯片和8255芯片有了更深刻的知識(shí),掌握了并行口如何處理數(shù)據(jù)的輸入輸出等。在此之前做的實(shí)驗(yàn)都是簡(jiǎn)單的編程,跟硬件結(jié)合沒有這么復(fù)雜,實(shí)現(xiàn)的功能都比較簡(jiǎn)單,可是這次要實(shí)現(xiàn)的功能相對(duì)來說比較復(fù)雜,要求掌握的知識(shí)比較綜合。在設(shè)計(jì)期間學(xué)到了很多新的東西,極大地拓寬了知識(shí)面,提高了我們的綜合素質(zhì),受益匪淺。最后希望通過以后的學(xué)習(xí),不斷提升自身各方面的能力,如對(duì)專業(yè)知識(shí)的掌握程度,動(dòng)手實(shí)踐能力等。經(jīng)過此次的課程設(shè)計(jì),我們學(xué)會(huì)了合作

溫馨提示

  • 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)論