微機(jī)原理實(shí)驗(yàn)指導(dǎo)書-硬件部分(2015)(1)_第1頁
微機(jī)原理實(shí)驗(yàn)指導(dǎo)書-硬件部分(2015)(1)_第2頁
微機(jī)原理實(shí)驗(yàn)指導(dǎo)書-硬件部分(2015)(1)_第3頁
微機(jī)原理實(shí)驗(yàn)指導(dǎo)書-硬件部分(2015)(1)_第4頁
微機(jī)原理實(shí)驗(yàn)指導(dǎo)書-硬件部分(2015)(1)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、東華大學(xué)信息學(xué)院信控實(shí)驗(yàn)中心實(shí)驗(yàn)1 存儲器讀寫實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?1.掌握PC機(jī)外存擴(kuò)展的方法。 2.熟悉6264芯片的接口方法。 3.掌握8086十六位數(shù)據(jù)存儲的方法 。二、實(shí)驗(yàn)設(shè)備 微機(jī)實(shí)驗(yàn)箱、8086CPU模塊。三、實(shí)驗(yàn)內(nèi)容 向02000020FFH單元的偶地址送入AAH,奇地址送入55H。四、實(shí)驗(yàn)原理介紹本實(shí)驗(yàn)用到存儲器電路五、實(shí)驗(yàn)步驟和要求1、實(shí)驗(yàn)接線:本實(shí)驗(yàn)無需接線。2、編寫調(diào)試程序3、運(yùn)行實(shí)驗(yàn)程序,可采取單步、設(shè)置斷點(diǎn)方式,打開內(nèi)存窗口可看到內(nèi)存區(qū)的變化。本實(shí)驗(yàn)的主要目的是學(xué)會用使用工具軟件,掌握用單步執(zhí)行和斷點(diǎn)方式運(yùn)行程序,觀察寄存器和內(nèi)存中的數(shù)據(jù)變化等程序調(diào)試的手段。六、實(shí)驗(yàn)提

2、示1、RAM區(qū)的地址為02000H,編程時可將段地址設(shè)為0100H,則偏移地址為1000H。 2、如果按字節(jié)進(jìn)行存儲,則AL為55H或AAH;如果按字進(jìn)行存儲,則AX應(yīng)為55AAH。3、6264、62256等是計算機(jī)系統(tǒng)擴(kuò)展中經(jīng)常用到的隨機(jī)存儲器芯片(RAM),主要用作數(shù)據(jù)存儲器擴(kuò)展。本實(shí)驗(yàn)所進(jìn)行的內(nèi)存置數(shù)在程序中經(jīng)常用到。計算機(jī)系統(tǒng)運(yùn)行中會頻繁地進(jìn)行內(nèi)存與外設(shè)或者內(nèi)存與內(nèi)存之間的數(shù)據(jù)傳輸,所以本實(shí)驗(yàn)雖然簡單但對理解系統(tǒng)程序的運(yùn)行很關(guān)鍵,望學(xué)習(xí)和實(shí)驗(yàn)時認(rèn)真對待。七、實(shí)驗(yàn)范例程序框圖及源代碼(實(shí)驗(yàn)程序名:RAM.ASM)八、思考題1、 單步執(zhí)行到“intram”標(biāo)號的語句時,ds寄存器的數(shù)據(jù)是什

3、么?采用斷點(diǎn)方式運(yùn)行時執(zhí)行到第一個斷點(diǎn)處,2000H202FH內(nèi)存單元的數(shù)據(jù)是什么?執(zhí)行到第二個斷點(diǎn)處,2000H200FH內(nèi)存單元的數(shù)據(jù)是什么?并根據(jù)觀察結(jié)果和對源程序的判讀簡述源程序的運(yùn)行效果。如圖,單步執(zhí)行到“intram”標(biāo)號的語句時ds寄存器的數(shù)據(jù)為0100采用斷點(diǎn)方式運(yùn)行時執(zhí)行到第一個斷點(diǎn)處,2000H202FH內(nèi)存單元的數(shù)據(jù)如圖所示。由源程序知道第一個斷點(diǎn)前的程序是為了把數(shù)據(jù)段內(nèi)存單元清0,符合上圖結(jié)果其實(shí)清零在這里可以不用,直接進(jìn)行后面的置數(shù)執(zhí)行到第二個斷點(diǎn)處,2000H200FH內(nèi)存單元的數(shù)據(jù)如圖所示。由源程序可知程序的運(yùn)行結(jié)果為向02000020FFH單元的偶地址送入AAH

4、,奇地址送入55H,符合上圖的結(jié)果2、 修改程序,實(shí)現(xiàn)從2000H到200FH單元依次賦值00H0FH的功能。設(shè)計思想:通過把AL值賦給【si】,然后使AL,si同時自加1,循環(huán)16次即可程序流程圖:初始化DS初始化SI開始循環(huán)次數(shù)CX=01hAL賦初值0h目標(biāo)單元置數(shù)AL=AL+1SI=SI+1CX=0?空操作NY結(jié)束代碼:code segment assume cs:code org 0100h ; 在代碼段0100h偏移地址處開始存放代碼start: mov ax,0100h; mov ds,ax; 數(shù)據(jù)段地址 mov es,ax mov si,1000h;偏移地址 mov cx,010

5、0h;循環(huán)次數(shù) mov al,0; al的值置0intram: mov si,al ;0賦給si inc si ;si加1 loop intram; 使得0100:1000開始處的256個單元中的數(shù)據(jù)清0 mov si,1000h; 設(shè)置斷點(diǎn)處 mov cx,0010h; 設(shè)置循環(huán)次數(shù)為16fil: mov si,al; RAM區(qū)循環(huán)置數(shù) inc si ;地址指針加1 inc al ; al中的值每執(zhí)行一次循環(huán)加1,初始值為00,加到0F loop fil nop;設(shè)置斷點(diǎn)處 jmp startcode ends end start結(jié)果:九、實(shí)驗(yàn)中的問題及其解決方法問題:(1)范例程序中按題目

6、要求設(shè)置兩個斷點(diǎn)時,全速運(yùn)行時只能運(yùn)行第一個斷點(diǎn)處的程序,而不知道怎么運(yùn)行下一個斷點(diǎn)處的程序,導(dǎo)致出不來結(jié)果(2)做思考題時,運(yùn)行所寫程序時發(fā)現(xiàn)內(nèi)存空間中上一個題目的運(yùn)行結(jié)果還在里面解決方法:(1)針對問題(1),當(dāng)執(zhí)行完第一個斷點(diǎn)執(zhí)行完畢應(yīng)該取消該斷點(diǎn),這樣在全速運(yùn)行時可以運(yùn)行到下一個斷點(diǎn),就可以觀察到程序運(yùn)行結(jié)果了。(2)針對問題(2),發(fā)現(xiàn)在初始化程序時,自己把所有的循環(huán)初值都設(shè)成了0010H(16),導(dǎo)致只有前16個內(nèi)存單元清零,而后面的內(nèi)存單元沒有初始化,保留了上次運(yùn)行的程序運(yùn)行結(jié)果。所以將初始化(清零)的循環(huán)初值設(shè)成0100H,這樣就可以初始化256個內(nèi)存單元了,把上次的結(jié)果初始化

7、為0。而后一個賦值循環(huán)的循環(huán)次數(shù)仍然為0010十、體會這個題目比較簡單,程序很簡單,主要是把循環(huán)值設(shè)置對。但是由于對軟件使用的不熟悉,因此導(dǎo)致了一些問題。在調(diào)試運(yùn)行上還是花了一些時間。通過發(fā)現(xiàn)問題,解決問題的過程,使我對這個軟件的使用更加熟練,為后面的程序設(shè)計中打下良好的基礎(chǔ)。實(shí)驗(yàn)2 簡單I/O口擴(kuò)展實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?1、 熟悉74LS273,74LS244的應(yīng)用接口方法。 2、掌握用鎖存器、三態(tài)門擴(kuò)展簡單并行輸入、輸出口的方法。二、實(shí)驗(yàn)設(shè)備 微機(jī)實(shí)驗(yàn)箱、8086CPU模塊。三、實(shí)驗(yàn)內(nèi)容 邏輯電平開關(guān)的狀態(tài)輸入74LS244,然后通過74LS273鎖存輸出,利用LED顯示電路作為輸出的狀態(tài)顯示

8、。四、實(shí)驗(yàn)原理介紹本實(shí)驗(yàn)用到兩部分電路:開關(guān)量輸入輸出電路,簡單I/O口擴(kuò)展電路。五、實(shí)驗(yàn)步驟1、實(shí)驗(yàn)接線:(«表示相互連接)CS0 «CS244; CS1«CS273; 平推開關(guān)的輸出K1K8 « IN0IN7(對應(yīng)連接); O0O7«LED1LED8。2、編輯程序,單步運(yùn)行,調(diào)試程序3、調(diào)試通過后,全速運(yùn)行程序,觀看實(shí)驗(yàn)結(jié)果。4、編寫實(shí)驗(yàn)報告。六、實(shí)驗(yàn)提示74LS244或74LS273的片選信號可以改變,例如連接CS2,此時應(yīng)同時修改程序中相應(yīng)的地址。七、實(shí)驗(yàn)結(jié)果程序全速運(yùn)行后,邏輯電平開關(guān)的狀態(tài)改變應(yīng)能在LED上顯示出來。例如:K2置于L

9、位置,則對應(yīng)的LED2應(yīng)該點(diǎn)亮。八、實(shí)驗(yàn)范例程序框圖(實(shí)驗(yàn)程序名: T244273.ASM)九、程序源代碼清單十、思考題:將74LS244的片選信號CS244改接CS2,將74LS273的片選信號CS273改接CS3,修改程序?qū)崿F(xiàn)與范例程序相同的功能。程序流程圖:代碼:assume cs:code code segment public org 100hstart: mov dx,04c0h ;74LS244地址 in al,dx ;讀輸入開關(guān)量 mov dx,04d0h ;74LS273地址 out dx,al ;輸出至LED jmp start code ends end start分析:

10、原CS244接CS0,CS0端口地址04a0h,CS273接CS1,CS1端口地址為04b0h。只需把接線換掉后,把對應(yīng)的端口地址改正即可.即CS2的地址為04c0h,CS3的地址為04d0h十一、遇到的問題該實(shí)驗(yàn)在調(diào)試的過程中,沒有遇到問題,只是第一次的那臺儀器壞了,發(fā)現(xiàn)燈都不亮,之后換了一臺儀器,連線,編譯,運(yùn)行,就得到正確結(jié)果了。實(shí)驗(yàn)3 8255并行口實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康恼莆?255A的編程原理。二、實(shí)驗(yàn)設(shè)備 微機(jī)實(shí)驗(yàn)箱、8086CPU模塊。三、實(shí)驗(yàn)內(nèi)容 8255A的A口作為輸入口,與邏輯電平開關(guān)相連。8255A的B口作為輸出口,與發(fā)光二極管相連。編寫程序,使得邏輯電平開關(guān)的變化在發(fā)光二極管

11、上顯示出來。四、實(shí)驗(yàn)原理介紹本實(shí)驗(yàn)用到兩部分電路:開關(guān)量輸入輸出電路和8255可編程并口電路。五、實(shí)驗(yàn)步驟1、實(shí)驗(yàn)接線CS0«CS8255; PA0PA7« 平推開關(guān)的輸出K1K8; PB0PB7«發(fā)光二極管的輸入LED1LED8。2、編程并全速或單步運(yùn)行。3、全速運(yùn)行時撥動開關(guān),觀察發(fā)光二極管的變化。當(dāng)開關(guān)某位置于L時,對應(yīng)的發(fā)光二極管點(diǎn)亮,置于H時熄滅。六、實(shí)驗(yàn)提示8255A是比較常用的一種并行接口芯片,其特點(diǎn)在許多教科書中均有介紹。8255A有三個8位的輸入輸出端口,通常將A端口作為輸入用,B端口作為輸出用,C端口作為輔助控制用,本實(shí)驗(yàn)也是如此。實(shí)驗(yàn)中,82

12、55A工作于基本輸入輸出方式(方式0)。七、實(shí)驗(yàn)結(jié)果程序全速運(yùn)行后,邏輯電平開關(guān)的狀態(tài)改變應(yīng)能在LED上顯示出來。例如:K2置于L位置,則對應(yīng)的LED2應(yīng)該點(diǎn)亮。八、實(shí)驗(yàn)范例程序框圖及源代碼(實(shí)驗(yàn)程序名:t8255.asm)九、思考題:1、修改接線CS2«CS8255,并要求開關(guān)置“H”(下)位置時對應(yīng)LED亮,修改程序?qū)崿F(xiàn)相應(yīng)功能。程序流程圖:開始設(shè)置8255工作方式讀A口AX取反輸出到B口結(jié)束代碼:assume cs:code code segment public org 100hstart: mov dx,04c6h;控制寄存器地址(改為04c6h) mov ax,90h;設(shè)

13、置為A口輸入,B口輸出 out dx,axstart1: mov dx,04c0h;A口地址(改為04c0h) in ax,dx xor ax,0ffffh; 取反輸入 mov dx,04c2h;B口地址(改為04c2h) out dx,ax;輸出 jmp start1code endsend start說明:由于換成CS2和CS8255相連,因此三個地址應(yīng)分別修改為:04c6h,04c0h,04c2h由于要求開關(guān)置下時燈亮,因此需要從A口讀取開關(guān)狀態(tài)到AX后,對AX中的內(nèi)容取反,即可實(shí)現(xiàn)要求。 取反的方法可以用not ax語句,也可以用異或xor的取反,要取反的位與1異或我這里采用

14、異或。實(shí)驗(yàn)4 8253定時器/計數(shù)器接口實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康恼莆?253定時器的編程原理,用示波器觀察不同模式下的輸出波形。二、實(shí)驗(yàn)設(shè)備 微機(jī)實(shí)驗(yàn)箱、8086CPU模塊、示波器。三、實(shí)驗(yàn)內(nèi)容 了解8253計數(shù)器的不同工作方式,掌握其初始化控制字對定時/記數(shù)效果的影響。四、實(shí)驗(yàn)原理介紹本實(shí)驗(yàn)用到兩部分電路:脈沖產(chǎn)生電路、8253定時器/計數(shù)器電路五、實(shí)驗(yàn)步驟1、實(shí)驗(yàn)連線:CS0«CS8253 OUT0«8253CLK2 OUT2«LED1 OUT1«LED2CLK3«8253CLK0,CLK3«8253CLK12、編程調(diào)試程序3、全速運(yùn)行,

15、觀察實(shí)驗(yàn)結(jié)果六、實(shí)驗(yàn)提示8253是計算機(jī)系統(tǒng)中經(jīng)常使用的可編程定時器/計數(shù)器,其內(nèi)部有三個相互獨(dú)立的計數(shù)器,分別稱為T0,T1,T2。8253有多種工作方式,其中方式3為方波方式。當(dāng)計數(shù)器設(shè)好初值后,計數(shù)器遞減計數(shù),在計數(shù)值的前一半輸出高電平,后一半輸出低電平。實(shí)驗(yàn)中,T0、T1的時鐘由CLK3提供,其頻率為750KHz。程序中,T0的初值設(shè)為927CH(37500十進(jìn)制),則OUT0輸出的方波周期為(37500*4/3*10-6=0.05s)。T2采用OUT0的輸出為時鐘,則在T2中設(shè)置初值為n時,則OUT2輸出方波周期為n*0.05s。n的最大值為FFFFH,所以O(shè)UT2輸出方波最大周期為

16、3276.75s(=54.6分鐘)??梢?,采用計數(shù)器疊加使用后,輸出周期范圍可以大幅度提高,這在實(shí)際控制中是非常有用的。七、實(shí)驗(yàn)結(jié)果程序全速運(yùn)行后,LED1按一定周期閃爍(周期理論值為0.2s),LED2在高頻脈沖信號(約15KHz)影響下,有微弱的光亮,但無明顯的周期變化現(xiàn)象。八、實(shí)驗(yàn)范例程序框圖及源代碼(實(shí)驗(yàn)程序名:t8253.asm)九、思考題:1、為什么說范例程序運(yùn)行時LED1閃爍周期的理論值是0.2秒?在范例程序設(shè)置LED2的最大閃爍周期是多少?請分析說明。(1)LED1 與OUT2連接 計數(shù)器0的初值設(shè)為927CH(37500),它的時鐘由CLK3提供,其頻率為

17、750KHz,所以O(shè)UT0輸出的方波周期為(37500*4/3*10-6=0.05s)。 計數(shù)器2采用OUT0的輸出為時鐘,它的頻率為(1/0.05)Hz,計數(shù)器2設(shè)置初值為04H(4)時,所以O(shè)UT2輸出方波周期為4*0.05s=0.2s 所以LED1的閃爍周期為0.2s (2) LED2與OUT1連接 所LED2的閃爍周期即為計數(shù)器1的周期計數(shù)器1的初值為32H(50),它的時鐘也由CLK3提供,頻率為750KHz,所以O(shè)UT1輸出的周期為(50*4/3*10-6=6.7*10(-5)s),即LED2的閃爍周期。 由于周期過小,人

18、眼無法識別所以實(shí)驗(yàn)結(jié)果中,LED2有微弱變化,但無明顯閃爍。2、修改片選信號接線使CS1和CS8253連接,并要求LED1的閃爍周期變?yōu)?秒(亮2秒,滅2秒),修改程序?qū)崿F(xiàn)功能。程序流程圖:開始寫T0方式控制字寫T0計數(shù)初值寫T1方式控制字寫T1計數(shù)初值寫T2方式控制字寫T2計數(shù)初值空操作結(jié)束求設(shè)置的計數(shù)初值:4/0.05=80=50h代碼及注釋:assume cs:codecode segment publicorg 100h ; 在代碼段0100h偏移地址處開始存放代碼start:mov dx,04b6h;控制寄存器mov ax,36h;計數(shù)器0,方式3out dx,axmov dx,04

19、b0h ;計數(shù)器0的地址mov ax,7Ch ;計數(shù)初值的低位為7Chout dx,ax mov ax,92h ;計數(shù)初值的高位為92hout dx,ax;計數(shù)值927Chmov dx,04b6h ;控制寄存器地址mov ax,76h;計數(shù)器1,方式3out dx,axmov dx,04b2h ;計數(shù)器1的地址 mov ax,32h ;計數(shù)初值的低位為32h out dx,ax mov ax,0;計數(shù)初值的高位為00h out dx,ax ;計數(shù)值32h mov dx,04b6h mov ax,0b6h;計數(shù)器2,方式3 out dx,ax mov dx,04b4h ;計數(shù)器2的地址 mov

20、ax,50h ; 計數(shù)值低位為50h out dx,ax mov ax,0;計數(shù)值高位為0 out dx,ax ;計數(shù)值50hnext:nopjmpnext ;讓程序一直循環(huán)執(zhí)行code ends end start分析:將所有CS0的端口地址(04a_)都改為CS1的端口地址(04b_)。再將計數(shù)器2的計數(shù)初值改為50H(4/0.05=80=50H)遇到的問題:第一次連線調(diào)試的時候,發(fā)現(xiàn)燈閃爍得頻率很快,仔細(xì)檢查程序,發(fā)現(xiàn)初始計數(shù)值設(shè)計小了,通過公式計算,得到計數(shù)值需要設(shè)置為50H,才使得周期為4s。重新調(diào)試,得到了正確結(jié)果實(shí)驗(yàn)58259中斷控制器實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、掌握8259A的工作原理

21、。2、掌握編寫中斷服務(wù)程序方法。3、掌握初始化中斷向量的方法。二、實(shí)驗(yàn)設(shè)備 微機(jī)實(shí)驗(yàn)箱、8086CPU模塊。三、實(shí)驗(yàn)內(nèi)容了解中斷處理的原理,掌握利用中斷控制器進(jìn)行中斷申請和中斷操作的方法。四、實(shí)驗(yàn)原理介紹本實(shí)驗(yàn)用到三部分電路:電平開關(guān)電路、簡單I/O口擴(kuò)展電路和8259中斷控制器電路。五、實(shí)驗(yàn)步驟1、實(shí)驗(yàn)接線CS0 «CS8259 CS3 «CS273 O0O3«LED1LED4 K1K4«IR0IR3 INT«INT( 8086CPU板) INTA«INTA(8086CPU板)2、編譯調(diào)試程序3、全速運(yùn)行程序,撥動某一電平開關(guān),觀察

22、LED的亮滅情況。六、實(shí)驗(yàn)提示1、 8259的使用說明請詳細(xì)閱讀教科書。2、8086的中斷系統(tǒng)是向量中斷方式。內(nèi)存中特定位置有一中斷向量表,表內(nèi)存有不同中斷類型的中斷向量(中斷入口地址)。不同中斷類型的中斷向量在表內(nèi)有對應(yīng)的偏移地址,其計算方法是:中斷類型*4。3、中斷類型由8259通過數(shù)據(jù)總線送給8086,8086內(nèi)部電路會將該類型值自動乘4,而后賦給指令指針,從而轉(zhuǎn)向中斷向量表的相應(yīng)單元取得中斷入口地址,之后就進(jìn)入中斷服務(wù)程序。請仔細(xì)研讀8259的工作時序。4、中斷類型的高5位由8259寄存器ICW2決定,低3位由中斷源IRx的編碼自動填入。IR0IR7的編碼分別為000,001,010,

23、011,100,101,110,111。七、實(shí)驗(yàn)結(jié)果全速運(yùn)行程序,由上往下?lián)軇娱_關(guān)時,相應(yīng)位置的LED點(diǎn)亮,其余LED全滅。八、實(shí)驗(yàn)范例程序框圖及源代碼(實(shí)驗(yàn)程序名:t8259.asm) 九、思考題:1、 說明源代碼8259初始化所設(shè)置的所有中斷控制字的值和含義(按位說明)。(1)mov dx,04a0hmov ax,13hout dx,ax ICW1(初始化字),寫入的值為13h,化為二進(jìn)制后:00010011。含義:邊沿觸發(fā),地址間距為8,單片8259A,需要ICW4。 (2)mov dx,04a2hmov ax,80hout&#

24、160;dx,ax ICW2(中斷類型碼字),寫入的值為80h,化為二進(jìn)制后:10000000。含義:說明對應(yīng)于IR0IR7的中斷類型碼為80h87h。(3)mov ax,01hout dx,ax ICW4(中斷結(jié)束方式字),寫入的值為01h,化為二進(jìn)制后:00000001。含義:普通全嵌套方式,非緩沖方式,正常EOI,8086/8088模式。 (4)mov ax,00hout dx,ax OCW1(屏蔽控制字),寫入的值為00h,即00000000b。含義:全部為復(fù)位屏蔽,開放所有中斷。2、 修改接線IR3«P+

25、(實(shí)驗(yàn)箱右下角),并修改源程序,使按實(shí)驗(yàn)箱右下角“Pules”鍵時LED1LED4全亮。程序流程圖:開始8259初始化開中斷AX=00H?YAX輸出N延時中斷服務(wù)流程關(guān)中斷AX置數(shù)開中斷中斷返回代碼及注釋:assume cs:code code segment public org 100h; 在代碼段0100h偏移地址處開始存放代碼start:mov cx,0start1: cli ;關(guān)中斷,防止有些硬件中斷對程序的干擾mov dx,04a0h ; 寫入ICW1的端口地址為04a0h mov ax,13h ; ICW1為13H,化為二進(jìn)制為00010011 out dx,ax;ICW1, I

26、CW4需要 movdx,04a2h ;寫入ICW2的端口地址為04a2h mov ax,80h ; ICW2為80H,化為二進(jìn)制為10000000out dx,ax ;ICW2中斷類型80h,IR0IR7的中斷類型碼為80h87hmov ax,01h; ICW4為01H,化為二進(jìn)制為00000001out dx,ax;ICW4;普通全嵌套方式,非緩沖方式,正常EOI,8086/8088模式mov ax,00hout dx,ax ;OCW1, 開放所有中斷nop ;以上為8259初始化 mov ax,0mov ds,axmov di,200h ;初始化中斷向量表mov ax,offset int

27、0 ;IR0的中斷服務(wù)程序入口地址放入中斷向量表中mov ds:di,ax ;先放IPadd di,2mov ds:di,100h ;再放CS值adddi,2mov ax,offset int1 ; IR1的中斷服務(wù)程序入口地址放入中斷向量表中mov ds:di,axadd di,2mov ds:di,100hadddi,2mov ax,offset int2; IR2的中斷服務(wù)程序入口地址放入中斷向量表中mov ds:di,axadd di,2mov ds:di,100hadddi,2mov ax,offset int3 ; IR3的中斷服務(wù)程序入口地址放入中斷向量表中mov ds:di,a

28、xadd di,2 ;上述程序?yàn)樾酒?259的初始化程序 mov ds:di,100h ;建議不熟練者不要修改。main: movax,0sti ;開中斷。waiting:cmp ax,0h je waiting ;沒發(fā)生中斷,則等待nopnopmov dx,04d0houtdx,ax ;對應(yīng)LED燈亮movcx,0delay:loopdelay ;數(shù)字濾波,按鍵去抖jmp start1int0: cli ;關(guān)中斷。以下類推。nop ;此兩行為IR0的中斷服務(wù)程序movax,0feh ;用戶可修改。iret ;中斷返回,以下類推。int1:clinop ;此兩行為IR1的中斷服務(wù)程序,mova

29、x,0fdh ;用戶可修改。iretint2:clinop ;此兩行為IR2的中斷服務(wù)程序,movax,0fbh ;用戶可修改。iretint3:clinop ;此兩行為IR3的中斷服務(wù)程序,movax,0f0h ;用戶可修改。iretcode endsend start分析:原AX的內(nèi)容為0f7H,最低四位為7(0111),從左到右依次表示LED4,LED3,LED2,LED1,所以原代碼IR3只接受LED4對應(yīng)的開關(guān)K4產(chǎn)生的中斷。 將其改為0(0000)后,表示四盞燈同時產(chǎn)生中斷,所以同時亮。遇到的問題:一開始沒有弄清楚中斷服務(wù)程序的工作原理,導(dǎo)致不知從何下手去修改程序,通過查

30、閱微機(jī)課本有關(guān)中斷的內(nèi)容,再對比程序,發(fā)現(xiàn),只需要改變IR3中斷服務(wù)程序,把IR3全部置0,就代表四盞燈同時中斷,即同時亮實(shí)驗(yàn)總結(jié)經(jīng)過三周的微機(jī)硬件實(shí)驗(yàn),我學(xué)到了很多東西,對于書本上的知識也有了更深層次的認(rèn)識,通過第一個給存儲單元賦值的操作,我明白了程序是如何運(yùn)行的,以及各個寄存器及存儲器內(nèi)容是如何變化的。這使得我用匯編語言編程的能力得到提升,同時也明白了匯編語言雖然是低級語言,但卻是最接近計算機(jī)核心結(jié)構(gòu)的,因此匯編語言更易被計算機(jī)識別。后面幾個硬件實(shí)驗(yàn),不僅鍛煉了我的動手操作能力以及程序調(diào)試能力,更關(guān)鍵的是明白了幾個芯片8255以及計數(shù)器8253的工作原理,對中斷有了更深的理解,比如中斷控制

31、字是如何設(shè)定的等等??傊@次硬件實(shí)驗(yàn)需要理論與實(shí)踐的結(jié)合,在知識點(diǎn)理解的基礎(chǔ)上,通過實(shí)驗(yàn)來加深理解,這樣使得知識更加形象生動。當(dāng)然還要感謝老師和同學(xué)們在我遇到困難時所給予的幫助,讓我順利的完成這次硬件實(shí)驗(yàn)。二、綜合設(shè)計實(shí)驗(yàn)部分一、實(shí)驗(yàn)設(shè)備微機(jī)實(shí)驗(yàn)箱、8086CPU模塊。二、實(shí)驗(yàn)要求紅綠燈的定時切換(每10秒切換一次)設(shè)置燈光測試開關(guān)K1,當(dāng)K1打開(高電平)時,LED1LED4全亮,關(guān)閉時恢復(fù)正常切換。三、實(shí)驗(yàn)步驟1、實(shí)驗(yàn)接線:CS0«8255CS;CS1«CS8253;CLK3«8253CLK0;OUT0«8253CLK2OUT2«PA0,PA1,PA2,PA3;PB0«LED1;PB1«LED4;PB2«LED2;PB3«LED3;PA4-K1 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論