微機原理實驗指導書-硬件部分(2015)(1)_第1頁
微機原理實驗指導書-硬件部分(2015)(1)_第2頁
微機原理實驗指導書-硬件部分(2015)(1)_第3頁
微機原理實驗指導書-硬件部分(2015)(1)_第4頁
微機原理實驗指導書-硬件部分(2015)(1)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、,奇地址送入55H,符合上圖的結果2、 修改程序,實現(xiàn)從2000H到200FH單元依次賦值00H0FH的功能。設計思想:通過把AL值賦給【si】,然后使AL,si同時自加1,循環(huán)16次即可程序流程圖:初始化DS初始化SI開始循環(huán)次數(shù)CX=01hAL賦初值0h目標單元置數(shù)AL=AL+1SI=SI+1CX=0?空操作NY結束代碼: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; 設置斷點處 mov cx,0010h; 設置循環(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;設置斷點處 jmp startcode ends end start結果:九、實驗中的問題及其解決方法問題:(1)范例程序中按題目

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

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

8、。四、實驗原理介紹本實驗用到兩部分電路:開關量輸入輸出電路,簡單I/O口擴展電路。五、實驗步驟1、實驗接線:(表示相互連接)CS0 CS244; CS1CS273; 平推開關的輸出K1K8 IN0IN7(對應連接); O0O7LED1LED8。2、編輯程序,單步運行,調試程序3、調試通過后,全速運行程序,觀看實驗結果。4、編寫實驗報告。六、實驗提示74LS244或74LS273的片選信號可以改變,例如連接CS2,此時應同時修改程序中相應的地址。七、實驗結果程序全速運行后,邏輯電平開關的狀態(tài)改變應能在LED上顯示出來。例如:K2置于L位置,則對應的LED2應該點亮。八、實驗范例程序框圖(實驗程序

9、名: T244273.ASM)九、程序源代碼清單十、思考題:將74LS244的片選信號CS244改接CS2,將74LS273的片選信號CS273改接CS3,修改程序實現(xiàn)與范例程序相同的功能。程序流程圖:代碼:assume cs:code code segment public org 100hstart: mov dx,04c0h ;74LS244地址 in al,dx ;讀輸入開關量 mov dx,04d0h ;74LS273地址 out dx,al ;輸出至LED jmp start code ends end start分析:原CS244接CS0,CS0端口地址04a0h,CS273接C

10、S1,CS1端口地址為04b0h。只需把接線換掉后,把對應的端口地址改正即可.即CS2的地址為04c0h,CS3的地址為04d0h十一、遇到的問題該實驗在調試的過程中,沒有遇到問題,只是第一次的那臺儀器壞了,發(fā)現(xiàn)燈都不亮,之后換了一臺儀器,連線,編譯,運行,就得到正確結果了。實驗3 8255并行口實驗一、實驗目的掌握8255A的編程原理。二、實驗設備 微機實驗箱、8086CPU模塊。三、實驗內容 8255A的A口作為輸入口,與邏輯電平開關相連。8255A的B口作為輸出口,與發(fā)光二極管相連。編寫程序,使得邏輯電平開關的變化在發(fā)光二極管上顯示出來。四、實驗原理介紹本實驗用到兩部分電路:開關量輸入輸

11、出電路和8255可編程并口電路。五、實驗步驟1、實驗接線CS0CS8255; PA0PA7 平推開關的輸出K1K8; PB0PB7發(fā)光二極管的輸入LED1LED8。2、編程并全速或單步運行。3、全速運行時撥動開關,觀察發(fā)光二極管的變化。當開關某位置于L時,對應的發(fā)光二極管點亮,置于H時熄滅。六、實驗提示8255A是比較常用的一種并行接口芯片,其特點在許多教科書中均有介紹。8255A有三個8位的輸入輸出端口,通常將A端口作為輸入用,B端口作為輸出用,C端口作為輔助控制用,本實驗也是如此。實驗中,8255A工作于基本輸入輸出方式(方式0)。七、實驗結果程序全速運行后,邏輯電平開關的狀態(tài)改變應能在L

12、ED上顯示出來。例如:K2置于L位置,則對應的LED2應該點亮。八、實驗范例程序框圖及源代碼(實驗程序名:t8255.asm)九、思考題:1、修改接線CS2CS8255,并要求開關置“H”(下)位置時對應LED亮,修改程序實現(xiàn)相應功能。程序流程圖:開始設置8255工作方式讀A口AX取反輸出到B口結束代碼:assume cs:code code segment public org 100hstart: mov dx,04c6h;控制寄存器地址(改為04c6h) mov ax,90h;設置為A口輸入,B口輸出 out dx,axstart1: mov dx,04c0h;A口地址(改為04c0h)

13、 in ax,dx xor ax,0ffffh; 取反輸入 mov dx,04c2h;B口地址(改為04c2h) out dx,ax;輸出 jmp start1code endsend start說明:由于換成CS2和CS8255相連,因此三個地址應分別修改為:04c6h,04c0h,04c2h由于要求開關置下時燈亮,因此需要從A口讀取開關狀態(tài)到AX后,對AX中的內容取反,即可實現(xiàn)要求。取反的方法可以用not ax語句,也可以用異或xor的取反,要取反的位與1異或我這里采用異或。實驗4 8253定時器/計數(shù)器接口實驗一、實驗目的掌握8253定時器的編程原理,用示波器觀察不同模式下的輸出波形。二

14、、實驗設備 微機實驗箱、8086CPU模塊、示波器。三、實驗內容 了解8253計數(shù)器的不同工作方式,掌握其初始化控制字對定時/記數(shù)效果的影響。四、實驗原理介紹本實驗用到兩部分電路:脈沖產(chǎn)生電路、8253定時器/計數(shù)器電路五、實驗步驟1、實驗連線:CS0CS8253 OUT08253CLK2 OUT2LED1 OUT1LED2CLK38253CLK0,CLK38253CLK12、編程調試程序3、全速運行,觀察實驗結果六、實驗提示8253是計算機系統(tǒng)中經(jīng)常使用的可編程定時器/計數(shù)器,其內部有三個相互獨立的計數(shù)器,分別稱為T0,T1,T2。8253有多種工作方式,其中方式3為方波方式。當計數(shù)器設好初

15、值后,計數(shù)器遞減計數(shù),在計數(shù)值的前一半輸出高電平,后一半輸出低電平。實驗中,T0、T1的時鐘由CLK3提供,其頻率為750KHz。程序中,T0的初值設為927CH(37500十進制),則OUT0輸出的方波周期為(37500*4/3*10-6=0.05s)。T2采用OUT0的輸出為時鐘,則在T2中設置初值為n時,則OUT2輸出方波周期為n*0.05s。n的最大值為FFFFH,所以OUT2輸出方波最大周期為3276.75s(=54.6分鐘)??梢?,采用計數(shù)器疊加使用后,輸出周期范圍可以大幅度提高,這在實際控制中是非常有用的。七、實驗結果程序全速運行后,LED1按一定周期閃爍(周期理論值為0.2s)

16、,LED2在高頻脈沖信號(約15KHz)影響下,有微弱的光亮,但無明顯的周期變化現(xiàn)象。八、實驗范例程序框圖及源代碼(實驗程序名:t8253.asm)九、思考題:1、為什么說范例程序運行時LED1閃爍周期的理論值是0.2秒?在范例程序設置LED2的最大閃爍周期是多少?請分析說明。(1)LED1與OUT2連接計數(shù)器0的初值設為927CH(37500),它的時鐘由CLK3提供,其頻率為750KHz,所以OUT0輸出的方波周期為(37500*4/3*10-6=0.05s)。計數(shù)器2采用OUT0的輸出為時鐘,它的頻率為(1/0.05)Hz,計數(shù)器2設置初值為04H(4)時,所以OUT2輸出方波周期為4*

17、0.05s=0.2s所以LED1的閃爍周期為0.2s(2)LED2與OUT1連接所LED2的閃爍周期即為計數(shù)器1的周期計數(shù)器1的初值為32H(50),它的時鐘也由CLK3提供,頻率為750KHz,所以OUT1輸出的周期為(50*4/3*10-6=6.7*10(-5)s),即LED2的閃爍周期。由于周期過小,人眼無法識別所以實驗結果中,LED2有微弱變化,但無明顯閃爍。2、修改片選信號接線使CS1和CS8253連接,并要求LED1的閃爍周期變?yōu)?秒(亮2秒,滅2秒),修改程序實現(xiàn)功能。程序流程圖:開始寫T0方式控制字寫T0計數(shù)初值寫T1方式控制字寫T1計數(shù)初值寫T2方式控制字寫T2計數(shù)初值空操作

18、結束求設置的計數(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,04b0h ;計數(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,04b

19、2h ;計數(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 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_)

20、。再將計數(shù)器2的計數(shù)初值改為50H(4/0.05=80=50H)遇到的問題:第一次連線調試的時候,發(fā)現(xiàn)燈閃爍得頻率很快,仔細檢查程序,發(fā)現(xiàn)初始計數(shù)值設計小了,通過公式計算,得到計數(shù)值需要設置為50H,才使得周期為4s。重新調試,得到了正確結果實驗58259中斷控制器實驗一、實驗目的1、掌握8259A的工作原理。2、掌握編寫中斷服務程序方法。3、掌握初始化中斷向量的方法。二、實驗設備 微機實驗箱、8086CPU模塊。三、實驗內容了解中斷處理的原理,掌握利用中斷控制器進行中斷申請和中斷操作的方法。四、實驗原理介紹本實驗用到三部分電路:電平開關電路、簡單I/O口擴展電路和8259中斷控制器電路。五、

21、實驗步驟1、實驗接線CS0 CS8259 CS3 CS273 O0O3LED1LED4 K1K4IR0IR3 INTINT( 8086CPU板) INTAINTA(8086CPU板)2、編譯調試程序3、全速運行程序,撥動某一電平開關,觀察LED的亮滅情況。六、實驗提示1、 8259的使用說明請詳細閱讀教科書。2、8086的中斷系統(tǒng)是向量中斷方式。內存中特定位置有一中斷向量表,表內存有不同中斷類型的中斷向量(中斷入口地址)。不同中斷類型的中斷向量在表內有對應的偏移地址,其計算方法是:中斷類型*4。3、中斷類型由8259通過數(shù)據(jù)總線送給8086,8086內部電路會將該類型值自動乘4,而后賦給指令指

22、針,從而轉向中斷向量表的相應單元取得中斷入口地址,之后就進入中斷服務程序。請仔細研讀8259的工作時序。4、中斷類型的高5位由8259寄存器ICW2決定,低3位由中斷源IRx的編碼自動填入。IR0IR7的編碼分別為000,001,010,011,100,101,110,111。七、實驗結果全速運行程序,由上往下?lián)軇娱_關時,相應位置的LED點亮,其余LED全滅。八、實驗范例程序框圖及源代碼(實驗程序名:t8259.asm) 九、思考題:1、 說明源代碼8259初始化所設置的所有中斷控制字的值和含義(按位說明)。(1)movdx,04a0hmovax,13houtdx,axICW1(初始化字),寫

23、入的值為13h,化為二進制后:00010011。含義:邊沿觸發(fā),地址間距為8,單片8259A,需要ICW4。 (2)movdx,04a2hmovax,80houtdx,axICW2(中斷類型碼字),寫入的值為80h,化為二進制后:10000000。含義:說明對應于IR0IR7的中斷類型碼為80h87h。(3)movax,01houtdx,axICW4(中斷結束方式字),寫入的值為01h,化為二進制后:00000001。含義:普通全嵌套方式,非緩沖方式,正常EOI,8086/8088模式。 (4)movax,00houtdx,axOCW1(屏蔽控制字),寫入的值為00h,即00000000b。含

24、義:全部為復位屏蔽,開放所有中斷。2、 修改接線IR3P+(實驗箱右下角),并修改源程序,使按實驗箱右下角“Pules”鍵時LED1LED4全亮。程序流程圖:開始8259初始化開中斷AX=00H?YAX輸出N延時中斷服務流程關中斷AX置數(shù)開中斷中斷返回代碼及注釋:assume cs:code code segment public org 100h; 在代碼段0100h偏移地址處開始存放代碼start:mov cx,0start1: cli ;關中斷,防止有些硬件中斷對程序的干擾mov dx,04a0h ; 寫入ICW1的端口地址為04a0h mov ax,13h ; ICW1為13H,化為二

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

26、0h ;初始化中斷向量表mov ax,offset int0 ;IR0的中斷服務程序入口地址放入中斷向量表中mov ds:di,ax ;先放IPadd di,2mov ds:di,100h ;再放CS值adddi,2mov ax,offset int1 ; IR1的中斷服務程序入口地址放入中斷向量表中mov ds:di,axadd di,2mov ds:di,100hadddi,2mov ax,offset int2; IR2的中斷服務程序入口地址放入中斷向量表中mov ds:di,axadd di,2mov ds:di,100hadddi,2mov ax,offset int3 ; IR3的

27、中斷服務程序入口地址放入中斷向量表中mov ds:di,axadd di,2 ;上述程序為芯片8259的初始化程序 mov ds:di,100h ;建議不熟練者不要修改。main: movax,0sti ;開中斷。waiting:cmp ax,0h je waiting ;沒發(fā)生中斷,則等待nopnopmov dx,04d0houtdx,ax ;對應LED燈亮movcx,0delay:loopdelay ;數(shù)字濾波,按鍵去抖jmp start1int0: cli ;關中斷。以下類推。nop ;此兩行為IR0的中斷服務程序movax,0feh ;用戶可修改。iret ;中斷返回,以下類推。int

28、1:clinop ;此兩行為IR1的中斷服務程序,movax,0fdh ;用戶可修改。iretint2:clinop ;此兩行為IR2的中斷服務程序,movax,0fbh ;用戶可修改。iretint3:clinop ;此兩行為IR3的中斷服務程序,movax,0f0h ;用戶可修改。iretcode endsend start分析:原AX的內容為0f7H,最低四位為7(0111),從左到右依次表示LED4,LED3,LED2,LED1,所以原代碼IR3只接受LED4對應的開關K4產(chǎn)生的中斷。將其改為0(0000)后,表示四盞燈同時產(chǎn)生中斷,所以同時亮。遇到的問題:一開始沒有弄清楚中斷服務程序

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

30、的工作原理,對中斷有了更深的理解,比如中斷控制字是如何設定的等等??傊@次硬件實驗需要理論與實踐的結合,在知識點理解的基礎上,通過實驗來加深理解,這樣使得知識更加形象生動。當然還要感謝老師和同學們在我遇到困難時所給予的幫助,讓我順利的完成這次硬件實驗。二、綜合設計實驗部分一、實驗設備微機實驗箱、8086CPU模塊。二、實驗要求紅綠燈的定時切換(每10秒切換一次)設置燈光測試開關K1,當K1打開(高電平)時,LED1LED4全亮,關閉時恢復正常切換。三、實驗步驟1、實驗接線:CS08255CS;CS1CS8253;CLK38253CLK0;OUT08253CLK2OUT2PA0,PA1,PA2,PA3;PB0LED1;PB1LED4;PB2LED2;PB3LED3;PA4-K1 2、編輯程序,單步運行,調試程序。3、調試通過后,全速運行程序,觀看實驗結果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論