可控制循環(huán)燈設(shè)計(jì)_第1頁(yè)
可控制循環(huán)燈設(shè)計(jì)_第2頁(yè)
可控制循環(huán)燈設(shè)計(jì)_第3頁(yè)
可控制循環(huán)燈設(shè)計(jì)_第4頁(yè)
可控制循環(huán)燈設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(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、<<微機(jī)原理>>課程設(shè)計(jì) 姓名:紀(jì)樂(lè)學(xué)號(hào):12013241906專業(yè):通信工程 班級(jí):2013級(jí)1班 指導(dǎo)老師:李萍 學(xué)院:物理電氣信息學(xué)院 完成日期:2015年12月8日<<微機(jī)原理>>課程設(shè)計(jì) 可控制循環(huán)燈設(shè)計(jì)一設(shè)計(jì)內(nèi)容 本次設(shè)計(jì)實(shí)驗(yàn)用LED作為中斷顯示器,在我的課程設(shè)計(jì)過(guò)程中需要使用八個(gè)LED燈,先對(duì)8059初始化,開(kāi)始第一個(gè)燈亮,有中斷時(shí)按下開(kāi)關(guān)第二個(gè)燈亮,依次循環(huán)亮。二設(shè)計(jì)目的 1、了解可控制循環(huán)燈的工作原理。  2、掌握可控制循環(huán)燈編程方法和芯片8259的邏輯功能及使用方法。 3、掌握一定的匯編語(yǔ)言知識(shí),培養(yǎng)自己的

2、動(dòng)手操作能力。 4、學(xué)習(xí)程序設(shè)計(jì)的基本思路和方法 三設(shè)計(jì)原理1.8086的簡(jiǎn)介 Intel 8086擁有四個(gè)16位的通用寄存器,也能夠當(dāng)作八個(gè)8位寄存器來(lái)存取,以及四個(gè)16位索引寄存器(包含了堆棧指標(biāo))。資料寄存器通常由指令隱含地使用,針對(duì)暫存值需要復(fù)雜的寄存器配置。它提供64K 8 位元的輸出輸入(或32K 16 位元),以及固定的向量中斷。大部分的指令只能夠存取一個(gè)內(nèi)存位址,所以其中一個(gè)操作數(shù)必須是一個(gè)寄存器。運(yùn)算結(jié)果會(huì)儲(chǔ)存在操作數(shù)中的一個(gè)寄存器。2.8086的結(jié)構(gòu) 8086 引腳圖 8086具有兩種不同工作方式,即最小模式和最大模式。若把MN/MX#引腳連至電源+5V

3、,則為最小模式。若把它接地,則處在最大模式。在最小模式中引腳定義AD15AD0(Address Data Bus):16位地址/數(shù)據(jù)總線,分時(shí)復(fù)用。傳輸?shù)刂窌r(shí)三態(tài)輸出,傳輸數(shù)據(jù)時(shí)三態(tài)雙向輸入/輸出。在總線周期T1狀態(tài),CPU在這些引腳上輸出存儲(chǔ)器或I/O端口的地址、在T2T4狀態(tài),用來(lái)傳送數(shù)據(jù)、在中斷響應(yīng)及系統(tǒng)總線“保持響應(yīng)”周期一,AD15AD0被置成高阻狀態(tài)。A19/S6A16/S3(Address/Status):地址/狀態(tài)線,三態(tài),輸出,分時(shí)復(fù)用。在T1狀態(tài)作地址線用,A19A16與A15A0一起構(gòu)成20位物理地址,可訪問(wèn)存儲(chǔ)器1M字節(jié)。當(dāng)CPU訪問(wèn)I/O短口時(shí),A19A16為“0”、

4、在T2T4狀態(tài)作狀態(tài)線用,S6S3輸出狀態(tài)信息。BHE/S7(Bus High Enable/Status):高8位數(shù)據(jù)線允許/狀態(tài)信號(hào),三態(tài)輸出,低電平有效。16位數(shù)據(jù)傳送時(shí)在T1狀態(tài),用BHE指出高8位數(shù)據(jù)總線上數(shù)據(jù)有效,用AD0地址線指出低8位數(shù)據(jù)線上數(shù)據(jù)有效。在T2T4狀態(tài)S7輸出狀態(tài)信息,在“保持響應(yīng)”周期被置成高阻狀態(tài)。MN/MX(Minimun/Maximun):最小/最大工作模式選擇信號(hào),輸入。當(dāng)MN/MX接+5V時(shí),CPU工作在最小模式,當(dāng)MN/MX接地時(shí),CPU工作在最大模式。RD(Read):讀選通信號(hào),三態(tài),輸出,低電平有效。由M/IO信號(hào)區(qū)分讀存儲(chǔ)器或I/O端口,在讀

5、總線周期的T1、T2、TW狀態(tài),RD為低電平。在“保持響應(yīng)”周期,被置成高阻狀態(tài)。WR(Write):寫(xiě)選通信號(hào),三態(tài),輸出,低電平有效。由M/IO信號(hào)區(qū)分寫(xiě)存儲(chǔ)器或I/O端口,在讀總線周期的T1、T2、TW狀態(tài),WR為低電平。在DMA方式時(shí),被置成高阻狀態(tài)。M/IO(Memory/Input and Output):存儲(chǔ)器或I/O端口控制信號(hào),三態(tài),輸出。M/IO信號(hào)為高電平時(shí),表示CPU正在訪問(wèn)存儲(chǔ)器,信號(hào)為低電平時(shí),表示CPU正在訪問(wèn)I/O端口。一般在前一個(gè)總線周期的T4狀態(tài),有效,直到本周期的T4狀態(tài)為止。在DMA方式時(shí),M/IO置為高阻狀態(tài)。ALE 地址鎖存允許信號(hào),輸出,高電平有效

6、。READY(Ready):準(zhǔn)備就緒信號(hào),輸入,高電平有效。在T3狀態(tài)結(jié)束后CPU插入一個(gè)或幾個(gè)TW暫停狀態(tài),直到READY信號(hào)有效后,才進(jìn)入T4狀態(tài),完成數(shù)據(jù)傳送過(guò)程。RESET(Reset):復(fù)位信號(hào),輸入,高電平有效。CPU收到復(fù)位信號(hào)后,停止現(xiàn)行操作,并初始化段寄存器DS、SS、ES,標(biāo)志寄存器PSW,指令指針I(yè)P和指令隊(duì)列,而使CS=FFFFH。RESET信號(hào)至少保持4個(gè)時(shí)鐘周期以上的高電平,當(dāng)它變成低電平時(shí),CPU執(zhí)行重啟動(dòng)過(guò)程,8086/8088將從地址FFFF0H開(kāi)始執(zhí)行指令。INTR(Interrupt Request):可屏蔽中斷請(qǐng)求信號(hào),輸入,電平觸發(fā),高電平有效。當(dāng)外設(shè)

7、接口向CPU發(fā)出中斷申請(qǐng)時(shí),INTR信號(hào)變成高電平。INTA(Interrupt Acknowledge):中斷響應(yīng)信號(hào),輸出,低電平有效。在中斷響應(yīng)總線周期T2、T3、TW狀態(tài),CPU發(fā)出兩個(gè)INTA負(fù)脈沖,第一個(gè)負(fù)脈沖通知外設(shè)接口已響應(yīng)它的中斷請(qǐng)求,外設(shè)接口收到第二個(gè)負(fù)脈沖信號(hào)后,向數(shù)據(jù)總線沙鍋內(nèi)放中斷類(lèi)型號(hào)。NMI(Non Maskable Interrupt Request):不可屏蔽中斷請(qǐng)求信號(hào),輸入,邊沿觸發(fā),正跳變有效。此類(lèi)中斷請(qǐng)求不受中斷允許標(biāo)志位IF的影響,也不能用軟件進(jìn)行屏蔽。一旦收到信號(hào),在當(dāng)前指令執(zhí)行完后,自動(dòng)引起類(lèi)型2中斷。經(jīng)常處理電源掉點(diǎn)的緊急情況。TEST(Tes

8、t):測(cè)試信號(hào),輸入,低電平有效。CLK(Clock):時(shí)鐘信號(hào),輸入。VCC(+5V),GND(地)2.8259A的結(jié)構(gòu)a.中斷的概念: 所謂中斷,是指CPU在正常運(yùn)行時(shí)由于程序的預(yù)先安排或內(nèi)外部事件引起CPU暫行正在運(yùn)行的程序,轉(zhuǎn)到為預(yù)先安排的事件或內(nèi)外部事件服務(wù)的程序中去,服務(wù)程序執(zhí)行結(jié)束后再返回到暫行的程序繼續(xù)執(zhí)行。引起中斷的事件稱為中斷源。預(yù)先安排的事件是指PC的中斷指令。內(nèi)部事件是指系統(tǒng)板上出現(xiàn)的一些事件信號(hào),中斷指令也可看作內(nèi)部事件。外部事件是指某些接口設(shè)備所發(fā)出的請(qǐng)求中斷程序執(zhí)行的信號(hào),這些信號(hào)稱為中斷請(qǐng)求信號(hào),中斷請(qǐng)求信號(hào)是不能預(yù)知的,然而它們一旦請(qǐng)求中斷,則會(huì)向CPU發(fā)出信

9、號(hào),這樣CPU就無(wú)需花大量時(shí)間去查詢這些信號(hào)是否產(chǎn)生。中斷請(qǐng)求信號(hào)一旦產(chǎn)生,CPU得知這個(gè)信號(hào)后,便立即去執(zhí)行相應(yīng)的中斷服務(wù)程序,執(zhí)行完成后CPU恢復(fù)被中斷的程序。有時(shí)中斷源有幾個(gè),因此CPU響應(yīng)這些中斷就得有先后次序,這稱為中斷優(yōu)先級(jí)。優(yōu)先級(jí)高的中斷首先響應(yīng),優(yōu)先級(jí)低的中斷暫不響應(yīng)。CPU響應(yīng)中斷由中斷源提供地址信息,引導(dǎo)程序轉(zhuǎn)移到中斷服務(wù)程序中去,這個(gè)地址信息稱為中斷向量,它一般是和中斷源相對(duì)應(yīng)的,PC機(jī)采用類(lèi)型碼來(lái)識(shí)別中斷源。 b.中斷控制器8259A的邏輯結(jié)構(gòu) 在微機(jī)中,利用8259芯片來(lái)完成中斷。 中斷控制器8259引腳圖芯片引腳定義如下: D0D7:數(shù)據(jù)線,雙向。 WR#:寫(xiě)控制信

10、號(hào),低電平有效。 RD#:讀控制信號(hào),低電平有效。 CS#:片選端,低電平有效。 A0:地址線。在8088中由CPU的A0接入8259的A0端;而在8086中由CPU的A1接入8259的A0端。IRQ0IRQ7:8級(jí)中斷請(qǐng)求輸入。 INT:中斷請(qǐng)求信號(hào)(輸出)。用來(lái)向CPU發(fā)中斷請(qǐng)求信號(hào)。 INTA:中斷應(yīng)答線(輸入)。當(dāng)接收到CPU的應(yīng)答信號(hào)后,8259A就把中斷向量類(lèi)型號(hào)送到數(shù)據(jù)線。 SP#/EN#:在緩沖器工作方式作為輸入信號(hào)允許緩沖器選通。在主從工作方式作為輸入信號(hào)由該輸入腳的電平來(lái)區(qū)分“主”或“從” 8259A,若輸入高電平則為“主” 8259A,若輸入低電平則為“從” 8259A。

11、 CAS0CAS2級(jí)聯(lián)控制信號(hào)。系統(tǒng)中最多可以把8級(jí)中斷請(qǐng)求擴(kuò)展為64級(jí)主從式中斷請(qǐng)求,對(duì)于“主” 8259A,CAS0CAS2為輸出信號(hào),對(duì)于“從” 8259A,CAS0CAS2為輸入信號(hào)。c.8259A工作原理當(dāng)一個(gè)中斷請(qǐng)求從IR0到IR7中的某根線到達(dá)IMR時(shí),IMR首先判斷此IR是否被屏蔽,如果被屏蔽,則此中斷請(qǐng)求被丟棄;否則,則將其放入IRR中。在此中斷請(qǐng)求不能進(jìn)行下一步處理之前,它一直被放在IRR中。一旦發(fā)現(xiàn)處理中斷的時(shí)機(jī)已到,將從所有被放置于IRR中的中斷中挑選出一個(gè)優(yōu)先級(jí)最高的中斷,將其傳遞給CPU去處理。IR號(hào)越低的中斷優(yōu)先級(jí)別越高,比如IR0的優(yōu)先級(jí)別是最高的。8259A通

12、過(guò)發(fā)送一個(gè)INTR信號(hào)給CPU,通知CPU有一個(gè)中斷到達(dá)。CPU收到這個(gè)信號(hào)后,會(huì)暫停執(zhí)行下一條指令,然后發(fā)送一個(gè)INTA信號(hào)給8259A。8259A收到這個(gè)信號(hào)之后,馬上將ISR中對(duì)應(yīng)此中斷請(qǐng)求的Bit設(shè)置,同時(shí)IRR中相應(yīng)的bit會(huì)被reset。比如,如果當(dāng)前的中斷請(qǐng)求是IR3的話,那么ISR中的bit-3就會(huì)被設(shè)置,IRR中IR3對(duì)應(yīng)的bit就會(huì)被reset。這表示此中斷請(qǐng)求正在被CPU處理,而不是正在等待CPU處理。隨后,CPU會(huì)再次發(fā)送一個(gè)INTA信號(hào)給8259A,要求它告訴CPU此中斷請(qǐng)求的中斷向量是什么,這是一個(gè)從0到255的一個(gè)數(shù)。8259A根據(jù)被設(shè)置的起始向量號(hào)(起始向量號(hào)通

13、過(guò)中斷控制字ICW2被初始化)加上中斷請(qǐng)求號(hào)計(jì)算出中斷向量號(hào),并將其放置在Data Bus上。3.CPU中斷處理的過(guò)程:4.CPU在系統(tǒng)的應(yīng)用5.對(duì)8086的初始化 因?yàn)?259的內(nèi)部寄存器尋址與命令字的寫(xiě)入順序有關(guān),所以,對(duì)8259的初始化一定要按規(guī)定的順序進(jìn)行,如下圖。6.設(shè)置中斷向量表 本實(shí)驗(yàn)設(shè)計(jì)中采用一片8259A中斷控制芯片工作于主片方式,8個(gè)中斷請(qǐng)求,求輸入端IR0IR7對(duì)應(yīng)的中斷型號(hào)為07,中斷矢量關(guān)系如下表所示四實(shí)驗(yàn)設(shè)備PC機(jī)一臺(tái),proteus仿真軟件以及emu8086編譯軟件。五硬件電路圖a.原理圖 b.接口電路c.原理布圖 六匯編程序設(shè)計(jì);定義堆棧-STACK SEGME

14、NT STACK DB 200 DUP(0) STACK ENDS ;定義變量-DATA SEGMENT ;定義CNT=1CNT DB 1DATA ENDS;代碼段code SEGMENT 'code'assume CS:code,DS:datastart: MOV AX,DATA MOV DS,AX CLI ;修改中斷向量前關(guān)中斷 MOV AX,0 MOV ES,AX ;es段=0 MOV SI,60H*4 ;設(shè)置中斷向量96號(hào)中斷 MOV AX,OFFSET int0 ;中斷入口地址 ;stosw MOV ES:SI,AX ;si=60h*4,存放入口地址 ->IP

15、8086 MOV AX,CS ;seg int0 ->CS 8086 ;stosw; MOV ES:SI+2,AX ;初始化8259 MOV AL,00010011b MOV DX,400H ;ICW1=0001 0011 B /0100 0001 0000 A0=0,D4=1,CS=0 400H OUT DX,AL MOV AL,060h ;060b MOV DX,402h ;ICW2=0110 0000 B /0100 0000 0010 A0=1,CS=0 402H OUT DX,AL MOV AL,1bh ;ICW4=0001 1011 B /1bh OUT DX,AL MOV

16、DX,402h MOV AL,00h ;OCW1,八個(gè)中斷全部開(kāi)放00h OUT DX,AL MOV AL,20H ; EOI OUT 20H,AL ;MOV DX,400h ;/0100 0000 0000 A0=0,CS=0 ;MOV AL,60H ;OCW2,非特殊EOI結(jié)束中斷 ;OUT DX,AL ;OCW2可以不賦值 ;完成8259初始化 MOV AL,cnt ;初始cnt=1 MOV DX,0200H ;led的地址 /0010 0000 0000 ,led=0 OUT DX,AL ;開(kāi)始第一個(gè)燈亮 STI ;開(kāi)中斷l(xiāng)i: ;8086模型有問(wèn)題,它取得的中斷號(hào)是最后發(fā)到總線上的數(shù)

17、據(jù),并不是由8259發(fā)出的中斷號(hào) ;所以造成了要在這里執(zhí)行EOI的假相,這三句與下面的指令效果是一樣的 MOV DX,400H ;CS=0 400H MOV AL,60h ;如果改為其它值,將出錯(cuò),因?yàn)橹挥?0H有中斷向量 OUT DX,AL JMP li ;中斷服務(wù)程序- int0: CLI ;關(guān)中斷, MOV AL,cnt ;cnt=1; ROL AL,1 ;cnt=cnt<<1 MOV cnt,AL MOV DX,0200h ;led=cnt<<1 OUT DX,AL STI ;開(kāi)中斷 IRET ;返回主程序;- code ENDS END start7 實(shí)驗(yàn)結(jié)果

18、:a.emu8086編譯圖b.仿真初始狀態(tài)c.按下開(kāi)關(guān)后的仿真結(jié)果八實(shí)驗(yàn)分析 經(jīng)過(guò)一周的時(shí)間的努力,使得這次的實(shí)驗(yàn)成功的完成,在這次實(shí)驗(yàn)過(guò)程中我對(duì)8259進(jìn)行了一系列的研究,在一般中斷實(shí)驗(yàn),為了保護(hù)現(xiàn)場(chǎng),程序開(kāi)頭都會(huì)引用堆棧把把現(xiàn)在的程序放入堆棧中進(jìn)行保護(hù),所以,PUSH DS就起到這樣的作用.在中斷程序結(jié)束后,為了能回到之前執(zhí)行的程序入口,還得用POP DS 指令返回現(xiàn)場(chǎng). 這個(gè)實(shí)驗(yàn)是關(guān)于8259的單中斷,不牽涉級(jí)聯(lián)問(wèn)題,所以,8259的初始化只需要看主片就可了.初始化的時(shí)候,一般先使用CLI指令將所有的可屏蔽中斷禁止,然后寫(xiě)入始化字.8259有四個(gè)初始化控制字ICW1,ICW2,ICW3,ICW4,由于8259只有一根地址線,因此對(duì)各個(gè)制字的操作是按照一定的順序并結(jié)合某些數(shù)據(jù)位來(lái)進(jìn)行尋址設(shè)置的.當(dāng)初始化完成后,對(duì)8259的操作命令字的尋址是通過(guò)8259的地址線A0和某些數(shù)據(jù)位結(jié)合來(lái)進(jìn)行的. 通過(guò)此次課程設(shè)計(jì),發(fā)現(xiàn)了自己有很多地方不足,感覺(jué)我不能很好地把平時(shí)學(xué)的知識(shí)應(yīng)用到實(shí)際實(shí)驗(yàn)中。因此,通過(guò)本次課程設(shè)計(jì),我認(rèn)識(shí)到做實(shí)驗(yàn)首先要端正實(shí)驗(yàn)態(tài)度,正確對(duì)待

溫馨提示

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