可控制循環(huán)燈設(shè)計(jì)微機(jī)原理課程設(shè)計(jì)_第1頁(yè)
可控制循環(huán)燈設(shè)計(jì)微機(jī)原理課程設(shè)計(jì)_第2頁(yè)
可控制循環(huán)燈設(shè)計(jì)微機(jī)原理課程設(shè)計(jì)_第3頁(yè)
可控制循環(huán)燈設(shè)計(jì)微機(jī)原理課程設(shè)計(jì)_第4頁(yè)
可控制循環(huán)燈設(shè)計(jì)微機(jī)原理課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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專(zhuān)業(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ù)總線(xiàn),分時(shí)復(fù)用。傳輸?shù)刂窌r(shí)三態(tài)輸出,傳輸數(shù)據(jù)時(shí)三態(tài)雙向輸入/輸出。在總線(xiàn)周期t1狀態(tài),cpu在這些引腳上輸出存儲(chǔ)器或i/o端口的地址、在t2t4狀態(tài),用來(lái)傳送數(shù)據(jù)、在中斷響應(yīng)及系統(tǒng)總線(xiàn)“保持響應(yīng)”周期一,ad15ad0被置成高阻狀態(tài)。a19/s6a16/s3(address/status):地址/狀態(tài)線(xiàn),三態(tài),輸出,分時(shí)復(fù)用。在t1狀態(tài)作地址線(xiàn)用,a19a16與a15a0一起構(gòu)成20位物理地址,可訪(fǎng)問(wèn)存儲(chǔ)器1m字節(jié)。當(dāng)cpu訪(fǎng)問(wèn)i/o短口時(shí),a19a16為“0”、

4、在t2t4狀態(tài)作狀態(tài)線(xiàn)用,s6s3輸出狀態(tài)信息。bhe/s7(bus high enable/status):高8位數(shù)據(jù)線(xiàn)允許/狀態(tài)信號(hào),三態(tài)輸出,低電平有效。16位數(shù)據(jù)傳送時(shí)在t1狀態(tài),用bhe指出高8位數(shù)據(jù)總線(xiàn)上數(shù)據(jù)有效,用ad0地址線(xiàn)指出低8位數(shù)據(jù)線(xiàn)上數(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、總線(xiàn)周期的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端口,在讀總線(xiàn)周期的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正在訪(fǎng)問(wèn)存儲(chǔ)器,信號(hào)為低電平時(shí),表示cpu正在訪(fǎng)問(wèn)i/o端口。一般在前一個(gè)總線(xiàn)周期的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,指令指針ip和指令隊(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)總線(xiàn)周期t2、t3、tw狀態(tài),cpu發(fā)出兩個(gè)inta負(fù)脈沖,第一個(gè)負(fù)脈沖通知外設(shè)接口已響應(yīng)它的中斷請(qǐng)求,外設(shè)接口收到第二個(gè)負(fù)脈沖信號(hào)后,向數(shù)據(jù)總線(xiàn)沙鍋內(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í)行。引起中斷的事件稱(chēng)為中斷源。預(yù)先安排的事件是指pc的中斷指令。內(nèi)部事件是指系統(tǒng)板上出現(xiàn)的一些事件信號(hào),中斷指令也可看作內(nèi)部事件。外部事件是指某些接口設(shè)備所發(fā)出的請(qǐng)求中斷程序執(zhí)行的信號(hào),這些信號(hào)稱(chēng)為中斷請(qǐng)求信號(hào),中斷請(qǐng)求信號(hào)是不能預(yù)知的,然而它們一旦請(qǐng)求中斷,則會(huì)向cpu發(fā)出信

9、號(hào),這樣cpu就無(wú)需花大量時(shí)間去查詢(xún)這些信號(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)這些中斷就得有先后次序,這稱(chēng)為中斷優(yōu)先級(jí)。優(yōu)先級(jí)高的中斷首先響應(yīng),優(yōu)先級(jí)低的中斷暫不響應(yīng)。cpu響應(yīng)中斷由中斷源提供地址信息,引導(dǎo)程序轉(zhuǎn)移到中斷服務(wù)程序中去,這個(gè)地址信息稱(chēng)為中斷向量,它一般是和中斷源相對(duì)應(yīng)的,pc機(jī)采用類(lèi)型碼來(lái)識(shí)別中斷源。 b.中斷控制器8259a的邏輯結(jié)構(gòu) 在微機(jī)中,利用8259芯片來(lái)完成中斷。 中斷控制器8259引腳圖芯片引腳定義如下: d0d7:數(shù)據(jù)線(xiàn),雙向。 wr#:寫(xiě)控制信

10、號(hào),低電平有效。 rd#:讀控制信號(hào),低電平有效。 cs#:片選端,低電平有效。 a0:地址線(xiàn)。在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)答線(xiàn)(輸入)。當(dāng)接收到cpu的應(yīng)答信號(hào)后,8259a就把中斷向量類(lèi)型號(hào)送到數(shù)據(jù)線(xiàn)。 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中的某根線(xiàn)到達(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的話(huà),那么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ā)到總線(xiàn)上的數(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只有一根地址線(xiàn),因此對(duì)各個(gè)制字的操作是按照一定的順序并結(jié)合某些數(shù)據(jù)位來(lái)進(jìn)行尋址設(shè)置的.當(dāng)初始化完成后,對(duì)8259的操作命令字的尋址是通過(guò)8259的地址線(xiàn)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)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論