微機原理實驗交通燈控制實驗_第1頁
微機原理實驗交通燈控制實驗_第2頁
微機原理實驗交通燈控制實驗_第3頁
微機原理實驗交通燈控制實驗_第4頁
微機原理實驗交通燈控制實驗_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課 程 設(shè) 計課程設(shè)計名稱: 交通燈控制實驗 專 業(yè) 班 級 : 學(xué) 生 姓 名 : 學(xué) 號 : 指 導(dǎo) 教 師 : 課程設(shè)計時間: 2014.12.22-2015.1.2 微機原理 專業(yè)課程設(shè)計任務(wù)書學(xué)生姓名專業(yè)班級學(xué)號題 目交通燈控制實驗課題性質(zhì)工程設(shè)計課題來源自擬課題指導(dǎo)教師同組姓名主要內(nèi)容L7、L6、L5作為南北路口的交通燈與PC7、PC6、PC5相連,L2、L1、L0作為東西路口的交通燈與PC2、PC1、PC0相連。編程使六個燈按交通燈變化規(guī)律亮滅。任務(wù)要求1:掌握并理解芯片8255和8253計時器工作原理2:掌握并理解源程序和程序中的函數(shù)3:熟悉8255內(nèi)部結(jié)構(gòu)和與單片機的接口邏輯

2、,掌握8255芯片的3種工作方式。4:了解單片機外圍芯片8255的工作原理、初始化編程以及輸入、輸出程序設(shè)計方法參考文獻微型計算機原理及運用 譚浩強 清華大學(xué)出版社16/32位微機原理、匯編語言及接口技術(shù) 陳濤 機械工業(yè)出版社微機接口技術(shù)應(yīng)用審查意見指導(dǎo)教師簽字:教研室主任簽字: 年 月 日 一:設(shè)計的目的和內(nèi)容1 目的:通過并行接口8255實現(xiàn)十字路口交通燈的模擬控制,進一步掌握對并行口的使用。2 內(nèi)容:如圖1,L7、L6、L5作為南北路口的交通燈與PC7、PC6、PC5相連,L2、L1、L0作為東西路口的交通燈與PC2、PC1、PC0相連。編程使六個燈按交通燈變化規(guī)律亮滅。 圖1二:設(shè)計思

3、想:在選擇循環(huán)的時間上,老師上課時說過,長延時可以采用雙層嵌套,外層嵌套為0FFFFH,內(nèi)層嵌套為4000H,我在編程時外層送進了0,相當(dāng)于初值為65536,內(nèi)層送進了4000H。為了達到閃爍和延時的區(qū)別,我在編閃爍的程序時,給外層嵌套送入初值3000H,內(nèi)層0100H(這是我通過實驗的結(jié)果)。人眼感覺閃爍的效果只是短延時的結(jié)果此方案是通過并行接口芯片8255A和8086計算機的硬件連接,以及通過8253延時的方法,來實現(xiàn)十字路口交通燈的模擬控制。如上圖所示,紅燈(RLED),黃燈(YLEDD)和綠燈(GLED)分別接在8255的A,B,C口的低四位端口,PA0,PA1,PA2,PA3分別接南

4、,東,北,西路口的紅燈,B,C口類推。8086工作在最小模式,低八位端口AD0AD7接到8255和8253的D0D7,AD8AD15通過地址鎖存器8282,接到三八譯碼器,譯碼后分別連到8255和8253的CS片選端。8253的三個門控端接+5V,CLOCK0接由分頻器產(chǎn)生的1MHZ的時鐘脈沖,OUT0接到CLOCK1和CLOCK2,OUT1接到8086的AD18,8086通過檢測此端口是否有高電平來判斷是否30S定時到。OUT2產(chǎn)生1MHZ方波通過或門和8255的B口共同控制黃燈的閃爍。8255三個口全部工作在方式0既基本輸入輸出方式,紅綠燈的轉(zhuǎn)換由軟件編程實現(xiàn)。三:設(shè)計方案與硬件連接 設(shè)8

5、253各口地址分別為:設(shè)8253基地址即通道0地址為04A0H;通道1為04A2H;通道2為04A4H;命令控制口為04A6H。黃燈閃爍的頻率為1HZ,所以想到由8253產(chǎn)生一個1HZ的方波, 8255控制或門打開的時間,在或門打開的時間內(nèi),8253將方波信號輸入或門使黃燈閃爍。由于計數(shù)值最大為65535,1MHZ/65536的值遠大于2HZ,所以采用兩個計數(shù)器級聯(lián)的方式,8253通道0的clock0輸入由分頻器產(chǎn)生的1MHZ時鐘脈沖,工作在方式 3即方波發(fā)生器方式,理論設(shè)計輸出 周期為0.01s的方波。1MHZ的時鐘脈沖其重復(fù)周期為T=1/1MHZ=1s,因此通道0的計數(shù)初值為10000=2

6、710H。由此方波分別作為clock1和clock2的輸入時鐘脈沖,所以通道1和通道2的輸入時鐘頻率為100HZ,通道1作計數(shù)器工作在方式1,計數(shù)初值3000=BB8H既30s,計數(shù)到則輸出一個高電平到8255的PA7口,8255將A口數(shù)據(jù)輸入到8086,8086檢測到高電平既完成30s定時。通道2工作在方式3需輸出一個1HZ的方波,通過一個或門和8086共同控制黃燈的閃爍,因此也是工作在方波發(fā)生器方式,其計數(shù)初值為100=64H,將黃燈的狀態(tài)反饋到8055的端口PB7和PC7,同樣輸入到8086,8086通過兩次檢測端口狀態(tài)可知黃燈的狀態(tài)變化,計9次狀態(tài)變化可完成5次閃爍。三個通道的門控信號

7、都未用,均接5V即可。 四:程序流程圖 開始 設(shè)置8255A口輸出C口輸出 南北路口綠燈亮,東西路口紅燈亮 長延時 南北路口黃燈亮,東西路口紅燈亮 南北路口紅燈亮,東西路口綠燈亮 長延時 南北路口綠燈亮,東西路口紅燈亮是否有鍵按下?返回DOS五:程序分析1:源程序data segmentio8255a equ 28ahio8255b equ 28bhportc1 db 24h,44h,04h,44h,04h,44h,04h ;六個燈可能 db 81h,82h,80h,82h,80h,82h,80h ;的狀態(tài)數(shù)據(jù) db 0ffh ;結(jié)束標志data endscode segment assume

8、 cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8255b mov al,90h out dx,al ;設(shè)置8255為C口輸出 mov dx,io8255are_on: mov bx,0on: mov al,portc1bx cmp al,0ffh jz re_on out dx,al ;點亮相應(yīng)的燈 inc bx mov cx,200 ;參數(shù)賦初值 test al,21h ;是否有綠燈亮 jz de1 ;沒有,短延時 mov cx,2000 ;有,長延時de1: mov di,9000 ;di賦初值9000de0: dec di ;

9、減1計數(shù) jnz de0 ;di不為0 loop de1 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz on ;沒有,轉(zhuǎn)到onexit: mov ah,4ch ;返回 int 21hcode endsend start可通過對cx的初始值設(shè)定來改變黃色燈亮的時間間隔來改變紅燈亮的時間長度。2:調(diào)用函數(shù)分析中斷-中斷函數(shù)簡介1、EnableIntr;語法:BOOL EnableIntr();功能描述:將微機實驗裝置的中斷輸入設(shè)為有效,執(zhí)行此函數(shù)后,PLX9054將接受微機實驗裝置上的中斷請求,然后根據(jù)該請求申請一個PCI中斷。參數(shù):無返回值:如

10、果成功,則返回True,否則返回False備注:應(yīng)用程序在調(diào)用該函數(shù)之前,必須先調(diào)用Startup函數(shù)。2、DisableIntr;語法:BOOL DisableIntr();功能描述:將微機實驗裝置的中斷輸入設(shè)為無效,執(zhí)行此函數(shù)后,PLX9054將不相應(yīng)微機實驗裝置上的中斷請求參數(shù):無返回值:如果成功,則返回True,否則返回False備注:應(yīng)用程序在調(diào)用該函數(shù)之前,必須先調(diào)用Startup函數(shù)。3、RegisterISR;語法:BOOL RegisterISR(ISR_ROUTINE pfuncISR);功能描述:注冊中斷服務(wù)程序,當(dāng)微機實驗箱上的中斷輸入有效時,且實驗箱上的中斷輸入使能,

11、程序?qū)?zhí)行該中斷服務(wù)程序。參數(shù):pfuncISR:該參數(shù)即為中斷服務(wù)函數(shù)名返回值:如果成功,則返回True,否則返回False備注:應(yīng)用程序在調(diào)用該函數(shù)之前,必須先調(diào)用Startup函數(shù)六:調(diào)試記錄及結(jié)果分析1:本電路沒有設(shè)置顯示倒計時的七段LED數(shù)碼管,如果應(yīng)用到街道上,不利于司機、行人把握2:在上機調(diào)試中發(fā)現(xiàn),由于此軟件延時的時間均為估算時間,不是特別準確,對于交通要求特別高的地方不宜采用。如果是放到一個大的交通燈系統(tǒng)中,會影響到各個交通燈的運行時間,可能整個系統(tǒng)對交通的指揮調(diào)度會大大偏離理論計算,不能有效地防止和消除交通堵塞現(xiàn)象;3:當(dāng)出現(xiàn)緊急情況,在特種車(如消防車、救護車)正要通過

12、時,這種編程方式就不能完成; 但是,可以看到以上方案的一般性,只要將程序里的數(shù)據(jù)排列或規(guī)律稍加修改就可應(yīng)用到任何一個路口的某一個方向上的交通燈上了,可移植性很強。 七:參考資料微型計算機原理及運用 譚浩強 清華大學(xué)出版社16/32位微機原理、匯編語言及接口技術(shù) 陳濤 機械工業(yè)出版社微機接口技術(shù)應(yīng)用八:芯片資料18255 8255的內(nèi)部結(jié)構(gòu)8255A是一個40引腳的雙列直插式集成電路芯片按功能可把8255A分為三個邏輯電路部分,即:口電路、總線接口電路和控制邏輯電路。(1)口電路 8255A共有三個8位口,其中A口和B口是單純的數(shù)據(jù)口,供數(shù)據(jù)I/O使用。而C口則既可以作數(shù)據(jù)口,又可以作控制口使用

13、,用于實現(xiàn)A口和B口的控制功能。數(shù)據(jù)傳送中A口所需的控制信號由C口高位部分(PC7PC4)提供,因此把A口和C口高位部分合在一起稱之為A組;同樣理由把B口和C口低位部分(PC3PC0)合在一起稱之為B組。(2)總線接口電路總線接口電路用于實現(xiàn)8255A和單片微機的信號連接。其中包括: (a)數(shù)據(jù)總線緩沖器數(shù)據(jù)總線緩沖器為8位雙向三態(tài)緩沖器,可直接和80C51的數(shù)據(jù)線相連,與I/O操作有關(guān)的數(shù)據(jù)、控制字和狀態(tài)信息都是通過該緩沖器進行傳送。(b)讀/寫控制邏輯與讀寫有關(guān)的控制信號有CS片選信號(低電平有效)RD讀信號(低電平有效)WR寫信號(低電平有效)A0、A1端口選擇信號。8255A共有四個可

14、尋址的端口(即A口、B口、C口和控制寄存器),用二位地址編碼即可實現(xiàn)選擇。參見下表。RESET復(fù)位信號(高電平有效)。復(fù)位之后,控制寄存器清除,各端口被置為輸入方式。讀寫控制邏輯用于實現(xiàn)8255A的硬件管理:芯片的選擇,口的尋址以及規(guī)定各端口和單片微機之間的數(shù)據(jù)傳送方向。(c)控制邏輯電路控制邏輯電路包括A組控制和B組控制,合在一起構(gòu)成8位控制寄存器。用于存放各口的工作方式控制字8255A工作方式及數(shù)據(jù)I/O操作(1)8255A的工作方式 8255A共有三種工作方式,即方式0、方式1、方式2.(a)方式0 基本輸入/輸出方式 方式0下,可供使用的是兩個8位口(A口和B口)及兩個4位口(C口高4

15、位部分和低4位部分)。四個口可以是輸入和輸出的任何組合。方式0適用于無條件數(shù)據(jù)傳送,也可以把C口的某一位作為狀態(tài)位,實現(xiàn)查詢方式的數(shù)據(jù)傳送。(b)方式1 選通輸入/輸出方式 A口和B口分別用于數(shù)據(jù)的輸入/輸出。而C口則作為數(shù)據(jù)傳送的聯(lián)絡(luò)信號。具體定義見表72。可見A口和B口的聯(lián)絡(luò)信號都是三個,如果A或B只有一個口按方式1使用,則剩下的另外13位口線仍然可按方式0使用。如果兩個口都按方式1使用,則還剩下2位口線,這兩位口線仍然可以進行位狀態(tài)的輸入輸出。方式1適用于查詢或中斷方式的數(shù)據(jù)輸入/輸出。 (c)方式2 雙向數(shù)據(jù)傳送方式只有A口才能選擇這種工作方式,這時A口既能輸入數(shù)據(jù)又能輸出數(shù)據(jù)。在這種

16、方式下需使用C口的五位線作控制線,信號定義如表72所示。方式2適用于查詢或中斷方式的雙向數(shù)據(jù)傳送。如果把A口置于方式2下,則B口只能工作于方式0.(2)數(shù)據(jù)輸入操作用于輸入操作的聯(lián)絡(luò)信號有:STB(StroBe)選通脈沖,輸入,低電平有效。 當(dāng)外設(shè)送來STB信號時,輸入數(shù)據(jù)裝入8255A的鎖存器。IBF(Input Buffer Full) 輸入緩沖器滿信號,輸出,高電平有效。IBF信號有效,表明數(shù)據(jù)已裝入鎖存器,因此它是一個狀態(tài)信號。INTR(INTerrupt Request)中斷請求信號,高電平有效,當(dāng)IBF數(shù)據(jù)輸入過程:當(dāng)外設(shè)準備好數(shù)據(jù)輸入后,發(fā)出信號,輸入的數(shù)據(jù)送入緩沖器。然后IBF

17、信號有效。如使用查詢方式,則IBF即作為狀態(tài)信號供查詢使用;如使用中斷方式,當(dāng)信號由低變高時,產(chǎn)生INTR信號,向單片微機發(fā)出中斷。單片微機在響應(yīng)中斷后執(zhí)行中斷服務(wù)程序時讀入數(shù)據(jù),并使INTR信號變低,同時也使IBF信號同時變低。以通知外設(shè)準備下一次數(shù)據(jù)輸入。(3)數(shù)據(jù)輸出操作用于數(shù)據(jù)輸出操作的聯(lián)絡(luò)信號有:ACK(ACKnowledge)外設(shè)響應(yīng)信號輸入,低電平有效。當(dāng)外設(shè)取走輸出數(shù)據(jù),并處理完畢后向單片微機發(fā)回的響應(yīng)信號為高,信號由低變高(后沿)時,中斷請求信號有效。向單片微機發(fā)出中斷請求。OBF(Output Buffer Full)輸出緩沖器滿信號,輸出,低電平有效。當(dāng)單片微機把輸出數(shù)據(jù)

18、寫入8255A鎖存器后,該信號有效,并送去啟動外設(shè)以接收數(shù)據(jù)。INTR中斷請求信號,輸出,高電平有效。數(shù)據(jù)輸出過程:外設(shè)接收并處理完一組數(shù)據(jù)后,發(fā)回ACK信號。該信號使OBF變高,表明輸出緩沖器已空。如使用查詢方式,則OBF可作為狀態(tài)信號供查詢使用;如使用中斷方式,則當(dāng)ACK信號結(jié)束時,INTR有效,向單片微機發(fā)出中斷請求。在中斷服務(wù)過程中,把下一個輸出數(shù)據(jù)寫入8255A的輸出緩沖器。寫入后OBF有效,表明輸出數(shù)據(jù)已到,并以此信號啟動外設(shè)工作,取走并處理8255A中的輸出數(shù)據(jù)。28253定時計數(shù)器8253內(nèi)部可分為6個模塊,每個模塊的功能如下: 1. 數(shù)據(jù)總線緩沖器及數(shù)據(jù)總線D0D72. 讀/

19、寫控制邏輯及控制引腳CS* A1 A0I/O地址讀操作RD*寫操作WR*0 0 00 0 10 1 00 1 140H41H42H43H讀計數(shù)器0讀計數(shù)器1讀計數(shù)器2無操作寫計數(shù)器0寫計數(shù)器1寫計數(shù)器2寫控制字3. 控制字寄存器在初始化編程時,CPU寫入方式控制字到控制字寄存器中,用以選擇計數(shù)通道及其相應(yīng)的工作方式。8253的控制字:8253的工作方式也是有控制字來決定,其控制字意義如下4. 計數(shù)通道0、計數(shù)通道1、計數(shù)通道23個計數(shù)通道內(nèi)部結(jié)構(gòu)完全相同。每個計數(shù)通道都由一個16位計數(shù)初值寄存器、一個16位減法計數(shù)器和一個16位計數(shù)值鎖存器組成計數(shù)初值存于預(yù)置寄存器,在計數(shù)過程中,減法計數(shù)器的

20、值不斷遞減,而預(yù)置寄存器中的預(yù)置不變。輸出鎖存器用于寫入鎖存命令時,鎖定當(dāng)前計數(shù)值。計數(shù)器的3個引腳說明:(1)CLK時鐘輸入信號在計數(shù)過程中,此引腳上每輸入一個時鐘信號(下降沿),計數(shù)器的計數(shù)值減1(2) GATE門控輸入信號控制計數(shù)器工作,可分成電平控制和上升沿控制兩種類型(3) OUT計數(shù)器輸出信號當(dāng)一次計數(shù)過程結(jié)束(計數(shù)值減為0),OUT引腳上將產(chǎn)生一個輸出信號8253有6種工作方式,由方式控制字確定區(qū)分這6種工作方式的主要標志由3點:一是輸出波形不同;二是啟動計數(shù)器的觸發(fā)方式不同;三是計數(shù)過程中門控信號GATE對計數(shù)器操作的控制不同。1.方式0-低電平輸出(GATE信號上升沿繼續(xù)計數(shù))2方

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論