微機原理及接口技術實驗指導書_第1頁
微機原理及接口技術實驗指導書_第2頁
微機原理及接口技術實驗指導書_第3頁
微機原理及接口技術實驗指導書_第4頁
微機原理及接口技術實驗指導書_第5頁
已閱讀5頁,還剩84頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

配有兩塊可編程器件:EPM7128被系統占用。另一塊EPM7032供用戶實驗用。兩塊器件皆可通過JTAG接口在線編程。使用十分方便。第一部分系統介紹一、系統特點6264系統RAM,地址范圍0~3FFFH,奇地址有效6264系統RAM,地址范圍0~3FFFH,偶地址有效27C64系統ROM,地址范圍FFFFF~FC000H,奇地址有效27C256系統ROM,地址范圍FFFFF~FC000H,偶地址有效1)、時鐘頻率:6.0MHz2)、存儲器二、系統概述3)、系統資源分配本系統采用可編程邏輯器件(CPLD)EPM7128做地址的編譯碼工作,可通過芯片的JTAG接口與PC機相連,對芯片進行編程。部分地址單元經譯碼后輸出(插孔CS0---CS5)給用戶使用,他們的地址固定,用戶不可改變。具體的對應關系見下地址分配。注意,用戶的地址不能與系統相沖突,否則將導致錯誤。

·地址分配CS0片選信號,地址04A0~04AF偶地址有效CS1片選信號,地址04B0~04BF偶地址有效CS2片選信號,地址04C0~04CF偶地址有效CS3片選信號,地址04D0~04DF偶地址有效CS4片選信號,地址04E0~04EF偶地址有效CS5片選信號,地址04F0~04FF偶地址有效CS6片選信號,地址0000~01FF偶地址有效CS7片選信號,地址0200~03FF偶地址有效8250片選地址:0480~048F,偶地址有效8279片選地址:0490~049F,偶地址有效所有實驗程序的起始地址為01100H,CS=0100H,IP=0100H,代碼段、數據段、堆棧段在同一個64K的地址空間中。·硬件實驗說明6264系統RAM,地址范圍0~3FFFH,奇地址有效6264系統RAM,地址范圍0~3FFFH,偶地址有效27C64系統ROM,地址范圍FFFFF~FC000H,奇地址有效27C256系統ROM,地址范圍FFFFF~FC000H,偶地址有效8066單元1)微處理器:80862)時鐘頻率:6MHz3)存儲器(1)簡單I/O擴展實驗(2)存儲器擴展實驗(3)CPLD地址譯碼實驗(4)8255可編程并口實驗(5)8253定時/計數器實驗(6)A/D0809實驗(7)D/A0832實驗(8)8250可編程串口實驗(9)8279顯示器接口實驗(10)8279鍵盤擴展實驗(11)8259可編程中斷控制器實驗(12)8237DMA控制器實驗

8066單元4)可提供的對8086的基本實驗1、熟悉74LS273,74LS244的應用接口方法。2、掌握用鎖存器、三態門擴展簡單并行輸入、輸出口的方法。第三部分基本實驗(8086)實驗一I/O端口實驗一、實驗目的MUT—Ⅲ型實驗箱、8086CPU模塊。

二、實驗設備用常用輸入輸出芯片244擴展輸入,237擴展輸出控制開關輸入、發光二極指示燈顯示輸出結果。

1、設計出244、277與8086接口對應硬件電路,并完成相應的連接

2、調試對應244、273、開關硬件接口電路及相應接口軟件

3、用開關接輸入部分,當撥動開關對應發光二極管亮,顯示輸出結果

4、寫出習題部分要求的程序三、實驗內容本實驗用到兩部分電路:開關量輸入輸出電路,簡單I/O口擴展電路。

四、實驗原理介紹

1、實驗接線:(表示相互連接)CS0CS244;CS1CS273;平推開關的輸出K1~K8IN0~IN7(對應連接);O0~O7LED1~LED8。

2、編輯程序,單步運行,調試程序

3、調試通過后,全速運行程序,觀看實驗結果。

4、編寫實驗報告。五、實驗步驟

74LS244或74LS273的片選信號可以改變,例如連接CS2,此時應同時修改程序中相應的地址。程序全速運行后,邏輯電平開關的狀態改變應能在LED上顯示出來。例如:K2置于L位置,則對應的LED2應該點亮。六、實驗提示七、實驗結果八、程序框圖(實驗程序名:T244273.ASM)

assume cs:codecode segmentpublicorg 100hstart:mov dx,04a0h ;74LS244地址

in al,dx ;讀輸入開關量

mov dx,04b0h ;74LS273地址

out dx,al ;輸出至LED

jmp startcode endsend start 九、程序源代碼清單

1、修改模式為:跳躍式左移或右移,如每次移動兩位2、調整移位頻率為:加快一倍,降低一倍3、重新調整按鈕功能:

KK1——啟動鍵,按下后,方可開始移位

KK2——停止健,按后終止LED管的移位顯示

KK3——更新移位模式,每按一次,在左/右移位模式間變換

KK4——更新亮燈模式,每按一次在1亮7暗1

亮間變換(在完成上面的實驗后,修改原程序,使實現如下功能)十、習題MUT—Ⅲ型實驗箱、8086CPU模塊。實驗二8255鍵盤掃描與LED數碼管顯示實驗掌握8255A的編程原理。一、實驗目的二、實驗設備三、實驗內容用8255擴展掃描3X8行列式鍵盤,由一位LED數碼管顯示1、設計出8255與8086接口對應硬件電路,并完成相應的連接2、調試對應8255、鍵盤、及數碼管硬件接口電路及相應接口軟件3、當用鍵盤輸入時在數碼管上顯示相應值4、寫出習題部分要求的程序四、實驗原理介紹本實驗用到兩部分電路:開關量輸入輸出電路和8255可編程并口電路。1、實驗接線

CS0CS8255;PA0~PA7RL10~RL17;

PB0~PB7LED-A~LED-DP;PC0~PC2KA10~KA12;PC3LED1。2、編程并全速或單步運行。3、全速運行時按動鍵盤,觀察數碼管的變化。五、實驗步驟

8255A是比較常用的一種并行接口芯片,其特點在許多教科書中均有介紹。8255A有三個8位的輸入輸出端口,通常將A端口作為輸入用,B端口作為輸出用,C端口作為輸出用,本實驗也是如此。實驗中,8255A工作于基本輸入輸出方式(方式0)。六、實驗提示七、實驗結果本實驗為對3X8鍵盤(一行有8個按鈕,共三行.如第一行8個按鈕對應實驗箱上鍵盤區最上一行6個加上下一行前兩個,逐次類推)逐行掃描實驗,每按一個鍵通過數碼管顯示其值.如一行一列顯示0,二行三列顯示8.逐次類推.初始化8255檢測是否有鍵按下延時消抖逐行掃描鍵盤顯示于數碼管八、程序框圖(實驗程序名t8255.asm)assume cs:codecodesegmentpublic org100hstart: mov dx,04a6h ;控制寄存器地址

mov ax,90h ;設置為A口(04A0H)輸入,

B口(04A2H)輸出, C口(04A4H)輸出

out dx,axcheck0: mov ax,00h

mov dx,04a4h out dx,ax

mov dx,04a0h九、程序源代碼清單

in ax,dx

cmp al,0ffh

je check0

mov cx,05ffhdelay: loop delay ;延時消抖

mov cl,3

mov ah,0

mov al,0fbh contin: push ax

mov dx,04a4h out dx,al

mov dx,04a0h in al,dx

mov

ah,al

cmp ah,0ffh

jne next pop ax

ror al,1 loop contin

jmp check0next: mov

ch,cl;保存行值至CH

mov cl,7begin0: shl ah,1

jnc goon loop begin0

jmp check0goon: mov

bl,cl;保存列值至BL

dec

ch

mov cl,3

shl

ch,cl add bl,ch

mov bh,0

mov

cx,bx;顯示碼偏移量送CXdisplay: mov

si,offsetdiscoed add si,cx

mov dx,04a4h

mov al,0fh

out dx,al

mov

ax,[si]

mov dx,04a2h out dx,ax

nop

nopjmpcheck0discode db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hdb01h,02h,04h,08h,10h,20h,40h,80h;顯示段碼表code endsend start1、重新定義鍵值按遞減方式排列,即依次為:

F E C DB A 9 87 6 5 43 2 1 02、按下鍵的二進制值改在LED燈的高四位顯示3、按第一次鍵,在個位上顯示相應鍵位。按第二次鍵,在十位上顯示相應鍵位。按第三次鍵,在百位上顯示相應鍵位。按第四次鍵,在千位上顯示相應鍵位。按第五次鍵,在個位上顯示相應鍵位。其余類推。十、習題MUT—Ⅲ型實驗箱、8086CPU模塊、示波器。實驗三8253定時實驗一、實驗目的二、實驗設備掌握8253定時器的編程原理,用示波器觀察不同模式下的輸出波形。用8253作為定時器,控制周期為0.5秒的方波,用一個發光二極管指示燈亮表示高電平,滅表示低電平,亮、滅時間相同

1、設計出8253與8086接口對應硬件電路,并完成相應的連接

2、調試對應8253、發光二極管硬件接口電路及相應接口軟件

3、寫出習題部分要求的程序三、實驗內容四、實驗原理介紹本實驗用到兩部分電路:脈沖產生電路、8253定時器/計數器電路1、實驗連線:

CS0CS8253OUT08253CLK2OUT2LED1示波器OUT1CLK38253CLK0,CLK38253CLK12、編程調試程序3、全速運行,觀察實驗結果五、實驗步驟

8253是計算機系統中經常使用的可編程定時器/計數器,其內部有三個相互獨立的計數器,分別稱為T0,T1,T2。8253有多種工作方式,其中方式3為方波方式。當計數器設好初值后,計數器遞減計數,在計數值的前一半輸出高電平,后一半輸出低電平。實驗中,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分鐘)。可見,采用計數器疊加使用后,輸出周期范圍可以大幅度提高,這在實際控制中是非常有用的。程序全速運行后,LED1閃爍(周期為0.25s),OUT1示波器觀察為方波,頻率為15KHz。七、實驗結果八、程序框圖(實驗程序名:t8253.asm)

assume cs:codecodesegment public org 100hstart:

mov dx,04a6h ;控制寄存器

mov ax,36h ;計數器0,方式3 out dx,ax

mov dx,04a0h

mov ax,7Ch out dx,ax

mov ax,92h out dx,ax ;計數值927Ch

mov dx,04a6h

mov ax,76h ;計數器1,方式3 out dx,ax

mov dx,04a2h九、程序源代碼清單

mov ax,32h out dx,ax

mov ax,0 ;計數值32h out dx,ax

mov dx,04a6h

mov ax,0b6h ;計數器2,方式3 out dx,ax

mov dx,04a4h

mov ax,04h out dx,ax

mov ax,0 ;計數值04h out dx,axnext: nop

jmp nextcode ends end start十、習題1.改變定時時鐘的周期,加快一倍和放慢一倍

mov ax,0b6h ;計數器2,方式3 out dx,ax

mov dx,04a4h

mov ax,04h out dx,ax

mov ax,0 ;計數值04h out dx,ax修改實驗程序,如上的movax,04h的04H的值即可

2.試將8253的三個定時/計數器分別設為不同的工作方式,對同一輸入信號計數,在三個輸出端分別對輸入信號進行2分頻,4分頻,8分頻,用示波器觀察其波形。

3.試用8253測量一個脈沖的的脈寬,把測量的結果存放在2010H、2011H。

GATE0接被測脈沖,

8253的GATE0和74LS244的IN0,時鐘發生電路CLK3接8253CLK0。CS8253接CS0,CS244接CS1。程序請參參考t8253pw.asm,程序運行時候請按程序注釋處設斷點。查看2010H、2011H中的結果。1、掌握8259A的工作原理。2、掌握編寫中斷服務程序方法。3、掌握初始化中斷向量的方法。實驗四8259中斷控制及中斷服務實驗一、實驗目的二、實驗設備MUT—Ⅲ型實驗箱、8086CPU模塊。

用8259控制開關中斷源輸入中斷,由LED數碼管顯示

1、設計出8259與8086接口對應硬件電路,并完成相應的連接

2、調試對應8259、開關、發光二極管硬件接口電路及相應接口軟件

3、用開關做中斷源輸入部分,發光二極管顯示輸出結果,當分別撥動開關KK1、KK2、KK3、KK4時發光二極管相應作左、右、由中間向兩邊和反顯流水燈顯示

4、寫出習題部分要求的程序三、實驗內容

本實驗用到三部分電路:電平開關電路、簡單I/O口擴展電路和8259中斷控制器電路。四、實驗原理介紹1、實驗接線

CS0CS8259CS1CS273O0~O7

LED1~LED8K1~K8IR0~IR7INT

INTINTAINTA2、編譯調試程序3、全速運行程序,撥動某一電平開關,觀察

LED的變化情況。五、實驗步驟

1、8259的使用說明請詳細閱讀教科書。

2、8086的中斷系統是向量中斷方式。內存中特定位置有一中斷向量表,表內存有不同中斷類型的中斷向量(中斷入口地址)。不同中斷類型的中斷向量在表內有對應的偏移地址,其計算方法是:中斷類型*4。六、實驗提示

3、中斷類型由8259通過數據總線送給8086,8086內部電路會將該類型值自動乘4,而后賦給指令指針,從而轉向中斷向量表的相應單元取得中斷入口地址,之后就進入中斷服務程序。請仔細研讀8259的工作時序。

4、中斷類型的高5位由8259寄存器ICW2決定,低3位由中斷源IRx的編碼自動填入。IR0~IR7的編碼分別為000,001,010,011,100,101,110,111。七、實驗結果全速運行程序,由上往下撥動開關。主程序

中斷服務程序初始化8259控制字及中斷量表.開中斷初始化標志字判斷標志字,根據標志字跳轉到相應子程序跑馬燈左移跑馬燈右移LED燈翻滾入中斷口改變標志位中斷返回八、程序框圖(實驗程序名:t8253.asm)

assume cs: code code segmentpublic org 100hstart: mov dx,04b0h

mov al,0ffh out dx,al

mov bl,00h

mov ch,00h九、程序源代碼清單start1: cli push ax

mov dx,04a0h

mov ax,13h out dx,ax ;ICW1,ICW4NEEDED

mov dx,04a2h

mov ax,80h out dx,ax ;ICW2中斷類型80h

mov ax,01h;01 out dx,ax ;ICW4

mov ax,00h out dx,ax ;OCW1,開放所有中斷

nop ;以上為8259初始化

mov ax,0

mov

ds,ax

mov di,200h ;初始化中斷向量表

mov

ax,offsetint0

mov

ds:[di],ax add di,2

mov ds:[di],100h add di,2

mov

ax,offsetint1

mov

ds:[di],ax add di,2

mov ds:[di],100h add di,2

mov

ax,offsetint2

mov

ds:[di],ax

add di,2

mov ds:[di],100h add di,2

mov

ax,offsetint3

mov

ds:[di],ax add di,2

mov ds:[di],100h add di,2

mov

ax,offsetint4

mov

ds:[di],ax add di,2

mov ds:[di],100h add di,2

mov

ax,offsetint5

mov

ds:[di],ax add di,2

mov ds:[di],100h add di,2

mov

ax,offsetint6

mov

ds:[di],ax add di,2

mov ds:[di],100h add di,2

mov

ax,offsetint7

mov

ds:[di],ax add di,2;上述程序為芯片8259的初始化程序

mov ds:[di],100h pop axmain: sti

;開中斷。waiting: cmp bx,00h

je waiting ;沒發生中斷,則等待

cmp bl,0feh

je int0_s

cmp bl,0fdh

je int1_s

cmp bl,0fbh

je int2_s

jmp startint0: cli

;關中斷。以下類推。

mov ch,01h;此兩行為IR0的中斷服務程序

mov bl,0feh;用戶可修改。

iret

;中斷返回,以下類推。int1: cli

mov ch,01h ;此兩行為IR1的中斷服務程序,

mov bl,0fdh;用戶可修改。

iretint2: cli

mov ch,01h;此兩行為IR2的中斷服務程序,

mov bl,0fbh;用戶可修改。

iretint3: cli

nop

;此兩行為IR3的中斷服務程序,

mov ax,0f7h;用戶可修改。

iretint4: cli

nop

;此兩行為IR4的中斷服務程序,

mov ax,0efh;用戶可修改。

iretint5: cli

nop

;此兩行為IR5的中斷服務程序,

mov ax,0dfh;用戶可修改。

iretint6: cli

nop

;此兩行為IR6的中斷服務程序,

mov ax,0bfh;用戶可修改。

iretint7: cli

nop

;此兩行為IR7的中斷服務程序,

mov ax,07fh;用戶可修改。

iretint0_s: cmp ch,01h

jne next1

mov al,0feh

mov dx,04b0h out dx,alnext1: call delay

mov dx,04b0h

mov

ah,al not ah

rol ah,1 not ah

mov

al,ah out dx,al

mov ch,00h

jmp start1int1_s: cmp ch,01h

jne next2

mov al,07fh

mov dx,04b0h out dx,alnext2: call delay

mov dx,04b0h

mov

ah,al not ah

ror ah,1 not ah

mov

al,ah out dx,al

mov h,00h

jmp start1int2_s: cmp ch,01h

jnz next3

mov dx,04b0h

mov al,0e7h out dx,al not al

mov

cl,al and al,08h and cl,10hnext3: call delay push bx

rol cl,1

ror al,1mov

bh,clmov

bl,alor al,clmov

cl,alnot almov dx,04b0hout dx,almov

cl,bhmov

al,blpop bxmov ch,00hjmp start1delay proc near

cli push cx

mov cx,0ff55hhere: loop here pop cx retcode endsend start

1、利用8259做交通燈實驗,當中斷產生時,各路口紅燈全亮。

2、正常顯示時,流水燈為同時亮2盞燈;

3、正常顯示時,流水燈向左邊移動

4、正常顯示時,流水燈移動頻率加快或放慢一倍

5、中斷顯示時,改變閃動的頻率,加快或放慢一倍

6、中斷顯示時,改動閃動模式為,亮1、3、5、7號燈與亮2、4、6、8號燈交替閃燈。十、習題

7、重新定義鍵:

KK1——啟動鍵

KK2——開放/屏蔽中斷鍵

KK3——停止鍵

8、改變中斷含義:沒有進行中斷的初始值仍為流水燈顯示

第奇次中斷后:1、3、5、7號燈亮/暗閃動(2、4、6、8始終暗)

第偶次中斷后:2、4、6、8亮/暗閃動。MUT—Ⅲ型實驗箱、8086CPU模塊。實驗五A/D轉換實驗一、實驗目的二、實驗設備熟悉A/D轉換的基本原理,掌握ADC0809的使用方法。由0809構成的數據采集電路采集電位器上電壓,在LED數碼管顯示結果

1、設計出0809與8086接口對應硬件電路,并完成相應的連接

2、調試對應0809、基本I/O口、數碼管顯示硬件接口電路及相應接口軟件

3、調節電位器時相應的電壓值在數碼管顯示

4、寫出習題部分要求的程序三、實驗內容本實驗用到兩部分電路:簡單I/O口擴展電路、A/D、D/A電路四、實驗原理介紹1、實驗連線AN0ADIN0CS0CS0809CS1CS244EOCIN02、用實驗箱左上角的“VERF.ADJ”電位器調節ADC080912腳上的參考電壓至5V。3、編寫程序并全速運行。4、檢查顯示數據是否與電位器輸出的電壓相符合。五、實驗步驟實驗電路中啟動信號START與地址鎖存信號相連,所以啟動A/D轉換的方法為:MOVDX,ADDRESS;ADDRESS是ADC0809的端口地址OUTAL,DX;發片選及IOW信號,啟動0通道六、實驗提示七、實驗結果在輸入電壓AN0分別為0V,1V,2V,3V,4V,5V時顯示數據分別為00H,33H,66H,99H,0CCH,0FFH(數據低位略有偏差屬正常現象)。八、程序框圖(實驗程序名:t0809.ASM)

開始啟動通道0讀取轉換結果轉換結束?con8279 equ 0492hdat8279 equ 0490hassume cs:codecode segment public org 100hstart: jmp start1segcod db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71hstart1: mov dx,04a0h

mov ax,34h out dx,ax ;啟動通道九、程序源代碼清單wait1: mov dx,04b0h;CS244 in ax,dx ;讀EOC and ax,1

cmp ax,1

jne wait1 ;如果EOC=0,waiting....

mov dx,04a0h in ax,dx ;讀轉換結果

and ax,0ffh

mov

bx,ax

nop ;disp: mov

di,offset

segcod

mov ax,08h ;工作方式,16位,左入

mov dx,con8279 out dx,ax

mov ax,90h

mov dx,con8279 out dx,ax ;寫顯示RAM命令,地址自增

mov dx,dat8279

push bx and bx,0f0h;取高4位

mov cl,4

shr

bx,cl add di,bx

mov

al,cs:[di]

mov ah,0 out dx,ax ;寫RAM0

nop

nop

mov

di,offset

segcod pop bx

and bx,0fh;取低4位

add di,bx

mov

al,cs:[di]

mov ah,0 out dx,ax ;寫RAM1delay: mov cx,0ffffh;timedelaydelay1: nop

nop loop delay1

jmp start1 code ends end tart1.修改程序,改用AD0809的第二個通道進行AD轉換,并顯示在數碼管上。實驗接線與做實驗的接線一樣。start1: mov dx,04a0h

mov ax,34h out dx,ax ;啟動通道0wait1: mov dx,04b0h ;CS244 in ax,dx ;讀EOC and ax,1

cmp ax,1

jne wait1 十、習題要改變通道只要修改movdx,04a0h中的把04a0h改成04a2即改為了第二個通道,通道及地址值對應如下:地址值通道04a0H0通道04a2H1通道04a4H2通道04a6H3通道04a8H4通道04aAH5通道04aCH6通道04aEH7通道

2.根據實驗程序,編寫程序實現兩個通道同時AD轉換

溫馨提示

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

評論

0/150

提交評論