微機(jī)原理實(shí)驗(yàn)交通燈控制實(shí)驗(yàn)_第1頁(yè)
微機(jī)原理實(shí)驗(yàn)交通燈控制實(shí)驗(yàn)_第2頁(yè)
微機(jī)原理實(shí)驗(yàn)交通燈控制實(shí)驗(yàn)_第3頁(yè)
微機(jī)原理實(shí)驗(yàn)交通燈控制實(shí)驗(yàn)_第4頁(yè)
微機(jī)原理實(shí)驗(yàn)交通燈控制實(shí)驗(yàn)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

7、都未用,均接5V即可。 四:程序流程圖 開(kāi)始 設(shè)置8255A口輸出C口輸出 南北路口綠燈亮,東西路口紅燈亮 長(zhǎng)延時(shí) 南北路口黃燈亮,東西路口紅燈亮 南北路口紅燈亮,東西路口綠燈亮 長(zhǎng)延時(shí) 南北路口綠燈亮,東西路口紅燈亮是否有鍵按下?返回DOS五:程序分析1:源程序data segmentio8255a equ 28ahio8255b equ 28bhportc1 db 24h,44h,04h,44h,04h,44h,04h ;六個(gè)燈可能 db 81h,82h,80h,82h,80h,82h,80h ;的狀態(tài)數(shù)據(jù) db 0ffh ;結(jié)束標(biāo)志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 ;點(diǎn)亮相應(yīng)的燈 inc bx mov cx,200 ;參數(shù)賦初值 test al,21h ;是否有綠燈亮 jz de1 ;沒(méi)有,短延時(shí) mov cx,2000 ;有,長(zhǎng)延時(shí)de1: mov di,9000 ;di賦初值9000de0: dec di ;

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 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ù)網(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)論